Freigeben über


NdisMInvalidateConfigBlock-Funktion (ndis.h)

Ein Miniporttreiber ruft die NdisMInvalidateConfigBlock Funktion auf, um NDIS zu benachrichtigen, dass die Daten für mindestens einen VIRTUAL Function (VF)-Konfigurationsblöcke 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ätespeicherort 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 mit dem entsprechenden VF-Konfigurationsblock verknüpften Daten geändert.

Rückgabewert

Nichts

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 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 Hyper-V untergeordneten Partition ausgeführt.
  • Der PF-Treiber, der im Verwaltungsbetriebssystem ausgeführt wird.

    Dieses Betriebssystem wird innerhalb der Hyper-V übergeordneten 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-Kontrollanforderung von 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 treten die folgenden Schritte auf:
    1. Der PF Miniport-Treiber ruft den NdisMInvalidateConfigBlock Funktion auf, um NDIS zu benachrichtigen, dass die VF-Konfigurationsdaten geändert wurden und nicht mehr gültig sind.
    2. NDIS signalisiert den Virtualisierungsstapel, der im Verwaltungsbetriebssystem ausgeführt wird, über die Änderung der VF-Konfigurationsblockdaten. Der Virtualisierungsstapel speichert die BlockMask Parameterdaten zwischen.
      Note Each time that the PF miniport driver calls NdisMInvalidateConfigBlock, the virtualization stack ORs the BlockMask parameter data with the current value in its cache.
       
    3. Der Virtualisierungsstapel benachrichtigt den virtuellen PCI-Treiber (PCII), der im Gastbetriebssystem ausgeführt wird, über die Ungültigkeit von VF-Konfigurationsdaten. Der Virtualisierungsstapel sendet den zwischengespeicherten BlockMask Parameterdaten an den DRIVERI-Treiber.
  3. Im Gastbetriebssystem treten die folgenden Schritte auf:
    1. Der VORGANGStreiber 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 VORGANGstreiber KONNTE die IOCTL_VPCI_INVALIDATE_BLOCK Anforderung erfolgreich abschließen. In diesem Fall gibt 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 zur Behandlung aufeinander folgender Benachrichtigungen von Änderungen an VF-Konfigurationsdaten aus.

    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 Backchannel-Kommunikation innerhalb der einzelnen I/O-Virtualisierungsschnittstelle (SR-IOV) finden Sie unter SR-IOV PF/VF Backchannel Communication.

Weitere Informationen zur SR-IOV-Schnittstelle finden Sie unter Übersicht über die Single Root I/O Virtualization (SR-IOV).

Anforderungen

Anforderung Wert
mindestens unterstützte Client- Keine unterstützt,in NDIS 6.30 und höher unterstützt.
mindestens unterstützte Server- Windows Server 2012
Zielplattform- Universal
Header- ndis.h (include Ndis.h)
Library Ndis.lib
IRQL- <= DISPATCH_LEVEL

Siehe auch

IOCTL_VPCI_INVALIDATE_BLOCK

NDIS_SRIOV_VF_INVALIDATE_CONFIG_BLOCK_INFO

OID_SRIOV_READ_VF_CONFIG_SPACE

VPCI_INVALIDATE_BLOCK_OUTPUT