Key Driver Concepts

Everyone who develops kernel-mode drivers for the Microsoft Windows family of operating systems should understand fundamental operating system concepts and features, be familiar with their effects on the design and operation of kernel-mode drivers, and keep current with the changes and enhancements introduced in each new version of Windows.

Kernel-Mode Basics
White PaperLocks, Deadlocks, and Synchronization
White PaperMemory Management: What Every Driver Writer Needs to Know
White PaperMultiprocessor Considerations for Kernel-Mode Drivers
White PaperRecommended Functions for Kernel-Mode Drivers
White PaperScheduling, Thread Context, and IRQL
White PaperUser-Mode Interactions: Guidelines for Kernel-Mode Drivers
White PaperWriting kernel-mode drivers in C++: should you or shouldn't you?

I/O Request Packets
White PaperCancel Logic in Windows Drivers
White PaperFlow of Control for Cancel-Safe IRP Queuing
White PaperHandling IRPs: What Every Driver Writer Needs to Know
White PaperI/O Completion/Cancellation Guidelines
Microsoft Powerpoint (.ppt)I/O Manager, 64-bit Porting, and New Driver Models [195 KB]
Windows MultimediaNar Ganapathy - Going Deep: Windows, the IO Manager and Driver Model , Part I
Windows MultimediaNar Ganapathy - Going Deep: Windows, the IO Manager and Driver Model , Part II

See Also
WHDC Portal/NodalPlug and Play and Power Management for Drivers
WHDC Portal/NodalWindows Driver Foundation
WHDC Portal/NodalWindows Vista Driver Development
Microsoft.comKernel-Mode Driver Architecture Design Guide in the WDK
Microsoft.comKernel-Mode Driver Framework Design Guide in the WDK
Microsoft.comUser-Mode Driver Framework Design Guide in the WDK

Resources
White PaperWDK Documentation Download
WHDC Portal/NodalDriver Developer Community Resources
WHDC Portal/NodalDriver Signing Requirements for Windows
WHDC Portal/NodalDriver Tips: Best Practices for Windows Device Drivers
WHDC Portal/NodalNotes from Windows Development Teams
WHDC Portal/NodalSupport for Developer Kits and Tools
OtherDriver Developer Blogs
Microsoft.comWDK Online