Windows Hardware Developer Documentation

repository·staging·Indexed 21 days ago

https://github.com/microsoftdocs/windows-driver-docs

Official guides and technical information for developers building Windows drivers. Includes documentation on interfacing with ACPI devices, implementing audio driver properties like KSPROPERTY_JACK_DESCRIPTION, translating Kernel Streaming (KS) topology to Mixer API lines, and using the KsStudio utility for testing WDM KS filter graphs.

Tokens
242.2K
Snippets
482
Records
1.1K
Agent score
76%

What's inside windows-driver-docs

  1. Overview of WDDM 1.2 and Windows 8

    staging

    WDDM (Windows Display Driver Model) version 1.2 is the driver model introduced with Windows 8. It is a superset of WDDM 1.0 (Windows Vista) and WDDM 1.1 (Windows 7). While WDDM 1.0 and 1.1 drivers continue to work on Windows 8, WDDM 1.2 is required to enable Windows 8-specific features such as Smooth Rotation, Stereoscopic 3-D, and D3D11 Video.

    Note that XDDM (Windows XP/2000 Display Driver Model) is no longer supported on Windows 8 client or server and will not load.

  2. Overview of Mobile Plans notifications

    staging

    Mobile Plans supports toast notifications that mobile operators can customize with text and images to communicate with end users. These notifications are based on the Windows 10 toast notifications framework. There are two primary types of notifications:

    1. SMS-triggered notifications: Triggered by sending an SMS to the device containing a specific string identifier.
    2. App-triggered notifications: Promotional notifications shown on eSIM-enabled Windows 10 PCs that do not currently have an eSIM profile, typically triggered after the out-of-box experience.

    Note: You must contact your Microsoft representative before planning to use this feature.

  3. Overview of Bluetooth LE Audio in Windows

    staging

    Bluetooth LE Audio (introduced in Windows 11 version 22H2, KB5026446) enables streaming unicast or broadcast audio to Bluetooth LE devices using an isochronous transport. Because the Bluetooth core specification (up to v5.3) lacks a standard Host Controller Interface (HCI) for isochronous data, Windows uses a Bluetooth vendor specific audio path (VSAP).

    To support Bluetooth LE Audio, audio drivers must use the Windows audio class extensions (ACX) framework. This allows for native support of multi-stack audio solutions and enables ACX to send requests directly to the Bluetooth stack via a profile circuit, bypassing the need for IHV drivers to relay requests manually.

  4. Overview of the Microsoft Basic Display Driver

    staging

    The Microsoft Basic Display Driver (BasicDisplay.sys) is a generic, in-box display driver included with the Windows operating system. Its primary function is to allow Windows to write to a display controller's linear frame buffer.

    Key Characteristics

    • Compatibility: It is compatible with DirectX APIs and Desktop Composition, ensuring a consistent experience even without dedicated hardware drivers.
    • Hardware Support: It works on both WDDM (Windows Display Driver Model) and legacy XDDM hardware. It also supports UEFI Graphics Output Protocol (GOP).
    • UEFI Behavior: On UEFI platforms, BasicDisplay inherits the linear frame buffer set during boot. Note that in this specific configuration, mode or resolution changes are not possible.
    • Deployment: Starting with Windows 11, both BasicDisplay and its companion BasicRender run from their DriverStore locations in c:\Windows\System32\DriverStore.
  5. Access Windows hardware developer documentation

    staging

    This repository contains the source for the official Windows hardware developer documentation. For high-level guides and documentation, use this repository.

    Note: If you are specifically looking for the Driver Reference (API/DDI) documentation, it is hosted in a separate repository: windows-driver-docs-ddi.

  6. Use Bluefruit LE UART Friend with the Bluetooth Test Platform

    staging

    The Bluefruit LE UART Friend (nRF51822) is a Low Energy (LE) radio used with the Microsoft Bluetooth Test Platform (BTP). It can behave as a HID peripheral (e.g., keyboard or mouse) and supports various GATT-based services. When running automated tests, use the parameter bluefruit to identify this device.

    Supported Tests:

    • Pairing tests
    • Human Interface Device (HID) tests
    • Battery tests
    • Audio & HID tests (as a HID device)
    • Wi-Fi coexistence tests (as a HID device)
    RunPairingTests.bat bluefruit
  7. New WinDbg features in Windows 11, version 24H2

    staging

    WinDbg has received several major updates in this version, including:

    • Time Travel Debugging (TTD) on ARM64: Support for TTD is now available on ARM64 architectures.
    • Live Linux debugging: Ability to debug Linux processes remotely.
    • Source Code Extended Access: Enhanced capabilities for accessing source code during debugging.
    • Open Enclave debugging: Support for debugging Open Enclave environments.
    • Ambiguous breakpoint resolution: Improved handling of breakpoints.
    • WinDbg - Restricted Mode: A new preview mode for restricted environments.
    • JavaScript Debugger Scripting: Improved JavaScript debugging capabilities.
    • New Disassembly Window: A redesigned interface for viewing disassembled code.
    • Smart number selection and search: Improved usability for numeric data.
    • Accessibility improvements: General enhancements for accessibility.
  8. Summary of UEFI compliance requirements for Windows on SoC platforms

    staging

    Windows 10 desktop editions (Home, Pro, Enterprise, and Education) require specific UEFI compliance as defined in the UEFI 2.3.1 specification (Section 2.6). Requirements are categorized into EFI system table, boot services, runtime services, and protocols.

    An Explicit Windows Requirement indicates a protocol or service directly called by a Windows component. While only these are explicitly used by the OS, other listed services may be required by core firmware, EFI device drivers, or development toolchains.

  9. Explore Windows driver technology areas

    staging

    Windows supports a wide range of specialized driver technologies. Developers can find specific documentation for various hardware interfaces and functional categories, including:

    • Connectivity & Bus Drivers: USB, Bluetooth, PCI, PCMCIA, Serial port, Parallel port, Simple Peripheral Bus (SPB), and SD card bus drivers.
    • Multimedia & Input: Audio, Display/graphics/compute accelerator, HID Drivers, Imaging, Sensor, and Streaming media drivers.
    • Storage & File Systems: Storage device drivers, File system drivers, and Storage Firmware Update (SFU).
    • Networking: Network drivers, NetAdapterCx, Mobile broadband, and NFC device drivers.
    • System & Power: ACPI, Battery Drivers, Power management technologies, and Windows Hardware Error Architecture (WHEA).
    • Specialized Hardware: 3D print devices, Biometric Drivers, GNSS, GPIO, Smartcard, and Point of Service device drivers.
  10. Use KsStudio to build and test WDM KS filter graphs

    staging

    KsStudio is a kernel streaming tool used to build, examine, and test WDM KS (Kernel Streaming) filter graphs in Windows. It is particularly useful for developers working with AVStream filters, such as audio drivers (USB, PCI, effects) and video capture drivers.

    Unlike other multimedia tools, KsStudio does not use high-level Multimedia APIs like DirectSound, MMSystem, or DirectShow. This allows you to interact directly with the filter driver and troubleshoot issues that might be masked by those APIs.

    Key Capabilities:

    • Graph Construction: Enumerate filter factories, instantiate filters and pins, and connect pins to build graphs.
    • Inspection: View intra-filter topology diagrams (internal nodes) and examine pin-to-pin connections.
    • Testing & Profiling: Perform filter and pin profiling, set/get properties, enable/signal events, and test basic functionality.
    • Data Streaming: Test data streaming for audio and video capture (vidcap) only.
    • Monitoring: View IRP (I/O Request Packet) details and statistics via KSMonitor.
  11. Components used for network driver installation

    staging

    Installing network drivers requires several specific components and files. The core requirements and optional vendor files are summarized below:

    Core Requirements

    • Information (INF) files: Every network component must have an INF file used by the network class installer.
    • Class Installer and Co-installer: Miniport drivers require a required class installer and an optional co-installer.
    • INetCfg: Used specifically for installing NDIS protocol and filter drivers.
    • Notify Object: An optional software component (protocol, client, or service) that can provide a UI, handle binding events, or manage conditional installation/removal.

    Optional Vendor-Supplied Files

    • Driver Images and Libraries: Typically includes .sys (driver image) and .dll (driver library) files.
    • Driver Catalog File: A .cat file obtained via WHQL testing/signing; must be listed in the INF file.
    • Text-mode Setup File (txtsetup.oem): Required if the network device is necessary for the machine to boot. This file provides information for system setup components during text-mode setup.