WHEA_PCIEXPRESS_ERROR_SECTION structure (ntddk.h)

The WHEA_PCIEXPRESS_ERROR_SECTION structure describes PCI Express (PCIe) error data.

Syntax

typedef struct _WHEA_PCIEXPRESS_ERROR_SECTION {
  WHEA_PCIEXPRESS_ERROR_SECTION_VALIDBITS ValidBits;
  WHEA_PCIEXPRESS_DEVICE_TYPE             PortType;
  WHEA_PCIEXPRESS_VERSION                 Version;
  WHEA_PCIEXPRESS_COMMAND_STATUS          CommandStatus;
  ULONG                                   Reserved;
  WHEA_PCIEXPRESS_DEVICE_ID               DeviceId;
  ULONGLONG                               DeviceSerialNumber;
  WHEA_PCIEXPRESS_BRIDGE_CONTROL_STATUS   BridgeControlStatus;
  UCHAR                                   ExpressCapability[60];
  UCHAR                                   AerInfo[96];
} WHEA_PCIEXPRESS_ERROR_SECTION, *PWHEA_PCIEXPRESS_ERROR_SECTION;

Members

ValidBits

A WHEA_PCIEXPRESS_ERROR_SECTION_VALIDBITS union that specifies which members of this structure contain valid data.

PortType

The device type or port type of the PCIe component where the error occurred. Possible values are:

WheaPciExpressEndpoint

A PCIe endpoint device.

WheaPciExpressLegacyEndpoint

A legacy PCIe endpoint device.

WheaPciExpressRootPort

A root port of a PCIe root complex.

WheaPciExpressUpstreamSwitchPort

An upstream port of a PCIe switch.

WheaPciExpressDownstreamSwitchPort

A downstream port of a PCIe switch.

WheaPciExpressToPciXBridge

A PCIe-to-PCI or PCI-X bridge.

WheaPciXToExpressBridge

A PCI or PCI-X-to-PCIe bridge.

WheaPciExpressRootComplexIntegratedEndpoint

A PCIe endpoint device that is integrated into the root complex.

WheaPciExpressRootComplexEventCollector

A PCIe root complex event collector.

This member contains valid data only if the ValidBits.PortType bit is set.

Version

A WHEA_PCIEXPRESS_VERSION union that contains the version of the PCIe specification that is supported by the hardware platform. The WHEA_PCIEXPRESS_VERSION union is defined as follows:

typedef union _WHEA_PCIEXPRESS_VERSION {
  struct {
    UCHAR  MinorVersion;
    UCHAR  MajorVersion;
    USHORT  Reserved;
  };
  ULONG  AsULONG;
} WHEA_PCIEXPRESS_VERSION, *PWHEA_PCIEXPRESS_VERSION;

MinorVersion

The minor version number.

MajorVersion

The major version number.

Reserved

Reserved for system use.

AsULONG

A ULONG representation of the contents of the WHEA_PCIEXPRESS_VERSION union.

This member contains valid data only if the ValidBits.Version bit is set.

CommandStatus

A WHEA_PCIEXPRESS_COMMAND_STATUS union that contains the contents of the PCI command and status registers of the PCIe device where the error occurred. The WHEA_PCIEXPRESS_COMMAND_STATUS union is defined as follows:

typedef union _WHEA_PCIEXPRESS_COMMAND_STATUS {
  struct {
    USHORT  Command;
    USHORT  Status;
  };
  ULONG  AsULONG;
} WHEA_PCIEXPRESS_COMMAND_STATUS, *PWHEA_PCIEXPRESS_COMMAND_STATUS;

Command

The contents of the PCI command register.

Status

The contents of the PCI status register.

AsULONG (CommandStatus)

A ULONG representation of the contents of the WHEA_PCIEXPRESS_COMMAND_STATUS union.

This member contains valid data only if the ValidBits.CommandStatus bit is set.

Reserved

Reserved for system use.

DeviceId

