OID_SRIOV_VF_INVALIDATE_CONFIG_BLOCK
NDIS gibt eine OID-Methodenanforderung (Object Identifier) von OID_SRIOV_VF_INVALIDATE_CONFIG_BLOCK aus, um den Miniporttreiber über eine PCI Express (PCIe) Virtual Function (VF) zu benachrichtigen, dass sich Daten in einem oder mehreren Konfigurationsblöcken geändert haben. NDIS gibt diese OID aus, wenn der Miniporttreiber für eine PHYSISCHE PCIe-Funktion (PF) NdisMInvalidateConfigBlock aufruft.
Das InformationBuffer-Element der NDIS_OID_REQUEST-Struktur enthält einen Zeiger auf eine NDIS_SRIOV_VF_INVALIDATE_CONFIG_BLOCK_INFO-Struktur . Diese Struktur gibt einen oder mehrere VF-Konfigurationsblöcke (Virtual Function) an, deren Daten vom PF-Miniporttreiber geändert (ungültig) wurden.
Bemerkungen
Ein VF-Konfigurationsblock wird für die Backchannelkommunikation zwischen den PF- und VF-Miniporttreibern verwendet. Die IHV kann einen oder mehrere VF-Konfigurationsblöcke für das Gerät 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.
VF-Konfigurationsdaten werden zwischen den folgenden Treibern ausgetauscht:
Der VF-Treiber, der im Gastbetriebssystem ausgeführt wird. Dieses Betriebssystem wird in einer untergeordneten Hyper-V-Partition ausgeführt.
Der PF-Treiber, der im Verwaltungsbetriebssystem ausgeführt wird. Dieses Betriebssystem wird innerhalb der übergeordneten Hyper-V-Partition ausgeführt.
Um Benachrichtigungen über ungültige VF-Konfigurationsdaten zu verarbeiten, führen NDIS und die Miniporttreiber die folgenden Schritte aus:
Im Gastbetriebssystem gibt NDIS eine E/A-Steuerungsanforderung von IOCTL_VPCI_INVALIDATE_BLOCK-Anforderung aus. Wenn diese IOCTL abgeschlossen ist, wird NDIS benachrichtigt, dass sich die VF-Konfigurationsdaten geändert haben.
Im Verwaltungsbetriebssystem werden die folgenden Schritte ausgeführt:
Der PF-Miniporttreiber ruft die NdisMInvalidateConfigBlock-Funktion auf, um NDIS zu benachrichtigen, dass SICH DIE VF-Konfigurationsdaten geändert haben und nicht mehr gültig sind. Der Treiber legt den BlockMask-Parameter auf eine ULONGLONGLONG-Bitmaske fest, die angibt, welche VF-Konfigurationsblöcke geändert wurden. Jedes Bit in der Bitmaske entspricht einem VF-Konfigurationsblock. Wenn das Bit auf eins festgelegt ist, haben sich die Daten im entsprechenden VF-Konfigurationsblock geändert.
NDIS signalisiert dem Virtualisierungsstapel, der im Verwaltungsbetriebssystem ausgeführt wird, die Änderung an VF-Konfigurationsblockdaten. Der Virtualisierungsstapel speichert die BlockMask-Parameterdaten zwischen.
Hinweis Jedes Mal, wenn der PF-Miniporttreiber NdisMInvalidateConfigBlock aufruft, verwendet der Virtualisierungsstapel die BlockMask-Parameterdaten mit dem aktuellen Wert im Cache.
Der Virtualisierungsstapel benachrichtigt den virtuellen PCI-Treiber (VPCI), der im Gastbetriebssystem ausgeführt wird, über die Ungültigkeit von VF-Konfigurationsdaten. Der Virtualisierungsstapel sendet die zwischengespeicherten BlockMask-Parameterdaten an den VPCI-Treiber.
Im Gastbetriebssystem werden die folgenden Schritte ausgeführt:
Der VPCI-Treiber speichert die zwischengespeicherten BlockMask-Parameterdaten im BlockMask-Member der VPCI_INVALIDATE_BLOCK_OUTPUT-Struktur , die der IOCTL_VPCI_INVALIDATE_BLOCK-Anforderung zugeordnet ist.
Der VPCI-Treiber schließt die IOCTL_VPCI_INVALIDATE_BLOCK Anforderung erfolgreich ab. In diesem Fall gibt NDIS eine OID-Methodenanforderung von OID_SRIOV_VF_INVALIDATE_CONFIG_BLOCK an den VF-Miniporttreiber aus. In der OID-Anforderung wird ein NDIS_SRIOV_VF_INVALIDATE_CONFIG_BLOCK_INFO übergeben. Diese Struktur enthält die zwischengespeicherten BlockMask-Parameterdaten .
NDIS stellt außerdem eine weitere IOCTL_VPCI_INVALIDATE_BLOCK-Anforderung zur Verarbeitung aufeinander folgender Benachrichtigungen über Änderungen an VF-Konfigurationsdaten.
Wenn der VF-Treiber die OID_SRIOV_VF_INVALIDATE_CONFIG_BLOCK-Anforderung verarbeitet, liest er Daten aus den angegebenen VF-Konfigurationsblöcken.
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-Methodenanforderung von OID_SRIOV_VF_INVALIDATE_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_VF_INVALIDATE_CONFIG_BLOCK_INFO-Struktur hat ungültige Werte. |
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 Größe der NDIS_SRIOV_VF_INVALIDATE_CONFIG_BLOCK_INFO-Struktur . |
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_VF_INVALIDATE_CONFIG_BLOCK_INFO