最終更新:2012-06-05 (火) 06:35:33 (4343d)  

MSDN Library/Windows Development/Windows Driver Development/Device and Driver Installation/Design Guide

http://msdn.microsoft.com/en-us/library/ff549731(VS.85).aspx

Overview of Device and Driver Installation

  • How Windows Installs Devices
    • Step 1: The New Device is Identified
    • Step 2: A Driver for the Device is Selected
    • Step 3: The Driver for the Device is Installed
  • Device Installation Components
    • System-provided Device Installation Components
      • Plug and Play Manager
      • Driver Store
  • Vendor-provided Device Installation Components
  • Device Installation Files
    • Sample Device Installation Files
  • Device Installation Types
  • System Setup Phases
  • How Windows Selects Drivers
    • Overview of the Driver Selection Process
    • Where Windows Searches for Drivers
    • How Windows Ranks Drivers
      • How Windows Ranks Drivers (Windows Vista and Later)
      • How Windows Ranks Drivers (Windows Server 2003, Windows XP, and Windows 2000)
  • Driver Selection and Ranking by Class Installers and Co-installers
  • AllSignersEqual? Group Policy (Windows Vista and Later)

Device and Driver Installation Fundamental Topics

  • Driver Packages
    • Components of a Driver Package
    • Installation Component Overview
    • Supplying an INF File
    • Supplying a Co-Installer
    • Supplying Device Installation Applications
  • INF Files
    • Overview of INF Files
      • Looking at an INF File
      • Summary of INF Sections
      • Summary of INF Directives
      • General Guidelines for INF Files
      • General Syntax Rules for INF Files
      • Specifying the Source and Target Locations for Device Files
      • Creating INF Files for Multiple Platforms and Operating Systems
      • Combining Platform Extensions with Operating System Versions
      • Creating International INF Files
      • Specifying Driver Load Order
      • Using Dirids
  • Accessing INF Files from a Device Installation Application
    • Opening and Closing an INF File
    • Retrieving Information from an INF File
  • Providing Vendor Icons for the Shell and AutoPlay?
  • Driver Signing
  • Overview of Digital Signatures for Driver Installation
  • Digital Signatures
  • Digital Certificates
  • Kernel-Mode Code Signing Policy (Windows Vista and Later)
  • Managing the Signing Process
    • Selecting the Appropriate Signature Type
    • Managing the Digital Signature or Code Signing Keys
  • Signing Drivers during Development and Test
    • Signing Drivers during Development and Test (Windows Vista and Later)
    • Signing Drivers during Development and Test (Windows Server 2003, Windows XP, and Windows 2000)
  • Signing Drivers for Public Release
    • Signing Drivers for Public Release (Windows Vista and Later)
    • Signing Drivers for Public Release (Windows Server 2003, Windows XP, and Windows 2000)
  • Troubleshooting Install and Load Problems with Signed Driver Packages
    • Detecting Driver Load Errors
    • Code Integrity Diagnostic System Log Events
    • SetupAPI Device Installation Log Entries
  • Device Metadata Packages
  • Overview of Device Metadata Packages
  • Overview of the Device Metadata System
    • Windows Metadata and Internet Services
    • Device Metadata Retrieval Client
    • Device Metadata Store
    • Device Metadata Cache
  • Device Metadata Package Structure
    • PackageInfo? XML Document
    • DeviceInfo? XML Document
    • WindowsInfo? XML Document
  • Building Device Metadata Packages
  • Installing Device Metadata Packages
    • Installing Device Metadata Packages to an Offline Windows Image
    • Installing Device Metadata Packages from WMIS
    • Installing Device Metadata Packages through an Application
    • Installing Device Metadata Packages through a Driver Package
    • Manually Adding Device Metadata Packages
  • How the DMRC Selects a Device Metadata Package
    • How the DMRC Determines When to Search the WMIS Server
  • Debugging Device Metadata Packages
    • Debugging Device Metadata Packages By Using Event Viewer
    • Debugging Device Metadata Packages by Using Problem Reports
    • Device Metadata Error Codes
  • Best Practices for Developing Device Metadata Packages
    • Best Practices for Specifying Hardware IDs
    • Best Practices for Specifying Model IDs
    • Best Practices for Testing the Download of Device Metadata Packages
  • Device and Driver Installation Software
  • Device and Driver Installation Software Tools
    • Setup API?
    • Driver Install Frameworks (DIFx?)
  • Device and Driver Installation Software Components
  • Writing a Co-installer
  • Writing a Class Installer
  • Finish-Install Wizard Pages
  • Finish-Install Actions (Windows Vista and Later)
  • Providing Device Property Pages
  • Writing a Device Installation Application
  • Uninstalling Devices and Driver Packages
  • How Devices and Driver Packages are Uninstalled
  • Using Device Manager to Uninstall Devices and Driver Packages
  • Using SetupAPI to Uninstall Devices and Driver Packages
  • Using the DIFx Tools to Uninstall Driver Packages
    • Using DIFxApp? to Uninstall Driver Packages
    • Using DPInst to Uninstall Driver Packages
    • Using DIFxAPI to Uninstall Driver Packages
  • Updating Driver Files

