NdisMReadConfigBlock 函数 (ndis.h)
PCI Express(PCIe)虚拟函数(VF)的微型端口驱动程序调用 NdisMReadConfigBlock 函数从 VF 配置块读取数据。 VF 配置块的读取作由网络适配器的 PCIe 物理函数(PF)的微型端口驱动程序处理。
语法
NDIS_STATUS NdisMReadConfigBlock(
[in] NDIS_HANDLE NdisMiniportHandle,
[in] ULONG BlockId,
[out] PVOID Buffer,
[in] ULONG Length
);
参数
[in] NdisMiniportHandle
传递给 MiniportInitializeEx的 MiniportAdapterHandle 参数的网络适配器句柄。
[in] BlockId
一个 ULONG 值,指定要读取的 VF 配置块的标识符。 此标识符是独立硬件供应商(IHV)专有的,仅供 PF 和 VF 微型端口驱动程序使用。
[out] Buffer
指向调用方分配的缓冲区的指针,该缓冲区将包含请求的配置数据。
[in] Length
要从 VF 配置块读取的字节数。
返回值
NdisMReadConfigBlock 可以返回以下状态值之一:
返回代码 | 描述 |
---|---|
|
查询作成功完成。 |
|
查询作失败。 |
言论
VF 微型端口驱动程序调用 NdisMReadConfigBlock,以启动 PF 微型端口驱动程序对 VF 配置数据的反向通道读取请求。 收到此请求的通知后,PF 驱动程序将从指定的 VF 配置块返回数据。
VF 配置块用于 PF 和 VF 微型端口驱动程序之间的反向通道通信。 IHV 可以为设备定义一个或多个 VF 配置块。 每个 VF 配置块都有一个 IHV 定义的格式、长度和块 ID。
有关 SR-IOV 接口的详细信息,请参阅 单根 I/O 虚拟化(SR-IOV)概述。
虚拟总线驱动程序的交互
如果独立硬件供应商(IHV)在其 SR-IOV 驱动程序包中提供虚拟总线驱动程序(VBD),则其微型端口驱动程序不得调用 NdisMReadConfigBlock。 相反,驱动程序必须通过专用信道与 VBD 接口,并请求 VBD 调用 ReadVfConfigBlock。 此函数从基础虚拟 PCI (VRI) 总线驱动程序支持的 GUID_VPCI_INTERFACE_STANDARD 接口公开。在 Hyper-V 子分区的来宾作系统中运行的 VBD 可以通过向其物理设备对象(PDO)发出 IRP_MN_QUERY_INTERFACE 请求来查询 GUID_VPCI_INTERFACE_STANDARD 接口。 必须从 IRQL = PASSIVE_LEVEL发出此请求。 在此请求中,驱动程序必须将 InterfaceType 参数设置为GUID_VPCI_INTERFACE_STANDARD。
要求
要求 | 价值 |
---|---|
最低支持的客户端 | NDIS 6.30 及更高版本中受支持。 |
目标平台 | 普遍 |
标头 | ndis.h (包括 Ndis.h) |
库 | Ndis.lib |
IRQL | <= APC_LEVEL |
另请参阅