第1章 Windows2000和WDM驅動程序
1.1 Windows 2000組件概述
1.2 WindoWS 2000中的驅動程序種類
1.3 WDM驅動程序特點
1.3.1 內核模式驅動程序的設計目標
1.3.2 WDM驅動程序模型
1.3.3 設備和驅動程序的層次結構
1.3.4 中斷級別IRQL
1.3.5 設備接口
第2章 WDM 驅動程序的基本結構
2.1 KDriver類
2.1.1 基本函數(shù)
2.1.2 基本例程
2.2 KPnpDevice類
2.2.1 基本函數(shù)
2.2.2 基本例程
2.2.3 擴展例程
2.3 KPnpLowerDevice類
2.4 CharSmple實例
第3章 IRP操作
3.1.1 IRP數(shù)據(jù)結構
3.1.1 IRP重要域
3.1.2 IO堆棧單元
3.2 KIrp類
3.3 IRP基本操作
3.3.1 完成IRP
3.3.2 向下傳遞IRp
3.3.3 取消IRP
3.3.4 分配和釋放IRP
第4章 WDM驅動程序編程入門
4.1 建立WDM編程環(huán)境
4.2 創(chuàng)建WDM驅動程序
4.2.1 使用DriveWizard創(chuàng)建RegSample的工程文件
4.2.2 修改RegSample的工程文件
4.2.3 RegSample實例
4.3 生成WDM驅動程序
4.4 安裝WDM驅動程序
4.5 Win32 Console和MFC應用程序
4.5.1 Win32 Console應用程序
4.5.2 MFC應用程序
4.6 調試說明
第5章 WDM驅動程序和應用程序之間的通信
5.1 應用程序與驅動程序的通信
5.1.1 打開設備
5.1.2 關閉設備
5.1.3 DeviceIoControl函數(shù)調用
5.1.4 ReadFi1e和WriteFile函數(shù)調用
5.2 驅動程序與應用程序的通信
5.2.1 DeviceIoControl異步完成
5.2.2 WIN32事件通知
5.2.3 WIN32事件共享(NT)
5.3 驅動程序與應用程序通信實例
5.3.1 異步完成實例
5.3.2 事件通知實例
5.3.3 事件共享實例
第6章 基本編程技術
6.1 字符串操作
6.1.1 字符串格式
6.1.2 串處理函數(shù)
6.1.3 KUnitizedName類
6.1.4 KUstring類
6.2 內存管理
6.2.1 內存類型
6.2.2 KMemory類
6.2.3 KHeap類
6.3 數(shù)據(jù)操作
6.3.1 Klist,KlnterlockedList和KInterruptSafeList類
6.3.2 Kfifo,KInterlockedFifo和KInterruptSafeFifO類
6.3.3 KArray
6.3.4 KInterlockedCounter類
6.3.5 其他數(shù)據(jù)處理函數(shù)
6.4 KRegistryKey類
6.5 KFile類
6.6 KDeferredCall類
6.7 定時器
6.7.1 1Hz定時器
6.7.2 KTimedCallback類
6.8 KIoWorkItem類
6.9 CancelSpinLock類
6.10 KSpinLock類
6.11 內核同步對象
6.11.1 KDispatcherObject類
6.11.2 KDispatcherObject派生類
6.12 TimerSample實例
6.13 Fi1eThread實例
6.14 ReadWrite實例
第7章 即插即用例程
7.1 即插即用簡介
7.1.1 PnP組件
7.1.2 即插即用IRP
7.1.3 即插即用狀態(tài)
7.2 即插即用編程
7.2.1 即插即用例程
7.2.2 即插即用策略
7.2.3 PnP例程編程
7.2.4 PnP資源
7.3 即插即用通知
7.3.1 Win32 PnP通知
7.3.2 內核模式通知
7.3.3 定制通知
7.3.4 PnPEvent實例
第8章 電源管理
8.1 電源管理概述
8.1.1 系統(tǒng)電源狀態(tài)與設備電源狀態(tài)
8.1.2 設備的電源能力
8.1.3 IRP_MJ_POWER請求
8.1.4 電源管理控制標志位
8.1.5 設備的喚醒特征和空閑檢測
8.2 電源管理編程
8.2.1 電源管理例程
8.2.2 電源管理策略
8.2.3 電源管理編程
8.2.4 設備喚醒
8.2.5 空閑檢測
8.3 電源管理實例
8.3.1 powerIdle實例
8.3.2 PowerSleep實例
第9章 WMI
9.1 WMI概述
9.2 WMI編程類函數(shù)
9.2.1 KwmiContext類
9.2.2 KWmiDataBlock類
9.2.3 KWmiString類
9.3 WMISample實例
第10章 IRP的串行處理
10.1 由系統(tǒng)管理的IRP設備隊列的串行處理
10.1.1 實現(xiàn)由系統(tǒng)管理的IRP設備隊列串行處理的函數(shù)
10.1.2 系統(tǒng)管理的IRP設備隊列串行處理程序分析
10.2 由驅動程序管理的IRP隊列的串行處理
10.2.1 KDriverManagedQueueEx類
10.2.2 驅動系統(tǒng)管理的IRP隊列串行處理程序分析
10.3 IRP串行處理實例
10.3.1 StartIoChar_Device實例
10.3.2 StartIoCh_Driver實例
第11章 WDM過濾器驅動程序
11.1 KWdmFilterDevice類
11.2 WDM過濾器驅動程序編程
11.3 WDM過濾器驅動程序安裝文件
11.4 CharFilter實例
11.5 CharFilter_Class實例
第12章 USB設備開發(fā)
12.1 USB接口概述
12.1.1 USB設備的配置、接口和端點
12.1.2 USB數(shù)據(jù)的傳輸方式
12.1.3 USB描述符
12.1.4 標準設備請求
12.2 USB編程類函數(shù)
12.2.1 KUsbLowerDevice類
12.2.2 KUsbInterface類
12.2.3 KUsbPipe類
12.3 USBCounter實例
12.3.1 驅動程序
12.3.2 應用程序
12.3.3 CY7C63001程序
第13章 PCI設備驅動程序開發(fā)
13.1 硬件訪問
13.1.1 KIoRanqe和KMemoryRange類
13.1.2 KIoRegister和KMemoryRegister類
13.1.3 KIoRegisterSafe和KMemoryRegisterSafe類
13.1.4 硬件訪問編程
13.2 中斷處理
13.2.1 KInterrupt類
13.2.2 中斷處理編程
13.3 DMA傳輸
13.3.1 DMA編程類函數(shù)
13.3.2 DMA傳輸編程
13.4 PCI9054實例
13.5 DMASample實例
第14章 Windows XP WDM驅動程序開發(fā)
14.1 Windows XP下的問題
14.2 WDM驅動程序的安裝
附錄1 DriverMonitor的使用介紹
附錄2 SoftICE的使用介紹
附錄3 SOftICE命令詳解
參考文獻