NdisMSetVirtualFunctionBusData 函数 (ndis .h)

微型端口驱动程序调用 NdisMSetVirtualFunctionBusData 函数,以便将数据写入到网络适配器 (VF) 虚拟功能的 PCI Express (PCIe) 配置空间。

请注意NdisMGetVirtualFunctionBusData必须仅由网络适配器的 PCIE 物理功能 (PF) 的微型端口驱动程序调用。

语法

ULONG NdisMSetVirtualFunctionBusData(
  [in] NDIS_HANDLE            NdisMiniportHandle,
  [in] NDIS_SRIOV_FUNCTION_ID VFId,
  [in] PVOID                  Buffer,
  [in] ULONG                  Offset,
  [in] ULONG                  Length
);

参数

[in] NdisMiniportHandle

此 NDIS 传递到MiniportInitializeExMiniportAdapterHandle参数的网络适配器句柄。

[in] VFId

数据写入到其 PCI 配置空间的 VF 的标识符。

[in] Buffer

指向缓冲区的指针,该缓冲区包含要写入 PCI 配置空间的数据。

[in] Offset

要向其写入数据的 PCI 配置空间中的偏移量(以字节为单位)。

[in] Length

要写入的数据的长度(以字节为单位)。

返回值

NdisMSetVirtualFunctionBusData 返回写入 PCI 配置空间的字节数。 如果写入操作失败, NdisMSetVirtualFunctionBusData 将返回零。

注解

当处理OID_SRIOV_WRITE_VF_CONFIG_SPACE的 OID 方法请求时,PF 微型端口驱动程序通常会调用NdisMSetVirtualFunctionBusData
但是,在通过对 NdisMEnableVirtualization的调用在网络适配器上启用虚拟化之后,驱动程序可以随时调用此函数。

有关 backchannel) 接口 (的单个根 i/o 虚拟化内的通信的详细信息,请参阅 SR-IOV PF/VF Backchannel 通信

有关 SR-IOV 接口的详细信息,请参阅 单根 I/o 虚拟化概述 (sr-iov)

与虚拟总线驱动程序建立交互

如果独立硬件供应商 (IHV) 提供 (的 VBD) 作为其 SR-IOV 驱动程序包的一部分的虚拟总线驱动程序,则其微型端口驱动程序不得调用 NdisMSetVirtualFunctionBusData。 相反,驱动程序必须通过专用信道与 VBD 交互,并请求该 VBD 调用 SetVirtualFunctionData。 此函数从底层 PCI 总线驱动程序支持的 GUID_PCI_VIRTUALIZATION_INTERFACE 接口公开。

在 Hyper-v 父分区的管理操作系统中运行的 VBD 可通过向其物理设备对象发出IRP_MN_QUERY_INTERFACE请求来查询GUID_PCI_VIRTUALIZATION_INTERFACE接口, (在 PCI 总线上的 PDO) 。 必须从 IRQL = PASSIVE_LEVEL 发出此请求。 在此请求中,驱动程序必须将 InterfaceType 参数设置为 GUID_PCI_VIRTUALIZATION_INTERFACE。

要求

   
最低受支持的客户端 在 NDIS 6.30 和更高版本中不支持任何支持。
最低受支持的服务器 Windows Server 2012
目标平台 通用
标头 (包含 Ndis .h)
Library Ndis .lib
IRQL <= DISPATCH_LEVEL

请参阅

GUID_PCI_VIRTUALIZATION_INTERFACE

NdisMEnableVirtualization

OID_NIC_SWITCH_ALLOCATE_VF

OID_SRIOV_WRITE_VF_CONFIG_SPACE

SetVirtualFunctionData