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 | 请参见“备注”部分。 |