OID_SRIOV_READ_VF_CONFIG_SPACE
Přílišný ovladač vydá požadavek metody identifikátoru objektu (OID) OID_SRIOV_READ_VF_CONFIG_SPACE ke čtení dat z konfiguračního prostoru PCI Express (PCIe) pro zadanou virtuální funkci PCIe (VF) na síťovém adaptéru.
Po úspěšném vrácení z tohoto požadavku metody OID obsahuje InformationBuffer člen struktury NDIS_OID_REQUEST obsahuje ukazatel na vyrovnávací paměť přidělenou volajícím. Tato vyrovnávací paměť je formátovaná tak, aby obsahovala následující:
Struktura NDIS_SRIOV_READ_VF_CONFIG_SPACE_PARAMETERS, která obsahuje parametry pro operaci čtení konfiguračního prostoru PCI VF.
Další prostor vyrovnávací paměti pro čtení dat z konfiguračního prostoru PCI.
Poznámky
Ovladač miniportu VF běží v hostovaném operačním systému podřízeného oddílu Hyper-V. Z tohoto důvodu ovladač miniportu VF nemůže přímo přistupovat k hardwarovým prostředkům, jako je konfigurační prostor PCI VF. K konfiguračnímu prostoru PCI pro VF má přístup pouze ovladač miniportu fyzické funkce PCIe (PF). Ovladač miniportu PF běží v operačním systému správy nadřazeného oddílu Hyper-V a má privilegovaný přístup k prostředkům VF.
Aby bylo možné přečíst konfigurační prostor VF PCI, nadlimitní ovladače, které běží v operačním systému pro správu, vydávají požadavek metody OID OID_SRIOV_READ_VF_CONFIG_SPACE ovladači PF miniport. Tento požadavek na metodu OID je vyžadován pro ovladače miniportu PF, které podporují rozhraní jedno kořenové virtualizace vstupně-výstupních operací (SR-IOV).
Například zásobník virtualizace, který běží v operačním systému pro správu, vydává požadavek metody OID OID_SRIOV_READ_VF_CONFIG_SPACE, když ovladač miniportu VF volá NdisMGetBusData číst ze svého konfiguračního prostoru VF PCI.
Při zpracování žádosti o metodu OID OID_SRIOV_READ_VF_CONFIG_SPACE musí ovladač miniportu PF postupovat podle těchto pokynů:
Ovladač miniportu musí ověřit, že virtuální počítač zadaný VFId člen struktury NDIS_SRIOV_READ_VF_CONFIG_SPACE_PARAMETERS má prostředky, které byly dříve přiděleny. Ovladač miniportu přiděluje prostředky pro VF prostřednictvím požadavku metody OID OID_NIC_SWITCH_ALLOCATE_VF. Pokud nebyly přiděleny prostředky pro zadaný VF, ovladač musí požadavek OID selhat.
Ovladač miniportu musí ověřit, že vyrovnávací paměť (odkazovaná InformationBuffer člen struktury NDIS_OID_REQUEST) je dostatečně velká, aby vrátila požadovaná data konfiguračního prostoru PCIe. Pokud to není pravda, ovladač musí požadavek OID selhat.
Ovladač miniportu obvykle volá NdisMGetVirtualFunctionBusData dotazovat požadovaný prostor konfigurace PCIe. Ovladač miniportu ale může také vrátit data konfiguračního prostoru PCIe pro VF, který ovladač ukládá do mezipaměti z předchozích operací čtení nebo zápisu konfiguračního prostoru PCIe.
Poznámka Pokud nezávislý dodavatel hardwaru (IHV) poskytuje ovladač virtuální sběrnice (VBD) jako součást balíčku ovladače SR-IOV , jeho miniport ovladač nesmí volat NdisMGetVirtualFunctionBusData. Místo toho musí ovladač rozhraní s VBD prostřednictvím privátního komunikačního kanálu a požádat, aby volání VBD ReadVfConfigBlock. Tato funkce je vystavena z rozhraní GUID_VPCI_INTERFACE_STANDARD, které je podporováno základním virtuálním ovladačem sběrnice PCI (VPCI).
Pokud ovladač miniportu PF může úspěšně dokončit požadavek OID, ovladač musí zkopírovat požadovaná data prostoru konfigurace PCI do vyrovnávací paměti odkazované InformationBuffer člen struktury NDIS_OID_REQUEST. Ovladač zkopíruje data do vyrovnávací paměti na posunu určeném BufferOffset člen struktury NDIS_SRIOV_READ_VF_CONFIG_SPACE_PARAMETERS.
Další informace najdete v tématu dotazování konfiguračních dat PCI virtuální funkce.
Návratové stavové kódy
Ovladač miniportu PF vrátí jeden z následujících stavových kódů pro požadavek metody OID OID_SRIOV_READ_VF_CONFIG_SPACE.
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_READ_VF_CONFIG_SPACE_PARAMETERS má neplatné hodnoty. |
NDIS_STATUS_INVALID_LENGTH |
Informační vyrovnávací paměť byla příliš krátká. Ovladač miniportu musí nastavit DATA. METHOD_INFORMATION. BytesNeeded člen ve struktuře NDIS_OID_REQUEST na minimální požadovanou velikost vyrovnávací paměti. |
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_READ_VF_CONFIG_SPACE_PARAMETERS