• ▼MSDN Library Visual Studio 6.0
    • ▶Welcome to the MSDN Library
    • ▶Visual Studio Documentation
    • ▶Visual Basic Documentation
    • ▶Visual C++ Documentation
    • ▶Visual FoxPro Documentation
    • ▶Visual InterDev Documentation
    • ▶Visual J++ Documentation
    • ▶Visual SourceSafe Documentation
    • ▶Tools and Technologies
    • ▶Microsoft Office Development
    • ▶Platform SDK
    • ▶SDK Documentation
    • ▼DDK Documentation
      • ▶Windows 95 Device Driver Kit
      • ▶Windows CE Device Driver Kit
      • ▼Microsoft Windows NT 4.0 DDK
        • ▶Legal Information
        • ▶Release Notes for V4.0
        • ▶Programmer's Guide
        • ▼Kernel-Mode Drivers
          • ▼Design Guide
            • ▶Chapter 1 NT Drivers
            • ▶Chapter 2 Layered I/O, IRPs, and I/O Objects
            • ▶Chapter 3 NT Objects and Support for Drivers
            • ▶Chapter 4 Basic Driver Structure
            • ▶Chapter 5 DriverEntry and Reinitialize Routines
            • ▶Chapter 6 Dispatch Routines
            • ▶Chapter 7 StartIo and Queue Management Routines
            • ▶Chapter 8 Interrupt Service Routine
            • ▶Chapter 9 DpcForIsr Routine and CustomDpc Routines
            • ▶Chapter 10 SynchCritSection Routines
            • ▶Chapter 11 AdapterControl and ControllerControl Routines
            • ▶Chapter 12 Cancel Routines
            • ▶Chapter 13 IoCompletion Routines
            • ▶Chapter 14 IoTimer and CustomTimerDpc Routines
            • ▶Chapter 15 Unload Routine
            • ▼Chapter 16 Common Driver Design Issues
              • Chapter 16 Common Driver Design Issues
              • 16.1 Managing Hardware Priorities
              • ▶16.2 Using Spin Locks
              • 16.3 Polling a Device
              • ▶16.4 Managing Memory Usage
              • ▶16.5 Maintaining Cache Coherency for DMA and PIO
              • ▶16.6 Error Logging and NTSTATUS Values
              • 16.7 Handling Removable Media
              • ▼16.8 Using the Registry
                • 16.8 Using the Registry
                • ▶16.8.1 Registry Paths Supplied to NT Drivers
                • ▼16.8.2 Getting Device Hardware Configuration Information
                  • 16.8.2 Getting Device Hardware Configuration Information
                  • 16.8.2.1 Calling IoQueryDeviceDescription
                  • 16.8.2.2 Calling HalGetBusData or HalGetBusDataByOffset
                • ▶16.8.3 Claiming Hardware Resources
                • 16.8.4 Setting Up Driver-specific, User-visible Error Logging
                • 16.8.5 Using the RegistryPath Parameters
              • ▶16.9 Setting Up Symbolic Links
            • ▶Appendix A SCSI Drivers
            • ▶Kernel-mode Glossary
          • ▶Reference
        • ▶Graphics Drivers
        • ▶Multimedia Drivers
        • ▶Network Drivers
        • ▶Virtual DOS Drivers
      • ▶Smart Card DDK
    • ▶Windows Resource Kits
    • ▶Specifications
    • ▶Knowledge Base
    • ▶Technical Articles
    • ▶Backgrounders
    • ▶Books
    • ▶Partial Books
    • ▶Periodicals
    • ▶Conference Papers