The topic you requested is included in another documentation set. For convenience, it's displayed below. Choose Switch to see the topic in its original location.

PCI driver development


This section describes Peripheral Component Interconnect (PCI) bus client drivers and describes how you can access the configuration space of PCI devices.

A PCI bus is a dynamically configurable I/O bus that is described by the PCI Local Bus Specification.

Where Applicable

The PCI bus driver manages requests for configuration space information.

Developer Audience

This section is intended for use by C programmers. Before you use this section, you should understand basic driver development. For more information, see Getting Started with Windows Drivers.

Design Guide for writing PCI drivers

Describes how to access the configuration space of a PCI device and provides a code example of how to query for the power management capability data of a device.

Programming Reference

Describes the system-defined structures that are used by PCI bus client drivers on Windows Driver Model (WDM) platforms.


Supported PCIe features in Windows

The following table summarizes the PCIe features that are supported by different versions of Windows. For details, see the specified sections in the official PCIe specification.

FeatureMinimum Windows version

Resizable BAR capability

See section 7.22.

Windows 10

Atomic Operations

See section 6.15.

Windows 10

ACPI additions for FW latency optimizations

See ACPI Additions for FW Latency Optimizations

Windows 10


Windows 10


FeatureMinimum Windows version

Optimized Buffer Flush/Fill (OBFF)

See section 6.19.

Windows 8

Windows Server 2012

Latency Tolerance Reporting (LTR) Capability

See section 7.25.

Windows 8

Windows Server 2012

Alternative Routing-ID Interpretation (ARI)

See section 6.13.

Windows 8

Windows Server 2012

Message Signaled Interrupt (MSI/MSI-X) Support

See section 6.1.4.

Windows Vista

Windows Server 2008 R2

TLP Processing Hints (TPH)

See section 6.17.

Windows 8

Windows Server 2012

Single Root I/O Virtualization (SR-IOV)

See Single Root I/O Virtualization (SR-IOV).

Windows 8

Windows Server 2012




Send comments about this topic to Microsoft