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