Hi folks
id like to get started with Windows 2000 driver development, but i could hardly find any tutorials,guides for beginners.. just some simple examples. Maybe one of you guys got some great links for me ?:)
codefuchs
I haven't seen a WDM tutorial on the web so far. But I bought the book, Programming Windows Driver Model, by Walter Oney. It looks like WDM is geared for C and it's not dynamically loadable as dynamic VxD. I lost interest in WDM quickly after finding that fact.
I'm not sure what "not dynamically" loadable means.
USB minidrivers can be installed without rebooting the system, and they are definitely WDM drivers.
The fact that it's geared toward C is much better than having it geared towards C++.
Which makes me wonder if these low level drivers are mostly made in C or C++. Any insight?
----------------------------
Team2k PC Development Team:
http://ppilot.homepage.com
I'm pretty sure the WDM requires you to comply with the COM model. So you should learn some COM programming first.
Devin
WDM appears to be NT driver + Plug-and-Play + Power management.
It definitely is not COM. NT drivers are written in C style. You can use a C++ compiler, but you do not use or create C++ objects.
Drivers use the Hardware Abstraction Layer (HAL), a set of C functions that hide the details of raw I/O for each platform (e.g., MIPS). Someone will need to discover how these functions are implemented before they can be used or bypassed.
COM is not tied to C++ at all. You can write COM programs in asm. obviously... since all pgms end up in asm after compilation. ever seen a directx c program? that's com dude.
WDM is not COM.
WDM drivers do not provide the QueryInterface, AddRef, or Release functions. Every COM object must provide these three functions, and WDM drivers don't provide them.