Freigeben über


OID_SRIOV_WRITE_VF_CONFIG_SPACE

Ein übermäßiger Treiber gibt eine OID-Setanforderung (Object Identifier) von OID_SRIOV_WRITE_VF_CONFIG_SPACE aus, um Daten in den PCI Express (PCIe)-Konfigurationsraum für eine angegebene PCIe Virtual Function (VF) auf dem Netzwerkadapter zu schreiben.

Überlying drivers issue this OID set request to the miniport driver for the network adapter's PCIe Physical Function (PF). Diese OID-Methodenanforderung 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 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 Pufferraum, der die daten enthält, die in den PCI-Konfigurationsraum geschrieben werden sollen.

Bemerkungen

Der VF Miniport-Treiber wird im Gastbetriebssystem einer Hyper-V untergeordneten Partition ausgeführt. Aus diesem Gründen kann der VF-Miniporttreiber nicht direkt auf Hardwareressourcen zugreifen, z. B. den PCI-Konfigurationsraum des VF. Nur der PF Miniport-Treiber, der im Verwaltungsbetriebssystem einer Hyper-V übergeordneten Partition ausgeführt wird, kann auf den PCI-Konfigurationsraum für einen VF zugreifen.

Der überlastende Treiber, z. B. der Virtualisierungsstapel, gibt die OID-Setanforderung OID_SRIOV_WRITE_VF_CONFIG_SPACE aus, wenn der VF-Miniporttreiber NdisMSetBusData aufruft, um in den PCI-Konfigurationsraum zu schreiben.

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

  • Der PF-Miniporttreiber muss überprüfen, ob der VFId, der durch die VFId Mitglied der NDIS_SRIOV_WRITE_VF_CONFIG_SPACE_PARAMETERS-Struktur angegeben ist, Ressourcen aufweist, die zuvor zugeordnet wurden. Der PF Miniport-Treiber weist Ressourcen für einen VF über eine OID-Methodenanforderung von OID_NIC_SWITCH_ALLOCATE_VFzu.

    Wenn ressourcen für den angegebenen VF nicht zugeordnet wurden, muss der Treiber die OID-Anforderung nicht ausführen.

  • Der PF Miniport-Treiber ruft NdisMSetVirtualFunctionBusData- auf, um in den angeforderten PCI-Konfigurationsraum zu schreiben. Der PF-Miniporttreiber kann jedoch auch PCI-Konfigurationsraumdaten für den VF zurückgeben, die der Treiber aus vorherigen Lese- oder Schreibvorgängen des PCI-Konfigurationsraums zwischengespeichert hat.

    Hinweis Wenn ein unabhängiger Hardwareanbieter (IHV) einen virtuellen Bustreiber (VBD) als Teil seines SR-IOV Treiberpaketsbereitstellt, darf sein PF-Miniporttreiber nicht NdisMSetVirtualFunctionBusDataaufrufen. Stattdessen muss der Treiber über einen privaten Kommunikationskanal mit dem VBD kommunizieren und anfordern, dass der VBD-Aufruf SetVirtualFunctionData. Diese Funktion wird von der GUID_VPCI_INTERFACE_STANDARD Schnittstelle verfügbar gemacht, die vom zugrunde liegenden VIRTUELLEN PCI-Bustreiber (PCII) unterstützt wird.

Wenn der PF Miniport-Treiber die OID-Anforderung erfolgreich abschließen kann, muss der Treiber die angeforderten PCI-Konfigurationsraumdaten in den Puffer kopieren, auf den vom InformationBuffer Member der NDIS_OID_REQUEST-Struktur verwiesen wird. Der Treiber kopiert die Daten an den Puffer am Offset, der durch BufferOffset Member der NDIS_SRIOV_READ_VF_CONFIG_SPACE_PARAMETERS-Struktur angegeben wird.

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

Rückgabestatuscodes

Der PF Miniport-Treiber gibt einen der folgenden Statuscodes für die OID-Setanforderung 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 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_WRITE_VF_CONFIG_SPACE_PARAMETERS-Struktur hat ungültige Werte.

NDIS_STATUS_INVALID_LENGTH

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


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-