Bavauto sells this code reader that says it will do all of this:
BMW Parts and BMW Accessories | Bavarian Autosport
Fault code reader shows you what the problem is on an LCD color display. Launch Tech's CReader VI (pronounced "see reader six") reads and clears manufacturer specific BMW and MINI "check engine" fault codes as well as all standard OBD-II codes.
Features include: Choice of language, English, Spanish or French
Special tests for Evaporative system, Oxygen sensor, Inspection readiness, MIL( check engine light ) Status, VIN Info, and on-board monitors
Fault-code search function
Free internet updates
On-screen help function and more.
http://www.launchtechusa.com/assets/.../CreaderVI.pdf
Can you resist the transfer case with this?
I plan to buy one either way, it looks like a good tool to have.