Funzione NdisMInvalidateConfigBlock (ndis.h)

Un driver miniport chiama la funzione NdisMInvalidateConfigBlock per notificare a NDIS che i dati per uno o più blocchi di configurazione della funzione virtuale (VF) sono stati modificati.

NotaNdisMInvalidateConfigBlock deve essere chiamato solo dal driver miniport per la funzione fisica PCIe (PF).
 

Sintassi

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

Parametri

[in] NdisMiniportHandle

L'handle della scheda di rete passato al parametro MiniportAdapterHandle di MiniportInitializeEx.

[in] VFId

Identificatore del VF per il quale viene restituita la posizione del dispositivo.

[in] BlockMask

Valore ULONGLONG che specifica una maschera di bit per i primi 64 blocchi di configurazione VF. Ogni bit nella maschera di bit corrisponde a un blocco di configurazione VF. Se il bit è impostato su uno, i dati associati al blocco di configurazione VF corrispondente sono stati modificati.

Valore restituito

nessuno

Osservazioni

Un blocco di configurazione VF viene usato per la comunicazione backchannel tra i driver PF e miniport VF. L'IHV può definire uno o più blocchi di configurazione VF per il dispositivo. Ogni blocco di configurazione VF ha un formato, una lunghezza e un ID blocco definiti dall'IHV.

Nota I dati di ogni blocco di configurazione VF vengono usati solo dai driver PF e miniport VF.
 
I dati di configurazione VF vengono scambiati tra i driver seguenti:
  • Driver VF, che viene eseguito nel sistema operativo guest. Questo sistema operativo viene eseguito all'interno di una partizione figlio Hyper-V.
  • Driver PF, che viene eseguito nel sistema operativo di gestione.

    Questo sistema operativo viene eseguito all'interno della partizione padre Hyper-V.

Per gestire le notifiche dei dati di configurazione VF non validi, NDIS e i driver miniport seguire questa procedura:
  1. Nel sistema operativo guest NDIS genera una richiesta di controllo I/O di IOCTL_VPCI_INVALIDATE_BLOCK richiesta. Al termine di questo IOCTL, NDIS riceve una notifica che i dati di configurazione di VF sono stati modificati.
  2. Nel sistema operativo di gestione si verificano i passaggi seguenti:
    1. Il driver miniport PF chiama la funzione NdisMInvalidateConfigBlock per notificare a NDIS che i dati di configurazione VF sono stati modificati e non sono più validi.
    2. NDIS segnala lo stack di virtualizzazione, che viene eseguito nel sistema operativo di gestione, sulla modifica ai dati del blocco di configurazione VF. Lo stack di virtualizzazione memorizza nella cache i dati dei parametri BlockMask .
      Nota Ogni volta che il driver PF miniport chiama NdisMInvalidateConfigBlock, lo stack di virtualizzazione ORs i dati dei parametri BlockMask con il valore corrente nella cache.
       
    3. Lo stack di virtualizzazione notifica al driver PCI virtuale (VPCI), che viene eseguito nel sistema operativo guest, sull'invalidazione dei dati di configurazione VF. Lo stack di virtualizzazione invia i dati dei parametri BlockMask memorizzati nella cache al driver VPCI.
  3. Nel sistema operativo guest si verificano i passaggi seguenti:
    1. Il driver VPCI salva i dati dei parametri BlockMask memorizzati nella cache nel membro BlockMask della struttura VPCI_INVALIDATE_BLOCK_OUTPUT associata alla richiesta di IOCTL_VPCI_INVALIDATE_BLOCK .
    2. Il driver VPCI completa correttamente la richiesta di IOCTL_VPCI_INVALIDATE_BLOCK . In questo caso, NDIS genera una richiesta di metodo OID di OID_SRIOV_VF_INVALIDATE_CONFIG_BLOCK al driver miniport VF. Una richiesta di NDIS_SRIOV_VF_INVALIDATE_CONFIG_BLOCK_INFO viene passata lungo la richiesta OID. Questa struttura contiene i dati dei parametri BlockMask memorizzati nella cache.

      NDIS genera anche un'altra richiesta di IOCTL_VPCI_INVALIDATE_BLOCK per gestire le notifiche successive delle modifiche ai dati di configurazione VF.

    3. Quando il driver VF gestisce la richiesta di OID_SRIOV_VF_INVALIDATE_CONFIG_BLOCK , legge i dati dai blocchi di configurazione VF specificati.
Per altre informazioni sulla comunicazione backchannel all'interno dell'interfaccia di virtualizzazione I/O radice singola ( SR-IOV), vedere SR-IOV PF/VF Backchannel Communication.

Per altre informazioni sull'interfaccia SR-IOV, vedere Panoramica di Single Root I/O Virtualization (SR-IOV).

Requisiti

Requisito Valore
Client minimo supportato Nessuna supportata, supportata in NDIS 6.30 e versioni successive.
Server minimo supportato Windows Server 2012
Piattaforma di destinazione Universale
Intestazione ndis.h (includere Ndis.h)
Libreria Ndis.lib
IRQL <= DISPATCH_LEVEL

Vedi anche

IOCTL_VPCI_INVALIDATE_BLOCK

NDIS_SRIOV_VF_INVALIDATE_CONFIG_BLOCK_INFO

OID_SRIOV_READ_VF_CONFIG_SPACE

VPCI_INVALIDATE_BLOCK_OUTPUT