A WHEA_PCIEXPRESS_DEVICE_ID structure that contains data that identifies the PCIe device where the error occurred. The WHEA_PCIEXPRESS_DEVICE_ID structure is defined as follows:

typedef struct _WHEA_PCIEXPRESS_DEVICE_ID {
  USHORT  VendorID;
  USHORT  DeviceID;
  ULONG  ClassCode:24;
  ULONG  FunctionNumber:8;
  ULONG  DeviceNumber:8;
  ULONG  Segment:16;
  ULONG  PrimaryBusNumber:8;
  ULONG  SecondaryBusNumber:8;
  ULONG Reserved1:3;
  ULONG SlotNumber:13;  ULONG  Reserved2:8;
} WHEA_PCIEXPRESS_DEVICE_ID, *PWHEA_PCIEXPRESS_DEVICE_ID;

VendorID

The vendor ID of the device.

DeviceId

The device ID of the device.

ClassCode

The class code of the device.

FunctionNumber

The function number of the device on the bus.

DeviceNumber

The device number of the device on the bus.

Segment

The number of the bus segment that contains the device.

PrimaryBusNumber

The root port/bridge primary bus number or the device bus number.

SecondaryBusNumber

The root port/bridge secondary bus number.

Reserved1

Reserved for system use.

SlotNumber

The slot number where the device is located in the system.

Reserved2

Reserved for system use.

This member contains valid data only if the ValidBits.DeviceId bit is set.

DeviceSerialNumber

The serial number of the PCIe device where the error occurred.

This member contains valid data only if the ValidBits.DeviceSerialNumber bit is set.

BridgeControlStatus

A WHEA_PCIEXPRESS_BRIDGE_CONTROL_STATUS union that contains the contents of the PCI control and secondary status registers of the bridge device where the error occurred. The WHEA_PCIEXPRESS_BRIDGE_CONTROL_STATUS union is defined as follows:

typedef union _WHEA_PCIEXPRESS_BRIDGE_CONTROL_STATUS {
  struct {
    USHORT  BridgeSecondaryStatus;
    USHORT  BridgeControl;
  };
  ULONG  AsULONG;
} WHEA_PCIEXPRESS_BRIDGE_CONTROL_STATUS, *PWHEA_PCIEXPRESS_BRIDGE_CONTROL_STATUS;

BridgeSecondaryStatus

The contents of the secondary status register of the bridge device.

BridgeControl

The contents of the control register of the bridge device.

AsULONG (BridgeControlStatus)

A ULONG representation of the contents of the WHEA_PCIEXPRESS_BRIDGE_CONTROL_STATUS union.

This member contains valid data only if the ValidBits.BridgeControlStatus bit is set.

ExpressCapability[60]

A buffer that contains a PCI_EXPRESS_CAPABILITY structure that describes the PCIe capability structure for the device where the error occurred.

This member contains valid data only if the ValidBits.ExpressCapability bit is set.

AerInfo[96]

A buffer that contains a PCI_EXPRESS_AER_CAPABILITY structure that describes the PCIe advanced error reporting (AER) extended capability structure for the device where the error occurred.

This member contains valid data only if the ValidBits.AerInfo bit is set.

Remarks

The WHEA_PCIEXPRESS_ERROR_SECTION structure describes the error data that is contained in a PCI Express (PCIe) error section of an error record. An error record contains a PCIe error section only if the SectionType member of one of the WHEA_ERROR_RECORD_SECTION_DESCRIPTOR structures that describe the error record sections for that error record contains PCIEXPRESS_ERROR_SECTION_GUID.

Requirements

Requirement Value
Header ntddk.h (include Ntddk.h)

See also

PCI_EXPRESS_AER_CAPABILITY

PCI_EXPRESS_CAPABILITY

WHEA_ERROR_PACKET

WHEA_ERROR_RECORD_SECTION_DESCRIPTOR

WHEA_PCIEXPRESS_ERROR_SECTION_VALIDBITS