Sdílet prostřednictvím


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:

  1. 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.

  2. V operačním systému pro správu dochází k následujícím krokům:

    1. 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.

    2. 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.

    3. 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.

  3. V hostovaném operačním systému dochází k následujícím krokům:

    1. 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.

    2. 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.

    3. 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é


IOCTL_VPCI_INVALIDATE_BLOCK

NDIS_OID_REQUEST

NDIS_SRIOV_VF_INVALIDATE_CONFIG_BLOCK_INFO

NdisMInvalidateConfigBlock

OID_SRIOV_READ_VF_CONFIG_SPACE

VPCI_INVALIDATE_BLOCK_OUTPUT