Device and Driver Installation Advanced Topics

  • Creating Secure Device Installations
  • Device Identification and Properties
  • Device Identification
    • Device Identification Strings
    • Device Classes
  • Device Properties
    • Unified Device Property Model (Windows Vista and Later)
    • Device Property Representations (Windows Server 2003, Windows XP, and Windows 2000)
  • Device Installations and System Restarts
  • Avoiding System Restarts during Device Installations
  • Initiating System Restarts During Device Installations
  • Device Installations on 64-Bit Systems
  • Drivers with Special Installation Requirements
    • Installing a Boot-Start Driver
    • Installing a Filter Driver
    • Installing a Null Driver
    • Installing a New Bus Driver
      • Using Custom Hardware IDs and Compatible IDs
      • Installing a New Device Setup Class for a Bus
  • Installing Private Builds of In-box Drivers (Windows Vista and Later)
    • Overview of Installing Private Builds of In-box Drivers
    • Creating a Private Build of an In-box Driver
    • Configuring Windows to Rank Driver Signatures Equally
    • Installing the Updated Version of the Driver Package
  • Registry Trees and Keys for Devices and Drivers
    • Registry Trees for Devices and Drivers
      • HKLM/SYSTEM/CurrentControlSet/Services? Registry Tree
      • HKLM/SYSTEM/CurrentControlSet/Control? Registry Tree
      • HKLM/SYSTEM/CurrentControlSet/Enum? Registry Tree
      • HKLM/SYSTEM/CurrentControlSet/HardwareProfiles? Registry Tree
  • RunOnce? Registry Key
  • DeviceOverrides? Registry Key
    • HardwareID Registry Subkey
    • CompatibleID Registry Subkey
    • LocationPaths? Registry Subkey
    • ChildLocationPaths? Registry Subkey
    • LocationPath? Registry Subkey
    • * Registry Subkey
  • Troubleshooting Device and Driver Installations
    • Using Device Manager
      • Device Manager Error Messages
      • Device Manager Details Tab
      • Viewing Hidden Devices
    • SetupAPI Logging (Windows Vista and Later)
      • SetupAPI Text Logs
      • SetupAPI Logging Registry Settings
      • Using the SetupAPI Logging Functions
    • SetupAPI Logging (Windows Server 2003, Windows XP, and Windows 2000)
      • Setting SetupAPI Logging Levels
      • Interpreting a Sample SetupAPI Log File
    • Debugging Device Installations (Windows Vista and Later)
      • Enabling Support for Debugging Device Installations
      • Debugging Device Installations with a User-mode Debugger
      • Debugging Device Installations with the Kernel Debugger (KD)

Best Practices for Device and Driver Installation

  • General Guidelines for Device and Driver Installation
  • Enumerating Installed Devices
  • Accessing and Modifying Registry Values
  • Accessing Registry Keys Safely
  • Accessing Software and Hardware Keys
    • Opening a Device's Hardware Key
    • Opening a Device's Software Key
    • Modifying Registry Values in a Device's Software Key
  • Accessing Device Setup Classes in the Registry
    • Enumerating Installed Device Setup Classes
    • Opening Registry Keys for a Device Setup Class
    • Opening Software Keys for All Devices in a Setup Class
  • Accessing Device Interfaces in the Registry
    • Enumerating Installed Device Interfaces
    • Accessing the Properties of Installed Device Interfaces
  • Accessing the Registry by Class Installers and Co-installers
    • Modifying Registry Keys by Class Installers and Co-installers
    • Modifying Registry Values by Class Installers and Co-installers
  • Deleting the Registry Keys of a Device
  • Accessing and Modifying Device Properties
    • Accessing Device Properties
    • Rules for Modifying Device Properties
  • Accessing and Modifying Files
  • Writing INF Files
  • Calling SetupAPI Functions
  • Performing Software-First Installations
  • Writing Class Installers and Co-Installers