OID_SRIOV_VF_INVALIDATE_CONFIG_BLOCK
NDIS vydává žádost o metodu identifikátoru objektu (OID) OID_SRIOV_VF_INVALIDATE_CONFIG_BLOCK, aby oznámil ovladač miniportu virtuální funkce PCI Express (PCIe), že se data v jednom nebo několika blocích konfigurace změnila. NDIS tento identifikátor OID vydává, když ovladač miniportu pro fyzické funkce PCIe (PF) volá NdisMInvalidateConfigBlock.
InformationBuffer člen struktury NDIS_OID_REQUEST obsahuje ukazatel na NDIS_SRIOV_VF_INVALIDATE_CONFIG_BLOCK_INFO strukturu. Tato struktura určuje jeden nebo více bloků konfigurace virtuální funkce (VF), jejichž data byla změněna (zneplatněna) ovladačem miniportu PF.
Poznámky
Blok konfigurace VF se používá pro komunikaci backchannel mezi ovladači PF a miniportu VF. IHV může definovat jeden nebo více bloků konfigurace VF pro zařízení. Každý blok konfigurace VF má formát definovaný IHV, délku a ID bloku.
Poznámka: Data z každého bloku konfigurace VF se používají pouze ovladači PF a miniportu VF.
Konfigurační data VF se vyměňují mezi následujícími ovladači:
Ovladač VF, který běží v hostovaném operačním systému. Tento operační systém běží v rámci Hyper-V podřízeného oddílu.
Ovladač PF, který běží v operačním systému pro správu. Tento operační systém běží v rámci Hyper-V nadřazeného oddílu.
Aby bylo možné zpracovat oznámení o neplatných konfiguračních datech VF, NDIS a ovladače miniportu, proveďte následující kroky:
V hostovaném operačním systému vydává rozhraní NDIS žádost o řízení vstupně-výstupních operací IOCTL_VPCI_INVALIDATE_BLOCK požadavku. Po dokončení této hodnoty IOCTL se NDIS oznámí, že se změnila konfigurační data VF.
V operačním systému pro správu dochází k následujícím krokům:
Ovladač miniportu PF volá funkci NdisMInvalidateConfigBlock, která upozorní NDIS, že se změnila konfigurační data VF a už nejsou platná. Ovladač nastaví parametr BlockMask na ULONGLONG bitmask, který určuje, které bloky konfigurace VF se změnily. Každý bit v maskách bitů odpovídá bloku konfigurace VF. Pokud je bit nastavený na jeden, data v odpovídajícím bloku konfigurace VF se změnila.
NDIS signalizuje zásobník virtualizace, který běží v operačním systému pro správu, o změně dat bloku konfigurace VF. Zásobník virtualizace ukládá data parametrů BlockMask do mezipaměti.
Poznámka Pokaždé, když ovladač miniportu PF volá NdisMInvalidateConfigBlock, zásobník virtualizace ORs BlockMask data parametrů s aktuální hodnotou v mezipaměti.
Zásobník virtualizace upozorní virtuálního ovladače PCI (VPCI), který běží v hostovaném operačním systému, o zneplatnění konfiguračních dat VF. Zásobník virtualizace odesílá data parametrů BlockMask do mezipaměti ovladače VPCI.
V hostovaném operačním systému dochází k následujícím krokům:
Ovladač VPCI uloží data parametrů BlockMask v BlockMask člen struktury VPCI_INVALIDATE_BLOCK_OUTPUT, která je přidružená k požadavku IOCTL_VPCI_INVALIDATE_BLOCK.
Ovladač VPCI úspěšně dokončí požadavek IOCTL_VPCI_INVALIDATE_BLOCK. V takovém případě NDIS vydá požadavek metody OID OID_SRIOV_VF_INVALIDATE_CONFIG_BLOCK ovladači miniportu VF. V požadavku OID se předá NDIS_SRIOV_VF_INVALIDATE_CONFIG_BLOCK_INFO. Tato struktura obsahuje data parametrů BlockMask v mezipaměti.
NDIS také vydává další IOCTL_VPCI_INVALIDATE_BLOCK žádost o zpracování následných oznámení o změnách konfiguračních dat VF.
Když ovladač VF zpracuje požadavek OID_SRIOV_VF_INVALIDATE_CONFIG_BLOCK, načte data ze zadaných bloků konfigurace VF.
Další informace o komunikaci backchannel v rámci rozhraní jedno kořenové virtualizace vstupně-výstupních operací (SR-IOV) naleznete v tématu SR-IOV PF/VF Backchannel Communication.
Návratové stavové kódy
Ovladač miniportu vrátí jeden z následujících stavových kódů pro požadavek metody OID OID_SRIOV_VF_INVALIDATE_CONFIG_BLOCK.
Stavový kód | Popis |
---|---|
NDIS_STATUS_SUCCESS |
Požadavek OID byl úspěšně dokončen. |
NDIS_STATUS_NOT_SUPPORTED |
Ovladač miniportu buď nepodporuje rozhraní jedno kořenové virtualizace vstupně-výstupních operací (SR-IOV), nebo není povoleno používat rozhraní. |
NDIS_STATUS_INVALID_PARAMETER |
Nejméně jeden člen struktury NDIS_SRIOV_VF_INVALIDATE_CONFIG_BLOCK_INFO má neplatné hodnoty. |
NDIS_STATUS_INVALID_LENGTH |
Informační vyrovnávací paměť byla příliš krátká. Rozhraní NDIS nastaví DATA. SET_INFORMATION. BytesNeeded člen ve struktuře NDIS_OID_REQUEST na velikost struktury NDIS_SRIOV_VF_INVALIDATE_CONFIG_BLOCK_INFO. |
NDIS_STATUS_FAILURE |
Žádost se nezdařila z jiných důvodů. |
Požadavky
Verze |
Podporováno v NDIS 6.30 a novějších verzích. |
Záhlaví |
Ntddndis.h (včetně Ndis.h) |
Viz také
NDIS_SRIOV_VF_INVALIDATE_CONFIG_BLOCK_INFO