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
NDIS_SRIOV_WRITE_VF_CONFIG_SPACE_PARAMETERS
NdisMSetVirtualFunctionBusData