GET_SET_DEVICE_DATA回调函数 (wdm.h)

GetBusData 例程从设备的配置空间读取数据。

语法

GET_SET_DEVICE_DATA GetSetDeviceData;

ULONG GetSetDeviceData(
  [in] PVOID Context,
  [in] ULONG DataType,
  [in] PVOID Buffer,
  [in] ULONG Offset,
  [in] ULONG Length
)
{...}

参数

[in] Context

指向特定于接口的上下文信息的指针。 调用方传递的值作为接口的BUS_INTERFACE_STANDARD结构的 Context 成员传递。

[in] DataType

要读取的总线数据类型。 有关详细信息,请参阅IRP_MN_READ_CONFIG中的 WhichSpace 参数的讨论。

[in] Buffer

指向缓冲区的指针,该缓冲区保存要从设备配置空间读取的配置信息。

[in] Offset

此读取操作开始到特定于总线的设备数据的偏移量。 例如,如果 DataType 参数 PCI_WHICHSPACE_CONFIG则 Offset 参数值是 PCI 配置空间中的偏移量。

[in] Length

要读取的数据的长度(以字节为单位)。

返回值

GetBusData 例程返回在成功读取操作后读取的配置数据的长度(以字节为单位)。 如果读取操作不成功,则返回零值。

注解

根据 DataType 参数的值,只能从下表中定义的中断请求级别 (IRQL) 调用 GetBusData 例程。

DataType IRQL
PCI_WHICHSPACE_CONFIG <= DIRQL
PCI_WHICHSPACE_ROM <= APC_LEVEL
PCCARD_COMMON_MEMORY

PCCARD_COMMON_MEMORY_INDIRECT

<= DISPATCH_LEVEL
PCCARD_ATTRIBUTE_MEMORY

PCCARD_ATTRIBUTE_MEMORY_INDIRECT

<= DISPATCH_LEVEL
PCCARD_PCI_CONFIGURATION_SPACE <= DIRQL
 

以下说明适用于支持单根 I/O 虚拟化 (SR-IOV) 接口的设备上的 PCI Express (PCIe) 虚拟函数 (VF) 的驱动程序:

  • PCIe VF 的驱动程序应调用 IRQL <= APC_LEVEL 的 GetBusData 例程。
  • 若要在 IRQL = DISPATCH_LEVEL 读取 VF 的 PCI 配置数据,驱动程序必须发出 IRP_MN_READ_CONFIG 的 I/O 请求。

要求

要求
目标平台 桌面
标头 wdm.h (包括 Ntddk.h)
IRQL 请参见“备注”部分。

另请参阅

BUS_INTERFACE_STANDARD

IRP_MN_READ_CONFIG