just two things to add:
1) the REF mode of d3d is NOT there to replace parts of the pipeline. you can only be in hw, or software. if the hw is not there, d3d will fail, and you have to explicitely set back to REF if you want to. similar to dropping a mesa based opengl32.dll into the folder (but in code, of course)
2) hungarian notation gets dropped by microsoft completely, and so is in d3d9, at least in the Managed DirectX for the .NET platform. it's very nice and clean. seeing longhorn code, the future is bright (at least, compared to win32 api style code with hungarian and no real oo )
the rest is, as far as i know, correct.