驅動程式開發秘訣:每位驅動程式開發人員都需要知道...

驅動程式開發秘訣針對已發行的 Windows 版本提供關於基本技術、工具,以及撰寫驅動程式之最佳方式的簡明的資訊,並提供步驟可供遵循以及可提供更多相關資訊之連結。

Recent Driver Tips:
White PaperCustom Power Settings for Signed Drivers  
White PaperFrom Sample Code to Production Driver: What to Change in the Sample  
White PaperHow to Release-Sign File System Drivers  
White PaperWhen WDF Drivers Can Use Power-Managed I/O Queues  

KMDF Tips
White PaperHow to Enable the Frameworks Verifier
White PaperHow to Use the KMDF Log
White PaperIs That Handle Still Valid?
White PaperTroubleshooting KMDF Driver Installation
White PaperWhen does EvtCleanupCallback run?
Microsoft.comHow to View the KMDF Log for Your Driver

Memory Management Driver Tips
White PaperCommon-buffer DMA? No translation required!
White PaperHow do I keep my driver from running out of kernel-mode stack?
White PaperSix Tips for Efficient Memory Use
White PaperWhat does MmProbeAndLockPages actually lock?
White PaperWhat Is Really in That MDL?
White PaperWhere did all that contiguous memory come from?
White PaperWho's Using the Pool?

I/O Request Driver Tips
White PaperGetting your driver to handle more than one I/O request at a time
White PaperI/O cancellation: when does it matter?
White PaperMy device is gone. Why am I still getting IRPs?
White PaperQueuing a work item: Once is enough!
White PaperToo long, too short, or just right? Buffer size matters
White PaperWhat does DO_DEVICE_INITIALIZING really do?

Plug and Play and Power Management Driver Tips
White PaperHello, user mode? Plug and Play calling
White PaperSurprise! Your device is gone. What should your driver do?
White PaperWhen WDF Drivers Can Use Power-Managed I/O Queues  

Driver Design Tips
White PaperFrom Sample Code to Production Driver: What to Change in the Sample  
White PaperNo time to write a bus driver? Try using a device object namespace
White PaperWriting kernel-mode drivers in C++: should you or shouldn't you?

Synchronization Driver Tips:
White PaperOne at a time! Protecting shared data from concurrent routines
White PaperSummary of Windows Synchronization Primitives

Security and Reliability Driver Tips
White PaperCustom Power Settings for Signed Drivers  
White PaperHelp prevent buffer overruns in your driver! Use safe string functions
White PaperHow safe is your device namespace?
White PaperHow to Release-Sign File System Drivers  
White PaperIOCTLs with FILE_ANY_ACCESS: safe or sorry?
White PaperOf course it's a valid handle! (Or is it?)

Building, Testing, and Debugging Tips
White PaperCalling a DLL in a Kernel-Mode Driver
White PaperDebugging Windows Vista
White PaperDriver won't load on Windows 2000? VER_SET_CONDITION may be the culprit
White PaperHow do I keep the debugger from looking for symbols I don't need?
White PaperHow much time is your driver spending in its DPCs and ISRs?
White PaperHow to Use Function typedefs in C++ Driver Code to Improve PREfast Results
White PaperInstalling Test Builds of Inbox Drivers on Windows Vista
White PaperTesting for Errors in Accessing and Allocating Memory
White PaperTrack down hard-to-find bugs in driver source code with PREfast

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

請參閱: 
來自 Windows 開發團隊的叮嚀