NdisMWriteConfigBlock 函数 (ndis.h)

PCI Express(PCIe)虚拟函数(VF)的微型端口驱动程序调用 NdisMWriteConfigBlock 函数将数据写入 VF 配置块。 VF 配置块上的写入作由网络适配器的 PCIe 物理函数(PF)的微型端口驱动程序处理。

注意,NdisMWriteConfigBlock 只能由网络适配器 VF 的微型端口驱动程序调用。
 

语法

NDIS_STATUS NdisMWriteConfigBlock(
  [in] NDIS_HANDLE NdisMiniportHandle,
  [in] ULONG       BlockId,
  [in] PVOID       Buffer,
  [in] ULONG       Length
);

参数

[in] NdisMiniportHandle

传递给 MiniportInitializeExMiniportAdapterHandle 参数的网络适配器句柄。

[in] BlockId

一个 ULONG 值,该值指定要写入的配置块的标识符。 此标识符是独立硬件供应商(IHV)专有的,仅供网络适配器上的 PF 和 VF 的微型端口驱动程序使用。

[in] Buffer

指向调用方分配的缓冲区的指针,其中包含要写入的配置数据。

[in] Length

要写入配置块的字节数。

返回值

NdisMWriteConfigBlock 可以返回以下状态值之一。

返回代码 描述
NDIS_STATUS_SUCCESS
写入作成功完成。
NDIS_STATUS_FAILURE
写入作失败。

言论

VF 微型端口驱动程序调用 NdisMWriteConfigBlock,以启动 PF 微型端口驱动程序对 VF 配置数据的反向通道写入请求。 收到此请求的通知后,PF 驱动程序会将数据写入指定的 VF 配置块。

VF 配置块用于 PF 和 VF 微型端口驱动程序之间的反向通道通信。 IHV 可以为设备定义一个或多个 VF 配置块。 每个 VF 配置块都有一个 IHV 定义的格式、长度和块 ID。

注意 每个 VF 配置块中的数据仅由 PF 和 VF 微型端口驱动程序使用。
 
有关单根 I/O 虚拟化(SR-IOV)接口中的反向通道通信的详细信息,请参阅 SR-IOV PF/VF 反向通道通信

虚拟总线驱动程序的交互

如果独立硬件供应商(IHV)在其 SR-IOV 驱动程序包中提供虚拟总线驱动程序(VBD),则其微型端口驱动程序不得调用 NdisMWriteConfigBlock。 相反,驱动程序必须通过专用信道与 VBD 接口,并请求 VBD 调用 WriteVfConfigBlock。 此函数从基础虚拟 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 及更高版本不支持。
支持的最低服务器 Windows Server 2012
目标平台 普遍
标头 ndis.h (包括 Ndis.h)
Ndis.lib
IRQL <= APC_LEVEL

另请参阅

GUID_VPCI_INTERFACE_STANDARD

WriteVfConfigBlock