Condividi tramite


Arresto di un driver MINIPORT PF

In questo argomento vengono illustrati i passaggi necessari per interrompere il driver miniport per una funzione fisica PCI Express (PCIe) in una scheda che supporta la virtualizzazione I/O radice singola (SR-IOV). Questi passaggi sono illustrati nella figura seguente.

Diagramma che mostra il processo di interruzione di un driver PF Miniport, che illustra il flusso di richieste e funzioni tra il driver overlying, NDIS e il driver miniport PF.

In questo argomento sono contenute le informazioni indicate di seguito.

Azioni eseguite da NDIS e driver overlying prima della chiamata di MiniportHaltEx

Prima che NDIS chiami la funzione MiniportHaltEx del driver miniport PF, esegue prima le operazioni seguenti:

  • NDIS annulla l'associazione di tutti i driver di protocollo associati in precedenza al driver miniport PF sottostante. NDIS esegue questa operazione chiamando la funzione ProtocolUnbindAdapterEx del driver del protocollo.

  • NDIS scollega tutti i driver di filtro associati in precedenza al driver miniport PF sottostante. NDIS esegue questa operazione chiamando la funzione FilterDetach del driver di filtro.

Quando un driver di protocollo o filtro eccessivamente non è associato o scollegato dal driver miniport PF, deve seguire questa procedura:

  1. Il driver deve eseguire una richiesta di set di identificatori di oggetto (OID) di OID_RECEIVE_FILTER_CLEAR_FILTER per cancellare eventuali filtri di ricezione impostati in precedenza. Il driver imposta questi filtri sulla porta virtuale predefinita (VPort) o qualsiasi VPort non predefinito del commutatore di interfaccia di rete sulla scheda di rete. Il driver imposta questi filtri inviando richieste di metodo OID di OID_RECEIVE_FILTER_SET_FILTER al driver miniport PF.

  2. Il driver deve eseguire una richiesta di set OID di OID_NIC_SWITCH_DELETE_VPORT per eliminare eventuali VPort non predefiniti creati in precedenza nell'opzione della scheda di interfaccia di rete. Il driver imposta queste VPort inviando richieste di metodo OID di OID_NIC_SWITCH_CREATE_VPORT al driver miniport PF.

  3. Il driver deve eseguire una richiesta di set OID di OID_NIC_SWITCH_FREE_VF per liberare le risorse per qualsiasi funzione virtuale PCIe allocata in precedenza nel commutatore NIC. Il driver alloca le risorse per la funzione VF inviando richieste di metodo OID di OID_NIC_SWITCH_ALLOCATE_VF al driver miniport PF.

    Per altre informazioni, vedere Freeing Resources for a Virtual Function .For more information, see Freeing Resources for a Virtual Function.

    Nota Quando vengono liberate le risorse per la funzione VF, NDIS chiama la funzione MiniportHaltEx del driver miniport VF. Per altre informazioni, vedere Arresto di un driver miniport VF.

Dopo aver ricevuto tutti i filtri, le VPort non predefinite e le VFS sono state eliminate dall'opzione NIC, NDIS segue questa procedura:

  • NDIS elimina tutti i commutatori di scheda di interfaccia di rete inviando richieste di set OID di OID_NIC_SWITCH_DELETE_SWITCH al driver miniport PF. Per altre informazioni sull'eliminazione di un commutatore di scheda di interfaccia di rete, vedere Eliminazione di un commutatore di scheda di interfaccia di rete.

    Nota A partire da Windows Server 2012, l'interfaccia SR-IOV supporta solo il commutatore di scheda di interfaccia di rete predefinito nella scheda di rete.

  • Dopo l'eliminazione di tutti i commutatori di interfaccia di rete, NDIS chiama la funzione MiniportHaltEx del driver miniport PF.

Azioni eseguite dal driver PF Miniport quando viene chiamato MiniportHaltEx

Quando NDIS chiama MiniportHaltEx, il driver miniport PF deve seguire questa procedura:

  1. Se il driver miniport PF supporta la creazione statica di commutatori di scheda di interfaccia di rete e tutti i commutatori di scheda di interfaccia di rete sono stati eliminati, il driver deve disabilitare la virtualizzazione nell'adattatore chiamando NdisMEnableVirtualization con il parametro EnableVirtualization impostato su FALSE e il parametro NumVFs impostato su zero.

    NdisMEnableVirtualization cancella il membro NumVFs e il bit VF Enable nella struttura SR-IOV Extended Capability nello spazio di configurazione PCIe del pf della scheda di rete.

    Nota Se il driver miniport PF supporta la creazione dinamica e la configurazione dei commutatori di interfaccia di rete, deve chiamare NdisMEnableVirtualization quando il driver gestisce la richiesta del set OID di OID_NIC_SWITCH_DELETE_SWITCH. Questa richiesta OID viene eseguita prima della chiamata di MiniportHaltEx .

  2. Il driver miniport PF esegue le altre attività associate a un'operazione di arresto miniport. Per altre informazioni, vedere Interruzione di un adattatore Miniport.