Freigeben über


OID_SRIOV_PROBED_BARS

NDIS gibt eine OID-Abfrageanforderung (Object Identifier) von OID_SRIOV_PROBED_BARS aus, um die Werte der PCI Express (PCIe) Base Address Registers (BARs) eines Netzwerkadapters abzurufen. Diese Funktion gibt die BAR-Werte zurück, die vom Netzwerkadapter nach einer Abfrage des PCI-Bustreibers gemeldet wurden. Diese Abfrage bestimmt den Speicher- oder E/A-Adressraum, der vom Netzwerkadapter benötigt wird.

NDIS gibt OID-Abfrageanforderungen von OID_SRIOV_PROBED_BARS an den Miniporttreiber für die PCIe Physical Function (PF) des Netzwerkadapters aus. Diese OID-Abfrageanforderung ist für PF-Miniporttreiber erforderlich, die die einzelne I/O-Virtualisierungsschnittstelle (SR-IOV) unterstützen.

Das InformationBuffer Member der NDIS_OID_REQUEST-Struktur enthält einen Zeiger auf einen Puffer. Dieser Puffer ist so formatiert, dass er Folgendes enthält:

  • Eine NDIS_SRIOV_PROBED_BARS_INFO Struktur, die die Parameter für einen Lesevorgang auf den PCI-BARs eines Netzwerkadapters enthält.

  • Ein Array von ULONG-Werten für jede LEISTE des PCIe-Netzwerkadapters. Die maximale Anzahl von Elementen innerhalb dieses Arrays ist PCI_TYPE0_ADDRESSES.

Bemerkungen

Der PCI-Bustreiber, der im Verwaltungsbetriebssystem der Hyper-V übergeordneten Partition ausgeführt wird, fragt die Speicher- oder E/A-Anforderungen der einzelnen PCI Base Address Register (BAR) des Netzwerkadapters ab. Der PCI-Bustreiber führt diese Abfrage aus, wenn er zuerst den Adapter auf dem Bus erkennt.

Durch diese PCI BAR-Abfrage bestimmt der PCI-Bustreiber Folgendes:

  • Gibt an, ob eine PCI-LEISTE vom Netzwerkadapter unterstützt wird.

  • Wenn eine LEISTE unterstützt wird, wie viel Arbeitsspeicher oder E/A-Adressraum für die LEISTE erforderlich ist.

Der virtuelle PCI-Bustreiber (CHILDI) wird im Gastbetriebssystem einer Hyper-V untergeordneten Partition ausgeführt. Wenn eine VIRTUELLE PCI Express (PCIe) Virtual Function (VF) an die untergeordnete Partition angeschlossen ist, macht der BUStreiber DES SERVERSI einen virtuellen Netzwerkadapter für den VF (VF-Netzwerkadapter) verfügbar. Bevor dies geschieht, muss der ASSEMBLYI-Bustreiber eine PCI BAR-Abfrage ausführen, um den erforderlichen Arbeitsspeicher oder Adressraum zu ermitteln, der vom VF-Netzwerkadapter benötigt wird.

Da der Zugriff auf den PCI-Konfigurationsraum ein privilegierter Vorgang ist, kann er nur von Komponenten ausgeführt werden, die im Verwaltungsbetriebssystem einer Hyper-V übergeordneten Partition ausgeführt werden. Wenn der BUStreiber DER PCI BARs abfragt, gibt NDIS eine OID-Abfrageanforderung von OID_SRIOV_PROBED_BARS an den PF Miniport-Treiber aus. Die ergebnisse, die von dieser OID-Abfrageanforderung zurückgegeben werden, werden an den BUStreiber ZUR VERFÜGUNG gestellt, damit sie bestimmen kann, wie viel Speicherplatz vom VF-Netzwerkadapter benötigt wird.

Hinweis OID-Anforderungen von OID_SRIOV_PROBED_BARS nur von NDIS ausgestellt werden können. Die OID-Anforderung darf nicht von übermäßigen Treibern ausgegeben werden, z. B. protokollieren von Filtertreibern.

Die OID_SRIOV_PROBED_BARS Abfrageanforderung enthält eine NDIS_SRIOV_PROBED_BARS_INFO Struktur. Wenn der PF-Miniport-Treiber dieses OID verarbeitet, muss der Treiber die PCI BAR-Werte innerhalb des Arrays zurückgeben, auf das vom BaseRegisterValuesOffset Member der NDIS_SRIOV_PROBED_BARS_INFO-Struktur verwiesen wird. Für jeden Offset innerhalb des Arrays muss der PF-Miniporttreiber das Arrayelement auf den ULONG-Wert des BAR-Werts im gleichen Offset im PCI-Konfigurationsraum des physischen Adapters festlegen.

Jeder vom Treiber zurückgegebene BAR-Wert muss derselbe Wert sein, der einer PCI-BAR-Abfrage folgen würde, wie vom PCI-Treiber ausgeführt, der im Verwaltungsbetriebssystem ausgeführt wird. Der PF-Miniporttreiber kann NdisMQueryProbedBars- aufrufen, um diese Informationen zu ermitteln.

Weitere Informationen zu den BARs eines PCI-Geräts finden Sie in der PCI Local Bus Specification.

Weitere Informationen zum Abfragen von PCI BAR-Registern für einen VF finden Sie im Abfragen der PCI-Basisadressenregister einer virtual Function.

Rückgabestatuscodes

Der PF-Miniport-Treiber gibt einen der folgenden Statuscodes für die Abfrageanforderung von OID_SRIOV_PROBED_BARS zurück:

Statuscode Beschreibung

NDIS_STATUS_SUCCESS

Die OID-Anforderung wurde erfolgreich abgeschlossen.

NDIS_STATUS_NOT_SUPPORTED

Der PF-Miniporttreiber unterstützt weder die einzelne I/O-Virtualisierungsschnittstelle (SR-IOV) noch ist die Verwendung der Schnittstelle aktiviert.

NDIS_STATUS_INVALID_PARAMETER

Mindestens ein Element der NDIS_SRIOV_PROBED_BARS_INFO-Struktur hat ungültige Werte.

NDIS_STATUS_INVALID_LENGTH

Der Informationspuffer ist kleiner als (Größe(NDIS_SRIOV_PROBED_BARS_INFO) + PCI_TYPE0_ADDRESSES). Der PF-Miniporttreiber muss die DATA festlegen. QUERY_INFORMATION. BytesNeededed Member in der NDIS_OID_REQUEST Struktur auf die erforderliche Mindestpuffergröße.

NDIS_STATUS_FAILURE

Fehler bei der Anforderung aus anderen Gründen.

Anforderungen

Version

Unterstützt in NDIS 6.30 und höher.

Kopfball

Ntddndis.h (include Ndis.h)

Siehe auch


NDIS_OID_REQUEST

NDIS_SRIOV_PROBED_BARS_INFO

NdisMQueryProbedBars