Share via


OID_SRIOV_READ_VF_CONFIG_SPACE

Ein übersteigender Treiber gibt eine OID-Methodenanforderung (Object Identifier) von OID_SRIOV_READ_VF_CONFIG_SPACE aus, um Daten aus dem PCI Express -Konfigurationsbereich (PCIe) für eine angegebene virtuelle PCIe-Funktion (VF) auf dem Netzwerkadapter zu lesen.

Nach einer erfolgreichen Rückgabe von dieser OID-Methodenanforderung enthält der InformationBuffer-Member der NDIS_OID_REQUEST-Struktur einen Zeiger auf einen vom Aufrufer zugewiesenen Puffer. Dieser Puffer ist so formatiert, dass er Folgendes enthält:

  • Eine NDIS_SRIOV_READ_VF_CONFIG_SPACE_PARAMETERS Struktur, die die Parameter für einen Lesevorgang des PCI-Konfigurationsraums eines VF enthält.

  • Zusätzlicher Pufferspeicherplatz für die Daten, die aus dem PCI-Konfigurationsbereich gelesen werden sollen.

Bemerkungen

Der VF-Miniporttreiber wird im Gastbetriebssystem einer untergeordneten Hyper-V-Partition ausgeführt. Aus diesem Fall kann der VF-Miniporttreiber nicht direkt auf Hardwareressourcen zugreifen, z. B. auf den PCI-Konfigurationsraum des VF. Nur der Miniporttreiber für die physische PCIe-Funktion (PF) kann auf den PCI-Konfigurationsraum für eine VF zugreifen. Der PF-Miniporttreiber wird im Verwaltungsbetriebssystem einer übergeordneten Hyper-V-Partition ausgeführt und hat privilegierten Zugriff auf die VF-Ressourcen.

Um den VF PCI-Konfigurationsraum zu lesen, geben überlastende Treiber, die im Verwaltungsbetriebssystem ausgeführt werden, die OID-Methodenanforderung von OID_SRIOV_READ_VF_CONFIG_SPACE an den PF-Miniporttreiber aus. Diese Anforderung der OID-Methode ist für PF-Miniporttreiber erforderlich, die die SR-IOV-Schnittstelle (Single Root I/O Virtualization) unterstützen.

Beispielsweise gibt der Virtualisierungsstapel, der im Verwaltungsbetriebssystem ausgeführt wird, die OID-Methodenanforderung von OID_SRIOV_READ_VF_CONFIG_SPACE aus, wenn der VF-Miniporttreiber NdisMGetBusData aufruft , um aus seinem VF-PCI-Konfigurationsbereich zu lesen.

Wenn er die OID-Methodenanforderung von OID_SRIOV_READ_VF_CONFIG_SPACE verarbeitet, muss der PF-Miniporttreiber die folgenden Richtlinien befolgen:

  • Der Miniporttreiber muss überprüfen, ob der VF, der vom VFId-Member der NDIS_SRIOV_READ_VF_CONFIG_SPACE_PARAMETERS-Struktur angegeben wird, ressourcen enthält, die zuvor zugeordnet wurden. Der Miniporttreiber ordnet Ressourcen für eine VF über eine OID-Methodenanforderung von OID_NIC_SWITCH_ALLOCATE_VF zu. Wenn Ressourcen für den angegebenen VF nicht zugeordnet wurden, muss der Treiber die OID-Anforderung nicht ausführen.

  • Der Miniporttreiber muss überprüfen, ob der Puffer (auf den der InformationBuffer-Member der NDIS_OID_REQUEST-Struktur verweist) groß genug ist, um die angeforderten PCIe-Konfigurationsspeicherdaten zurückzugeben. Wenn dies nicht der Fall ist, muss der Treiber die OID-Anforderung nicht ausführen.

  • Der Miniporttreiber ruft in der Regel NdisMGetVirtualFunctionBusData auf, um den angeforderten PCIe-Konfigurationsbereich abzufragen. Der Miniporttreiber kann jedoch auch PCIe-Konfigurationsspeicherdaten für den VF zurückgeben, die der Treiber aus vorherigen Lese- oder Schreibvorgängen des PCIe-Konfigurationsbereichs zwischengespeichert hat.

    Hinweis Wenn ein unabhängiger Hardwareanbieter (IHV) einen virtuellen Bustreiber (VBD) als Teil seines SR-IOV-Treiberpakets bereitstellt, darf sein Miniporttreiber NdisMGetVirtualFunctionBusData nicht aufrufen. Stattdessen muss der Treiber über einen privaten Kommunikationskanal mit dem VBD kommunizieren und anfordern, dass der VBD ReadVfConfigBlock aufruft. Diese Funktion wird über die GUID_VPCI_INTERFACE_STANDARD-Schnittstelle verfügbar gemacht, die vom zugrunde liegenden VPCI-Bustreiber (Virtual PCI) unterstützt wird.

Wenn der PF-Miniporttreiber die OID-Anforderung erfolgreich abschließen kann, muss der Treiber die angeforderten PCI-Konfigurationsspeicherdaten in den Puffer kopieren, auf den der InformationBuffer-Member der NDIS_OID_REQUEST-Struktur verweist. Der Treiber kopiert die Daten in den Puffer an dem Offset, der vom BufferOffset-ElementNDIS_SRIOV_READ_VF_CONFIG_SPACE_PARAMETERS-Struktur angegeben wird.

Weitere Informationen finden Sie unter Abfragen der PCI-Konfigurationsdaten einer virtuellen Funktion.

Zurückgeben von Statuscodes

Der PF-Miniporttreiber gibt einen der folgenden status Codes für die OID-Methodenanforderung von OID_SRIOV_READ_VF_CONFIG_SPACE zurück.

Statuscode BESCHREIBUNG

NDIS_STATUS_SUCCESS

Die OID-Anforderung wurde erfolgreich abgeschlossen.

NDIS_STATUS_NOT_SUPPORTED

Der Miniporttreiber unterstützt entweder nicht die SR-IOV-Schnittstelle (Single Root I/O Virtualization) oder ist nicht für die Verwendung der Schnittstelle aktiviert.

NDIS_STATUS_INVALID_PARAMETER

Mindestens ein Member der NDIS_SRIOV_READ_VF_CONFIG_SPACE_PARAMETERS-Struktur hat ungültige Werte.

NDIS_STATUS_INVALID_LENGTH

Der Informationspuffer war zu kurz. Der Miniporttreiber muss die DATEN festlegen. METHOD_INFORMATION. BytesNeeded-Member in der NDIS_OID_REQUEST Struktur auf die erforderliche Mindestpuffergröße.

NDIS_STATUS_FAILURE

Die Anforderung ist aus anderen Gründen fehlgeschlagen.

Requirements (Anforderungen)

Version

Unterstützt in NDIS 6.30 und höher.

Header

Ntddndis.h (include Ndis.h)

Weitere Informationen


GUID_VPCI_INTERFACE_STANDARD

NDIS_OID_REQUEST

NDIS_SRIOV_READ_VF_CONFIG_SPACE_PARAMETERS

NdisMGetBusData

NdisMGetVirtualFunctionBusData

OID_NIC_SWITCH_ALLOCATE_VF

ReadVfConfigBlock