NdisMInvalidateConfigBlock-Funktion (ndis.h)

Ein Miniporttreiber ruft die NdisMInvalidateConfigBlock-Funktion auf, um NDIS darüber zu informieren, dass die Daten für einen oder mehrere Vf-Konfigurationsblöcke (Virtual Function) geändert wurden.

HinweisNdisMInvalidateConfigBlock darf nur vom Miniporttreiber für die PCIe Physical Function (PF) des Netzwerkadapters aufgerufen werden.
 

Syntax

void NdisMInvalidateConfigBlock(
  [in] NDIS_HANDLE            NdisMiniportHandle,
  [in] NDIS_SRIOV_FUNCTION_ID VFId,
  [in] ULONGLONG              BlockMask
);

Parameter

[in] NdisMiniportHandle

Das Netzwerkadapterhandle, das NDIS an den MiniportAdapterHandle-Parameter von MiniportInitializeEx übergeben hat.

[in] VFId

Der Bezeichner des VF, für den der Gerätestandort zurückgegeben wird.

[in] BlockMask

Ein ULONGLONG-Wert, der eine Bitmaske für die ersten 64 VF-Konfigurationsblöcke angibt. Jedes Bit in der Bitmaske entspricht einem VF-Konfigurationsblock. Wenn das Bit auf eins festgelegt ist, wurden die Daten geändert, die dem entsprechenden VF-Konfigurationsblock zugeordnet sind.

Rückgabewert

Keine

Bemerkungen

Ein VF-Konfigurationsblock wird für die Backchannel-Kommunikation zwischen den PF- und VF-Miniporttreibern verwendet. Der IHV kann einen oder mehrere VF-Konfigurationsblöcke für das Gerät definieren. Jeder VF-Konfigurationsblock verfügt über ein IHV-definiertes Format, eine länge und eine Block-ID.

Hinweis Daten aus den einzelnen VF-Konfigurationsblöcken 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 innerhalb 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:
  1. Im Gastbetriebssystem gibt NDIS eine E/A-Steuerungsanforderung für IOCTL_VPCI_INVALIDATE_BLOCK Anforderung aus. Wenn diese IOCTL abgeschlossen ist, wird NDIS benachrichtigt, dass sich die VF-Konfigurationsdaten geändert haben.
  2. Im Verwaltungsbetriebssystem werden die folgenden Schritte ausgeführt:
    1. Der PF-Miniporttreiber ruft die NdisMInvalidateConfigBlock-Funktion auf, um NDIS zu benachrichtigen, dass vf-Konfigurationsdaten geändert wurden und nicht mehr gültig sind.
    2. NDIS signalisiert dem Virtualisierungsstapel, der im Verwaltungsbetriebssystem ausgeführt wird, über die Änderung der Vf-Konfigurationsblockdaten. Der Virtualisierungsstapel speichert die BlockMask-Parameterdaten zwischen.
      Hinweis Jedes Mal, wenn der PF-Miniporttreiber NdisMInvalidateConfigBlock aufruft, wird der Virtualisierungsstapel die BlockMask-Parameterdaten mit dem aktuellen Wert im Cache übergeben.
       
    3. 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.
  3. Im Gastbetriebssystem werden die folgenden Schritte ausgeführt:
    1. 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.
    2. Der VPCI-Treiber schließt die IOCTL_VPCI_INVALIDATE_BLOCK Anforderung erfolgreich ab. In diesem Fall stellt NDIS eine OID-Methodenanforderung von OID_SRIOV_VF_INVALIDATE_CONFIG_BLOCK an den VF-Miniporttreiber aus. Eine NDIS_SRIOV_VF_INVALIDATE_CONFIG_BLOCK_INFO Anforderung wird in der OID-Anforderung übergeben. Diese Struktur enthält die zwischengespeicherten BlockMask-Parameterdaten .

      NDIS stellt auch eine weitere IOCTL_VPCI_INVALIDATE_BLOCK Anforderung zum Verarbeiten von aufeinanderfolgenden Benachrichtigungen über Änderungen an VF-Konfigurationsdaten.

    3. 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 E/O Virtualization) finden Sie unter SR-IOV PF/VF Backchannel Communication.

Weitere Informationen zur SR-IOV-Schnittstelle finden Sie unter Overview of Single Root E/O Virtualization (SR-IOV).

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Keine unterstützt, wird in NDIS 6.30 und höher unterstützt.
Unterstützte Mindestversion (Server) Windows Server 2012
Zielplattform Universell
Header ndis.h (einschließlich Ndis.h)
Bibliothek Ndis.lib
IRQL <= DISPATCH_LEVEL

Weitere Informationen

IOCTL_VPCI_INVALIDATE_BLOCK

NDIS_SRIOV_VF_INVALIDATE_CONFIG_BLOCK_INFO

OID_SRIOV_READ_VF_CONFIG_SPACE

VPCI_INVALIDATE_BLOCK_OUTPUT