OID_SRIOV_WRITE_VF_CONFIG_SPACE

Ein übersteigender Treiber gibt eine OID-Set-Anforderung (Object Identifier) von OID_SRIOV_WRITE_VF_CONFIG_SPACE aus, um Daten in den PCI Express -Konfigurationsbereich (PCIe) für eine angegebene virtuelle PCIe-Funktion (VF) auf dem Netzwerkadapter zu schreiben.

Überlastende Treiber geben diese OID-Set-Anforderung an den Miniporttreiber für die PCIe Physical Function (PF) des Netzwerkadapters aus. Diese Anforderung der OID-Methode ist für PF-Miniporttreiber erforderlich, die die SR-IOV-Schnittstelle (Single Root I/O Virtualization) unterstützen.

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

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

  • Zusätzlicher Pufferspeicherplatz, der die Daten enthält, die in den PCI-Konfigurationsbereich geschrieben 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 PF-Miniporttreiber, der im Verwaltungsbetriebssystem einer übergeordneten Hyper-V-Partition ausgeführt wird, kann auf den PCI-Konfigurationsbereich für eine VF zugreifen.

Der übergeordnete Treiber, z. B. der Virtualisierungsstapel, gibt die OID-Set-Anforderung von OID_SRIOV_WRITE_VF_CONFIG_SPACE aus, wenn der VF-Miniporttreiber NdisMSetBusData aufruft , um in seinen PCI-Konfigurationsbereich zu schreiben.

Wenn die Anforderung der OID-Methode von OID_SRIOV_WRITE_VF_CONFIG_SPACE verarbeitet wird, muss der PF-Miniporttreiber die folgenden Richtlinien befolgen:

  • Der PF-Miniporttreiber muss überprüfen, ob der VF, der vom VFId-Member der NDIS_SRIOV_WRITE_VF_CONFIG_SPACE_PARAMETERS-Struktur angegeben wird, über zuvor zugeordnete Ressourcen verfügt. Der PF-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 PF-Miniporttreiber ruft NdisMSetVirtualFunctionBusData auf, um in den angeforderten PCI-Konfigurationsbereich zu schreiben. Der PF-Miniporttreiber kann jedoch auch PCI-Konfigurationsspeicherdaten für den VF zurückgeben, die der Treiber aus vorherigen Lese- oder Schreibvorgängen des PCI-Konfigurationsbereichs zwischengespeichert hat.

    Hinweis Wenn ein unabhängiger Hardwareanbieter (IHV) einen virtuellen Bustreiber (VBD) als Teil seines SR-IOV-Treiberpakets bereitstellt, darf der PF-Miniporttreiber NdisMSetVirtualFunctionBusData nicht aufrufen. Stattdessen muss der Treiber über einen privaten Kommunikationskanal mit dem VBD kommunizieren und anfordern, dass der VBD SetVirtualFunctionData 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-Element der NDIS_SRIOV_READ_VF_CONFIG_SPACE_PARAMETERS-Struktur angegeben wird.

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

Zurückgeben von Statuscodes

Der PF-Miniporttreiber gibt einen der folgenden status Codes für die OID-Set-Anforderung von OID_SRIOV_WRITE_VF_CONFIG_SPACE zurück.

Statuscode BESCHREIBUNG

NDIS_STATUS_SUCCESS

Die OID-Anforderung wurde erfolgreich abgeschlossen.

NDIS_STATUS_NOT_SUPPORTED

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

NDIS_STATUS_INVALID_PARAMETER

Mindestens ein Member der NDIS_SRIOV_WRITE_VF_CONFIG_SPACE_PARAMETERS-Struktur weisen ungültige Werte auf.

NDIS_STATUS_INVALID_LENGTH

Der Informationspuffer war zu kurz. NDIS legt die DATEN fest. SET_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_WRITE_VF_CONFIG_SPACE_PARAMETERS

NdisMSetBusData

NdisMSetVirtualFunctionBusData

OID_NIC_SWITCH_ALLOCATE_VF

OID_SRIOV_READ_VF_CONFIG_SPACE

SetVirtualFunctionData