- Programming Drivers for the Kernel Mode Driver Framework
- Sample Drivers by Model
- Sample Drivers by Features
- KMDF Driver Structure and Concepts
- A Minimal KMDF Driver: The Simple Toaster
- Creating a WDF Driver Object: <em>DriverEntry</em>
- Creating the Device Object, Device Interface, and I/O Queue: EvtDriverDeviceAdd
Sample Drivers by Features
You can also refer to the samples to find out how to use specific KMDF features. Table 3 lists the samples that support each fundamental feature.
Table 3 KMDF Feature Support in Samples
KMDF Feature |
Sample |
---|---|
Buffered I/O |
Ndisprot |
Child device enumeration |
OsrUsbFx2, Toaster bus |
Collection |
PCIDRV, Toaster bus |
Direct I/O |
Ramdisk |
DMA |
AMCC5933, PCIDRV, PLX9x5x |
DPC |
PCIDRV, PLX9x5x |
Event tracing |
AMCC5933, NoPnp, OxrUsbFx2, PCIDRV |
Functional device object (FDO interface |
All samples |
File object |
NonPnP |
Filter driver |
Firefly, Kbfiltr |
I/O request cancellation |
Echo |
I/O requests and I/O queues (serial/parallel/manual) |
All samples |
I/O target objects |
1394, firefly, NdisEdge, OsrUsbFx2 |
Idle detection |
PCIDRV, serial |
In-process callback to handle events in caller’s thread context |
NonPnP |
Interrupt handling |
PLX9x5x, Serial |
Memory pool |
All samples |
METHOD_NEITHER I/O |
NonPnP |
Non-Plug and Play, NT 4.0 style device objects (also called control device objects) |
Ndisprot |
Physical Device object (PDO) interface |
Kbfiltr, OsrUsbFx2/EnumSwitches, Toaster bus |
Plug and Play device interface |
AMCC5933, PCIDRV, PIX9x5x, Toaster function |
Plug and Play hardware resources |
PCIDRV, PLX9x5x, AMCC5933 |
Plug and Play query interfaces |
Toaster bus |
Power policy owner |
PCIDRV |
Preprocessing callbacks for IRP_MJ_FLUSH_BUFFER, IRP_MJ_QUERY_INFORMATION, and IRP_MJ_SET_INFORMATION |
Serial |
Raw PDO |
Kbfiltr, OsrUsbFx2 |
Registry |
Fakemodem, PCIDRV, Ramdis, Serial, Toaster bus |
Self-managed I/O |
Echo, PCIDRV |
Symbolic links to device names |
Fakemodem, Ramdisk |
Synchronization scope |
Echo |
Timer objects |
Echo |
USB device support |
OsrUsbFx2 |
Wake signal support |
OsrUsbFx2, PCIDRV, Serial |
Windows management instrumentation (WMI) |
Firefly, PCIDRV, Serial, Toaster function |
Work items |
AMCC5933, PCIDRV |