// ndis.h
VOID NdisMInvalidateConfigBlock(
[in] NDIS_HANDLE NdisMiniportHandle,
[in] NDIS_SRIOV_FUNCTION_ID VFId,
[in] ULONGLONG BlockMask
);
View the official Windows Driver Kit DDI referenceNo description available.
A miniport driver calls the NdisMInvalidateConfigBlock function to notify NDIS that the data for one or more Virtual Function (VF) configuration blocks has been changed.
Note NdisMInvalidateConfigBlock must only be called by the miniport driver for the network adapter's PCIe Physical Function (PF).
NdisMiniportHandle [in]The network adapter handle that NDIS passed to the MiniportAdapterHandle parameter of MiniportInitializeEx.
VFId [in]The identifier of the VF for which the device location is returned.
BlockMask [in]A ULONGLONG value that specifies a bitmask for the first 64 VF configuration blocks. Each bit in the bitmask corresponds to a VF configuration block. If the bit is set to one, the data associated with the corresponding VF configuration block has changed.
A VF configuration block is used for backchannel communication between the PF and VF miniport drivers. The IHV can define one or more VF configuration blocks for the device. Each VF configuration block has an IHV-defined format, length, and block ID.
Note Data from each VF configuration block is used only by the PF and VF miniport drivers.
VF configuration data is exchanged between the following drivers:
The PF driver, which runs in the management operating system.
This operating system runs within the Hyper-V parent partition.
In order to handle notifications of invalid VF configuration data, NDIS and the miniport drivers perform the following steps:
In the management operating system, the following steps occur:
NDIS signals the virtualization stack, which runs in the management operating system, about the change to VF configuration block data. The virtualization stack caches the BlockMask parameter data.
Note Each time that the PF miniport driver calls NdisMInvalidateConfigBlock, the virtualization stack ORs the BlockMask parameter data with the current value in its cache.
In the guest operating system, the following steps occur:
The VPCI driver successfully completes the IOCTL_VPCI_INVALIDATE_BLOCK request. When this happens, NDIS issues an OID method request of OID_SRIOV_VF_INVALIDATE_CONFIG_BLOCK to the VF miniport driver. An NDIS_SRIOV_VF_INVALIDATE_CONFIG_BLOCK_INFO request is passed along in the OID request. This structure contains the cached BlockMask parameter data.
NDIS also issues another IOCTL_VPCI_INVALIDATE_BLOCK request to handle successive notifications of changes to VF configuration data.
For more information about backchannel communication within the single root I/O virtualization (SR-IOV) interface, see SR-IOV PF/VF Backchannel Communication.
For more information about the SR-IOV interface, see Overview of Single Root I/O Virtualization (SR-IOV).
NDIS_SRIOV_VF_INVALIDATE_CONFIG_BLOCK_INFO
OID_SRIOV_READ_VF_CONFIG_SPACE