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)

Weitere Informationen


NDIS_OID_REQUEST

NDIS_SRIOV_WRITE_VF_CONFIG_BLOCK_PARAMETERS

OID_NIC_SWITCH_ALLOCATE_VF

OID_SRIOV_READ_VF_CONFIG_SPACE