Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
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) |