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 结构的 上下文 成员传递的值。

[in] DataType

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

[in] Buffer

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

[in] Offset

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

[in] Length

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

返回值

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

言论

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

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 (include Ntddk.h)
IRQL 请参阅“备注”部分。

另请参阅

BUS_INTERFACE_STANDARD

IRP_MN_READ_CONFIG