Dela via


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)

Se även


NDIS_OID_REQUEST

NDIS_SRIOV_PROBED_BARS_INFO

NdisMQueryProbedBars