home | login | register | DMCA | contacts | help | donate |      

A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
А Б В Г Д Е Ж З И Й К Л М Н О П Р С Т У Ф Х Ц Ч Ш Щ Э Ю Я


my bookshelf | genres | recommend | rating of books | rating of authors | reviews | new | форум | collections | читалки | авторам | add

Writing Windows WDM Device Drivers

Writing Windows WDM Device Drivers
Title: Writing Windows WDM Device Drivers
Author:
Оценка: 4.5 of 5, readers votes - 53
Genre: computers
Year:
Table of Contents:

hide Table of Contents

  1. Writing Windows WDMDevice Drivers Covers NT 4, Win 98, and Win 2000 Chris Cant
  2. Preface
  3. Who Are You?
  4. Terminology
  5. Coding Style
  6. Revised Source Files
  7. Thanks
  8. Chapter 1 Introduction
  9. The Windows Driver Model
  10. Source and Binary Compatibility
  11. WDM vs. NT Style Drivers
  12. Ready-to-Use Drivers
  13. Book CD-ROM
  14. Device Driver Software Tools
  15. Driver Types Not Covered
  16. A New Frame of Mind
  17. Device Driver Environment
  18. Terminology and Resources
  19. Win32 Program Interface
  20. Basic I/O
  21. Overlapped Asynchronous Requests
  22. Environment
  23. Device Specific Restrictions
  24. Other Win32 Access to Drivers
  25. Conclusion
  26. Chapter 2 The Big Picture
  27. Device Driver Components
  28. Driver Entry Points and Callbacks
  29. Dispatch Routines
  30. Creating Devices
  31. Hardware Resource Assignments
  32. Calling Other Drivers
  33. Serializing Access to Hardware
  34. Talking to Hardware
  35. Hardware Problems
  36. Power Management
  37. Windows Management Instrumentation
  38. NT Event Reporting
  39. System Threads
  40. Types of Device Driver
  41. Windows Overview
  42. I/O Request Processing
  43. Plug and Play Device Stacks
  44. Standard Bus and Class Drivers
  45. Example Driver Stack
  46. Driver Choices
  47. Off-the-Shelf Drivers
  48. Use Standard Drivers
  49. Operating System
  50. Layered Device Drivers
  51. Monolithic Drivers
  52. Recommended and Optional Features
  53. WDM Rationale
  54. One Core Model
  55. Complexity
  56. Plug and Play and Layers
  57. Range of Functionality
  58. Development Environment
  59. Developer Support
  60. Conclusion
  61. Chapter 3 Device Driver Design
  62. Introduction
  63. Driver Design Guide
  64. Documentation
  65. Good Design
  66. Kernel Calls
  67. Kernel Macros
  68. Kernel Objects
  69. Driver Routine Names
  70. Processor Model
  71. Processor Modes
  72. Interrupt Levels
  73. Runtime Priorities
  74. Deferred Procedure Calls
  75. Using Memory
  76. Pool Memory
  77. Lookaside Lists
  78. Other Memory Considerations
  79. Accessing User Application Memory
  80. DMA
  81. IRP Processing
  82. IRP Parameters
  83. Processing IRPs in a Driver Stack
  84. Conclusion
  85. Chapter 4 WDM Driver Environment
  86. System Set Up
  87. DDKs
  88. Book Software Installation
  89. Recompiling the Book Software
  90. Shortcuts
  91. Utilities
  92. DOS Boxes
  93. Computer Management Console
  94. NT Devices Applet
  95. Hardware Wizard
  96. Registry Editors
  97. INF Editor
  98. WBEM
  99. Debuggers
  100. NT and Windows 2000 Utilities
  101. Book Software Tools
  102. Driver Targets
  103. Driver Language and Libraries
  104. Resources
  105. Good Code
  106. build Utility
  107. makefiles
  108. SOURCES
  109. makefile File
  110. build Directories
  111. Other build Steps
  112. DIRS File
  113. VC++ Projects
  114. Makefile Build Environment
  115. MakeDrvr
  116. Directories
  117. Common Tasks
  118. The Wdm1 Driver Code
  119. Compiler Options
  120. Header Files
  121. Driver Entry Module
  122. Version Resource
  123. Accessing the Registry
  124. Installing Wdm1
  125. Installation Details
  126. INF Files
  127. Registry
  128. Windows 2000 Objects
  129. Managing Devices and Drivers
  130. Add Another Device
  131. Removing a Device
  132. Updating the Driver
  133. NT Style Drivers
  134. Conclusion
  135. Chapter 5 Device Interfaces
  136. Devices
  137. Device Access
  138. Subsequent I/O
  139. Device Objects and Device Extensions
  140. Creating and Deleting Device Objects
  141. Creating Devices
  142. Deleting Devices
  143. Device Names
  144. Symbolic Links
  145. Device Interfaces
  146. Wdm1 Device Interface
  147. Win32 Device Interface Access
  148. Getting a Devices Interface Name
  149. Running Wdm1Test
  150. Conclusion
  151. Chapter 6 Testing and Debugging
  152. Test, Test, Test
  153. Driver Tests
  154. Test That All Functions Work
  155. W2000 and W98
  156. Multiprocessor
  157. Cancelling I/O
  158. Debugging
  159. How Do Things Go Wrong?
  160. Debugging Techniques
  161. Incremental Development
  162. Checked Version
  163. W2000 or W98
  164. Debugging Tools
  165. Windows 2000 Events
  166. Tracing Tools
  167. Driver Verifier
  168. Debuggers
  169. DebugPrint
  170. Trying out DebugPrint
  171. Using the DebugPrint Monitor
  172. Using DebugPrint in Drivers
  173. Debugging Notes
  174. Updating Drivers
  175. Driver Fails on Boot
  176. Driver Dependencies
  177. Uncanceled IRPs
  178. Bugcheck Codes
  179. Where Did the Bugcheck Happen?
  180. Conclusion
  181. Chapter 7 Dispatch Routines
  182. Dispatch Routine IRPs
  183. I/O Request Packets
  184. Dispatch Routine Handling
  185. Reentrancy
  186. IRP Handling
  187. IRP Completion
  188. IRP Structure
  189. I/O Stack Locations
  190. Common IRP Parameters
  191. Create IRP, IRP_MJ_CREATE
  192. Close IRP, IRP_MJ_CLOSE
  193. Read IRP, IRP_MJ_READ
  194. Write IRP, IRP_MJ_WRITE
  195. IOCTL IRP, IRP_MJ_DEVICE_CONTROL
  196. User Buffers
  197. Buffered I/O
  198. Direct I/O
  199. Neither
  200. DeviceIoControl Buffers
  201. Create and Close
  202. Write
  203. Read
  204. IOCTL
  205. System Control
  206. Conclusion
  207. Chapter 8 Plug and Play and Device Stacks
  208. Design Overview
  209. Design Goals
  210. Plug and Play System
  211. Plug and Play Messages
  212. Device Enumeration
  213. Fixed and Configurable Devices
  214. Enumeration
  215. Device Tree
  216. Device Stacks
  217. PnP Support and the Device Stack
  218. Device Objects
  219. Upper Edges
  220. USB Keyboard Example
  221. Functional and Physical Device Objects
  222. Upper Edge Definitions
  223. Conclusion
  224. Chapter 9 Plug and Play Implementation
  225. Implementing Plug and Play
  226. Adding and Removing Devices
  227. Basic PnP Handlers
  228. Passing Unsupported IRPs Down the Stack
  229. PnP States and Messages
  230. State Flags
  231. Holding IRPs
  232. Open Handles
  233. When to Process PnP IRPs
  234. Device Locking
  235. Getting Resource Assignments
  236. Testing Wdm2
  237. Actual Plug and Play Messages
  238. Other PnP IRPs
  239. IRP_MN_DEVICE_USAGE_NOTIFICATION
  240. IRP_MN_FILTER_RESOURCE_REQUIREMENTS
  241. IRP_MN_QUERY_BUS_INFORMATION
  242. IRP_MN_QUERY_CAPABILITIES
  243. IRP_MN_QUERY_DEVICE_RELATIONS
  244. IRP_MN_QUERY_DEVICE_TEXT
  245. IRP_MN_QUERY_ID
  246. IRP_MN_QUERY_INTERFACE
  247. IRP_MN_QUERY_PNP_DEVICE_STATE
  248. IRP_MN_QUERY_RESOURCE_REQUIREMENTS
  249. IRP_MN_QUERY_RESOURCES
  250. IRP_MN_READ_CONFIG
  251. IRP_MN_SET_LOCK
  252. IRP_MN_WRITE_CONFIG
  253. Plug and Play Notification
  254. Win32 PnP Notification
  255. Device Driver PnP Notification
  256. Notification Request Driver Interactions
  257. Advanced Plug and Play
  258. Bus Drivers
  259. Sending PnP IRPs
  260. Device Properties
  261. Conclusion
  262. Chapter 10 Power Management
  263. The Power Picture
  264. ACPI
  265. Win32 Power Management
  266. Wdm2Power Application
  267. Battery Miniclass Drivers
  268. System Power Policies
  269. System and Device States
  270. Power IRPs
  271. Processing Power IRPs
  272. Not Processing Power IRPs
  273. Device Power Policy Owner
  274. Handling Set Power IRPs
  275. Setting System Power States
  276. Setting Device Power States
  277. SetPowerState
  278. Dispatch Routine Power Handling
  279. Testing Wdm2 Power Capabilities
  280. Device Capabilities
  281. Advanced Power Management
  282. Wake
  283. Power Sequence
  284. Stopping System Power Down Events
  285. Power Notification
  286. Detecting System Power State Changes
  287. WMI Support
  288. Conclusion
  289. Chapter 11 Installation
  290. WDM Driver Installation Process
  291. INF Files
  292. Standard Sections
  293. Strings
  294. INF File Section Hierarchy
  295. Wdm1Free.INF
  296. InfEdit
  297. Cross-Platform and WDM INF Files
  298. Installing Wdm1 in Windows 2000
  299. Locating Drivers
  300. Hardware IDs
  301. Compatible IDs
  302. Repeated Enumeration
  303. NT Style Driver Installation
  304. Install Process
  305. Driver Load Order
  306. NT 4 Control Panel Devices Applet
  307. Windows 2000 Device Management
  308. Windows 98 Device Management
  309. REG Files
  310. Installing NT Style Drivers in Windows 98
  311. Conclusion
  312. Chapter 12 Windows Management Instrumentation
  313. Overview
  314. WBEM Model
  315. The WDM Provider
  316. A WMI Driver
  317. WMI Build Environment
  318. Registering as a WMI Data Provider
  319. Handling System Control IRPs
  320. QueryWmiRegInfo Handler
  321. QueryWmiDataBlock Handler
  322. SetWmiDataBlock Handler
  323. SetWmiDataItem Handler
  324. ExecuteWmiMethod Handler
  325. Firing WMI Events
  326. WMI in Action
  327. Conclusion
  328. Chapter 13 Event Reporting
  329. Overview
  330. Message Files
  331. Registering as an Event Source
  332. Generating Events
  333. Testing Wdm3 Events
  334. Conclusion
  335. Chapter 14 DebugPrint
  336. Design Specification
  337. Design Implementation
  338. Test Driver Code
  339. System Threads
  340. Events
  341. Synchronization
  342. Generating Trace Events
  343. Linked Lists
  344. Final Pieces
  345. DebugPrint Driver
  346. Design
  347. DebugPrint Devices
  348. Read Queue
  349. Cancelling IRPs
  350. Write Algorithm
  351. Read Algorithm
  352. DebugPrint Monitor
  353. Design
  354. Win32 Worker Threads
  355. DebugPrint_Event Class
  356. Win32 Overlapped I/O
  357. Conclusion
  358. Chapter 15 WdmIo and PHDIo Drivers
  359. Win32 Interface
  360. IOCTLs
  361. Commands
  362. LPT Printer Driver Application
  363. Parallel Ports
  364. WdmIoTest
  365. PHDIoTest
  366. Issuing Commands
  367. Writing Data Using Interrupt Driven I/O
  368. Reading Data Using Interrupt Driven I/O
  369. Testing WdmIo
  370. Installing WdmIo
  371. LogConfig Sections
  372. Running WdmIoTest
  373. Testing PHDIo
  374. Installing PHDIo
  375. Running PHDIoTest
  376. Analyzing WdmIo and PHDIo
  377. Which to Use
  378. Deficiencies
  379. Conclusion
  380. Chapter 16 Hardware I/O IRP Queuing
  381. Hardware Access
  382. IRP Queuing
  383. Device Queues
  384. StartIo Routines
  385. Processing Commands
  386. Critical Sections
  387. Cancelling Queued IRPs
  388. Queued IRP Cancelling
  389. WdmIo IRP Cancelling Strategy
  390. Alternative Cancel Strategy
  391. Cleanup IRP Handling
  392. Supplemental Device Queues
  393. Implementing a Supplemental Device Queue
  394. Conclusion
  395. Chapter 17 Interrupt-Driven I/O
  396. Interrupt Handling
  397. The Nature of the Beast
  398. Connecting to Interrupts
  399. WdmIo Reads and Writes
  400. Starting Requests
  401. Interrupt Handler
  402. Deferred Procedure Calls
  403. Using Basic DPCs
  404. Custom DPCs
  405. Timers
  406. One-Second Interval Timers
  407. WdmIo Time-Outs
  408. Custom Timers
  409. Conclusion
  410. Chapter 18 NT Hardware
  411. NT Style Driver Construction
  412. DDK Issues
  413. Compile Environment
  414. NT Style Driver Structure
  415. Device Creation and Deletion
  416. Claiming Resources
  417. Translating Resources
  418. Finding Resources
  419. Auto-Detected Hardware
  420. Interrogating Configurable Buses
  421. Final Resource Discovery Techniques
  422. Conclusion
  423. Chapter 19 WDM System Drivers
  424. Writing Client Drivers
  425. Common Devices
  426. Filter Drivers
  427. NT Layering
  428. Parallel Port Drivers
  429. Conclusion
  430. Chapter 20 The Universal Serial Bus
  431. Device Classes
  432. Human Input Devices (HID)
  433. The Big Picture
  434. Windows USB Driver Interface
  435. Transfer Types
  436. USB Low Level Structure
  437. USB Devices
  438. USB Signals
  439. Bus Signalling
  440. Low Level Protocol
  441. Transactions
  442. Power
  443. USB Device Framework
  444. Bus Enumeration
  445. Standard Control Transactions
  446. Descriptors
  447. Driver Installation
  448. USB Classes
  449. New Features
  450. Client Design
  451. Endpoint Type Selection
  452. Isochronous Devices
  453. Conclusion
  454. Chapter 21 USB Driver Interface
  455. USB Client Driver Design
  456. Using UsbKbd
  457. UsbKbd Installation
  458. Headers and Libraries
  459. USBDI IOCTLs
  460. URBs
  461. Calling USBDI
  462. Talking USB
  463. Initializing a USB Device
  464. Issuing URBs
  465. Selecting an Interface
  466. Other Initialization
  467. Deselecting a Configuration
  468. Interrupt Transfers
  469. Control Transfers
  470. Other Issues
  471. Testing UsbKbd
  472. USBDI Structure Reference
  473. Structures
  474. USBDI URB Reference
  475. URB Setup Functions
  476. URB Transfer Functions
  477. URB Default Pipe Functions
  478. URB Isochronous Frame Functions
  479. Conclusion
  480. Chapter 22 The Human Input Device Model
  481. HID Hides
  482. HID in Windows
  483. The HID Model
  484. Reports
  485. Usages
  486. Getting HID Capabilities
  487. HID Model Representation
  488. HID Descriptors
  489. Device Attributes
  490. Report Descriptors
  491. Conclusion
  492. Chapter 23 HID Clients
  493. HID Class Driver
  494. HID Class Driver Characteristics
  495. Windows HID Clients
  496. Header Files
  497. HID USB Minidriver
  498. USB Boot Devices
  499. User Mode HID Clients
  500. Finding HID Devices
  501. Reading Input Reports
  502. Sending Output Reports
  503. Other User Mode HID Client Functions
  504. Running HidKbdUser
  505. Kernel Mode HID Clients
  506. Client Types
  507. Plug and Play Notifications
  508. HidKbd Devices
  509. Getting HID capabilities
  510. Opening and Closing the HidKbd Device
  511. Other HID Class IOCTLs
  512. Conclusion
  513. Appendix A Information Resources
  514. Newsgroups and Mail Lists
  515. Books
  516. Appendix B PC 99
  517. Drivers
  518. The Specification
  519. IBM-Compatible PCs
  520. Changing World
  521. ACPI, OnNow, and Plug and Play
  522. PC 99 Conformance
  523. Appendix C Direct Memory Access
  524. Glossary Acronyms and Tools
  525. Примечания


Rate this book  


Read this book now: Writing Windows WDM Device Drivers

Download (1202k) in formats: fb2, epub, mobi, txt, html

close [X]

close [X]


Reviews

Отличная книга. Снимаю шляпу перед автором!!!

Оценка 4 из 5 звёзд от yura497 02.02.2015 18:56  

Thanks for sharing!
   Book is really easy to read and very useful.

Оценка 5 из 5 звёзд от Egor 24.06.2014 09:34  

ukukuk thrthrthr

artaali 25.11.2011 09:46  

Всего обзоров: 3
Средний рейтинг 4.5 из 5

Enter your name:     Rate this book

Enter your comments or review:


получать комментарии о книге Writing Windows WDM Device Drivers на e-mail

Anti-spam code Anti spam Capcha