OID_SRIOV_WRITE_VF_CONFIG_BLOCK
Ein übermäßiger Treiber gibt eine OID-Set-Anforderung (Object Identifier) von OID_SRIOV_WRITE_VF_CONFIG_BLOCK aus, um Daten in einen VF-Konfigurationsblock (PCI Express) (PCIe) 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_BLOCK_PARAMETERS Struktur, die den Offset in Byteeinheiten vom Anfang dieser Struktur bis zu einem Speicherort innerhalb des Puffers enthält, der die Daten enthält, die in den VF-Konfigurationsblock geschrieben werden.
Zusätzlicher Pufferspeicherplatz für die Daten, die in den angegebenen VF-Konfigurationsblock geschrieben werden sollen.
Bemerkungen
Ein VF-Konfigurationsblock wird für die Backchannelkommunikation zwischen den PF- und VF-Miniporttreibern verwendet. Der IHV kann einen oder mehrere VF-Konfigurationsblöcke für die Miniporttreiber definieren. Jeder VF-Konfigurationsblock hat ein IHV-definiertes Format, eine länge und eine Block-ID.
Hinweis Daten aus jedem VF-Konfigurationsblock werden nur von den PF- und VF-Miniporttreibern verwendet.
Bevor die OID-Set-Anforderung von OID_SRIOV_WRITE_VF_CONFIG_BLOCK ausgibt, muss der überlastende Treiber die Member der NDIS_SRIOV_WRITE_VF_CONFIG_BLOCK_PARAMETERS-Struktur wie folgt festlegen:
Legen Sie das VFId-Element auf den Bezeichner des VF fest, für den die Informationen geschrieben werden sollen.
Legen Sie den BlockId-Member auf den Bezeichner des Konfigurationsblocks fest, aus dem die Informationen geschrieben werden sollen.
Legen Sie den Length-Member auf die Anzahl der Bytes fest, die in den VF-Konfigurationsblock geschrieben werden sollen.
Legen Sie den BufferOffset-Member auf den Offset innerhalb des Puffers fest (auf den vom InformationBuffer-Member verwiesen wird), der die Daten enthält, die aus dem angegebenen VF-Konfigurationsblock geschrieben werden sollen. Dieser Offset wird vom Anfang der NDIS_SRIOV_WRITE_VF_CONFIG_BLOCK_PARAMETERS-Struktur in Byteeinheiten angegeben.
Wenn er die OID-Set-Anforderung von OID_SRIOV_WRITE_VF_CONFIG_BLOCK verarbeitet, 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_BLOCK_PARAMETERS-Struktur angegeben wird, über zuvor zugeordnete Ressourcen verfügt. Der PF-Miniporttreiber ordnet Ressourcen für eine VF während einer 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 muss überprüfen, ob der BlockId-Member der NDIS_SRIOV_WRITE_VF_CONFIG_BLOCK_PARAMETERS-Struktur einen gültigen VF-Konfigurationsblock angibt. Andernfalls muss der Treiber die OID-Anforderung nicht ausführen.
Weitere Informationen zur Backchannelkommunikation innerhalb der SR-IOV-Schnittstelle (Single Root I/O Virtualization) finden Sie unter SR-IOV PF/VF Backchannel Communication.
Zurückgeben von Statuscodes
Der Miniporttreiber gibt einen der folgenden status Codes für die OID-Set-Anforderung von OID_SRIOV_WRITE_VF_CONFIG_BLOCK 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_WRITE_VF_CONFIG_BLOCK_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) |