<!--
{
  "availability" : [
    "DriverKit: 19.0.0 -",
    "macOS: 11.1.0 -"
  ],
  "documentType" : "symbol",
  "framework" : "PCIDriverKit",
  "identifier" : "/documentation/PCIDriverKit",
  "metadataVersion" : "0.1.0",
  "role" : "Framework",
  "symbol" : {
    "kind" : "Framework",
    "modules" : [
      "PCIDriverKit"
    ],
    "preciseIdentifier" : "PCIDriverKit"
  },
  "title" : "PCIDriverKit"
}
-->

# PCIDriverKit

Develop device drivers for Peripheral Component Interconnect (PCI) accessories.

## Overview

Use the PCIDriverKit framework to develop drivers that manage custom features on your Peripheral Component Interconnect (PCI) and PCI-Express hardware. When the system loads your custom PCI driver, it passes an [`IOPCIDevice`](/documentation/PCIDriverKit/IOPCIDevice) object as the provider to your driver. Use that object to read and write the configuration and memory of your PCI hardware.

On macOS, use the <doc://com.apple.documentation/documentation/SystemExtensions> framework to install and upgrade your driver. On iPadOS, the system automatically discovers and upgrades drivers along with their host apps.

> Note:
> PCIDriverKit is available on macOS for Intel and Apple Silicon devices, and on iPadOS for devices with an M-series chip.

## Topics

### Entitlements

  <doc://com.apple.documentation/documentation/BundleResources/Entitlements/com.apple.developer.driverkit.transport.pci>

### Samples

  <doc://com.apple.documentation/documentation/DriverKit/driverkit-sample-code>

[Connecting a network driver](/documentation/PCIDriverKit/connecting-a-network-driver)

Create an Ethernet driver that interfaces with the system’s network protocol stack.

### Device Interface

[Creating Custom PCIe Drivers for Thunderbolt Devices](/documentation/PCIDriverKit/creating-custom-pcie-drivers-for-thunderbolt-devices)

Create a DriverKit extension to support your Thunderbolt device’s custom features.

[`IOPCIDevice`](/documentation/PCIDriverKit/IOPCIDevice)

A DriverKit provider object that manages access to your custom PCI hardware.

### Reference

[PCIDriverKit Enumerations](/documentation/PCIDriverKit/pcidriverkit-enumerations)

[PCIDriverKit Data Types](/documentation/PCIDriverKit/pcidriverkit-data-types)

[PCIDriverKit Macros](/documentation/PCIDriverKit/PCIDriverKit-macros)



---

Copyright &copy; 2026 Apple Inc. All rights reserved. | [Terms of Use](https://www.apple.com/legal/internet-services/terms/site.html) | [Privacy Policy](https://www.apple.com/privacy/privacy-policy)
