OID_SRIOV_PROBED_BARS
NDIS utfärdar en OID-frågebegäran (object identifier) för OID_SRIOV_PROBED_BARS för att hämta värdena för ett nätverkskorts PCI Express-basadressregister (PCIe). Den här funktionen returnerar de BAR-värden som rapporterades av nätverkskortet efter en fråga som utförs av PCI-bussdrivrutinen. Den här frågan avgör det minnes- eller I/O-adressutrymme som krävs av nätverkskortet.
NDIS utfärdar OID-frågebegäranden för OID_SRIOV_PROBED_BARS till miniportdrivrutinen för nätverkskortets PCIe Physical Function (PF). Den här OID-frågebegäran krävs för PF-miniportdrivrutiner som stöder det enkla rot-I/O-virtualiseringsgränssnittet (SR-IOV).
InformationBuffer medlem i NDIS_OID_REQUEST-strukturen innehåller en pekare till en buffert. Den här bufferten är formaterad så att den innehåller följande:
En NDIS_SRIOV_PROBED_BARS_INFO struktur som innehåller parametrarna för en läsåtgärd på PCI BAR för ett nätverkskort.
En matris med ULONG-värden för varje BAR i PCIe-nätverkskortet. Det maximala antalet element i den här matrisen är PCI_TYPE0_ADDRESSES.
Anmärkningar
PCI-bussdrivrutinen, som körs i hanteringsoperativsystemet för den Hyper-V överordnade partitionen, frågar efter kraven på minne eller I/O-adressutrymme för varje PCI-basadressregister (BAR) för nätverkskortet. PCI-bussdrivrutinen utför den här frågan när den först identifierar adaptern på bussen.
I den här PCI BAR-frågan avgör PCI-bussdrivrutinen följande:
Om en PCI BAR stöds av nätverkskortet.
Om en BAR stöds, hur mycket minne eller I/O-adressutrymme som krävs för FÄLTET.
Den virtuella PCI-bussdrivrutinen (VPCI) körs i gästoperativsystemet för en Hyper-V underordnad partition. När en virtuell PCI Express-funktion (PCIe) (VF) är ansluten till den underordnade partitionen exponerar VPCI-bussdrivrutinen ett virtuellt nätverkskort för VF (VF-nätverkskort). Innan den gör detta måste VPCI-bussdrivrutinen utföra en PCI BAR-fråga för att fastställa det minne eller adressutrymme som krävs av VF-nätverkskortet.
Eftersom åtkomst till PCI-konfigurationsutrymmet är en privilegierad åtgärd kan den bara utföras av komponenter som körs i hanteringsoperativsystemet för en Hyper-V överordnad partition. När VPCI-bussdrivrutinen frågar PCI BARs utfärdar NDIS en OID-frågebegäran om OID_SRIOV_PROBED_BARS till PF-miniportdrivrutinen. Resultaten som returneras av den här OID-frågebegäran vidarebefordras till VPCI-bussdrivrutinen så att den kan avgöra hur mycket minnesadressutrymme som skulle behövas av VF-nätverkskortet.
Obs OID-begäranden för OID_SRIOV_PROBED_BARS kan endast utfärdas av NDIS. OID-begäran får inte utfärdas av överdrivande drivrutiner, till exempel protokoll för filterdrivrutiner.
Den OID_SRIOV_PROBED_BARS frågebegäran innehåller en NDIS_SRIOV_PROBED_BARS_INFO struktur. När PF-miniportdrivrutinen hanterar denna OID måste drivrutinen returnera PCI BAR-värdena i matrisen som refereras av BaseRegisterValuesOffset medlem i NDIS_SRIOV_PROBED_BARS_INFO-strukturen. För varje förskjutning i matrisen måste PF-miniportdrivrutinen ange matriselementet till ULONG-värdet för FÄLTET vid samma förskjutning i det fysiska adapterns PCI-konfigurationsutrymme.
Varje BAR-värde som returneras av drivrutinen måste vara samma värde som skulle följa en PCI BAR-fråga som utförs av PCI-drivrutinen som körs i hanteringsoperativsystemet. PF-miniportdrivrutinen kan anropa NdisMQueryProbedBars för att fastställa den här informationen.
Mer information om BAR för en PCI-enhet finns i PCI Local Bus Specification.
Mer information om hur du kör frågor mot PCI BAR-register för en VF finns i Querying the PCI Base Address Registers of a Virtual Function.
Returstatuskoder
PF-miniportdrivrutinen returnerar någon av följande statuskoder för frågebegäran för OID_SRIOV_PROBED_BARS:
Statuskod | Beskrivning |
---|---|
NDIS_STATUS_SUCCESS |
OID-begäran har slutförts. |
NDIS_STATUS_NOT_SUPPORTED |
PF-miniportdrivrutinen stöder antingen inte det enskilda rot-I/O-virtualiseringsgränssnittet (SR-IOV) eller så är den inte aktiverad för att använda gränssnittet. |
NDIS_STATUS_INVALID_PARAMETER |
En eller flera av medlemmarna i NDIS_SRIOV_PROBED_BARS_INFO struktur har ogiltiga värden. |
NDIS_STATUS_INVALID_LENGTH |
Informationsbufferten är mindre än (sizeof(NDIS_SRIOV_PROBED_BARS_INFO) + PCI_TYPE0_ADDRESSES). PF-miniportdrivrutinen måste ange DATA. QUERY_INFORMATION. BytesNeeded medlem i NDIS_OID_REQUEST struktur till den minsta buffertstorlek som krävs. |
NDIS_STATUS_FAILURE |
Begäran misslyckades av andra skäl. |
Krav
Version |
Stöds i NDIS 6.30 och senare. |
Rubrik |
Ntddndis.h (inkludera Ndis.h) |