左上:HID 類裝置 → HIDCLASS.SYS → HIDPARSE.SYS → HIDUSB.SYS。
右上:其他類別 → Class Driver → Miniport Driver。
底層:UHCD (Intel) / OpenHCI (Compaq) 硬體抽象層。
濾波驅動程式攔截修改上層請求,復用類別驅動功能。
main/WinMain,入口為 DriverEntry。DriverEntry 初始化並登記 Dispatch 例程 (IRP_MJ_CREATE, IRP_MJ_READ, IRP_MJ_WRITE, IRP_MJ_DEVICE_CONTROL 等)。CreateFile/ReadFile/WriteFile/DeviceIoControl 對應相應 Dispatch 例程。| 功能碼 | 對應 Win32 API |
|---|---|
| IRP_MJ_CREATE | CreateFile |
| IRP_MJ_CLOSE | CloseHandle |
| IRP_MJ_READ | ReadFile |
| IRP_MJ_WRITE | WriteFile |
| IRP_MJ_DEVICE_CONTROL | DeviceIoControl |
| IRP_MJ_PNP | PnP 管理 |
| IRP_MJ_POWER | 電源管理 |
| IRP_MJ_SYSTEM_CONTROL | WMI |
編寫驅動需熟悉硬體、C/C++、DDK、SoftICE/WinDBG 調試,「進度有時看運氣」。