NdisMSetVirtualFunctionBusData 函数 (ndis.h)
微型端口驱动程序调用 NdisMSetVirtualFunctionBusData 函数,将数据写入 PCI Express (PCIe) 配置空间的虚拟函数 (VF) 。
语法
ULONG NdisMSetVirtualFunctionBusData(
[in] NDIS_HANDLE NdisMiniportHandle,
[in] NDIS_SRIOV_FUNCTION_ID VFId,
[in] PVOID Buffer,
[in] ULONG Offset,
[in] ULONG Length
);
参数
[in] NdisMiniportHandle
NDIS 传递给 MiniportInitializeEx 的 MiniportAdapterHandle 参数的网络适配器句柄。
[in] VFId
将数据写入其 PCI 配置空间的 VF 的标识符。
[in] Buffer
指向缓冲区的指针,该缓冲区包含要写入 PCI 配置空间的数据。
[in] Offset
将数据写入到的 PCI 配置空间中的偏移量(以字节为单位)。
[in] Length
要写入的数据的长度(以字节为单位)。
返回值
NdisMSetVirtualFunctionBusData 返回写入 PCI 配置空间的字节数。 如果写入操作失败, NdisMSetVirtualFunctionBusData 返回零。
注解
PF 微型端口驱动程序在处理 OID_SRIOV_WRITE_VF_CONFIG_SPACE 的 OID 方法请求时,通常调用 NdisMSetVirtualFunctionBusData。
但是,驱动程序可以通过调用 NdisMEnableVirtualization 在网络适配器上启用虚拟化后,随时调用此函数。
有关单根 I/O 虚拟化 (SR-IOV) 接口内反向通道通信的详细信息,请参阅 SR-IOV PF/VF 反向通道通信。
有关 SR-IOV 接口的详细信息,请参阅 单根 I/O 虚拟化 (SR-IOV) 概述 。
与虚拟总线驱动程序交互
如果独立硬件供应商 (IHV) 提供虚拟总线驱动程序 (VBD) 作为其 SR-IOV 驱动程序包的一部分,则其微型端口驱动程序不得调用 NdisMSetVirtualFunctionBusData。 相反,驱动程序必须通过专用信道与 VBD 接口,并请求 VBD 调用 SetVirtualFunctionData。 此函数从基础 PCI 总线驱动程序支持的 GUID_PCI_VIRTUALIZATION_INTERFACE 接口公开。在 Hyper-V 父分区的管理操作系统中运行的 VBD 可以通过在 PCI 总线上向其物理设备对象发出IRP_MN_QUERY_INTERFACE请求来查询GUID_PCI_VIRTUALIZATION_INTERFACE接口, (PDO) 。 必须从 IRQL = PASSIVE_LEVEL 发出此请求。 在此请求中,驱动程序必须将 InterfaceType 参数设置为 GUID_PCI_VIRTUALIZATION_INTERFACE。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | 不支持,NDIS 6.30 及更高版本支持。 |
最低受支持的服务器 | Windows Server 2012 |
目标平台 | 通用 |
标头 | ndis.h (包括 Ndis.h) |
Library | Ndis.lib |
IRQL | <= DISPATCH_LEVEL |
另请参阅
GUID_PCI_VIRTUALIZATION_INTERFACE