Indicazioni sullo stato di NDIS provenienti da schede di rete fisiche
In questo argomento viene illustrato il metodo usato da un'estensione di inoltro del commutatore estendibile per originare le indicazioni sullo stato di NDIS per una scheda di rete connessa al commutatore. L'estensione può originarsi un'indicazione di stato NDIS per i tipi di adattatori seguenti:
Una o più schede fisiche sottostanti associate alla scheda di rete esterna del commutatore estendibile.
Ad esempio, la scheda di rete esterna può essere associata al bordo miniport virtuale di un driver intermedio multixer (MUX) NDIS. Il driver MUX è associato a un team di una o più reti fisiche nell'host. Questa configurazione è nota come team di commutatori estendibili.
In questa configurazione un'estensione del commutatore estendibile viene esposta a ogni scheda di rete nel team. In questo modo l'estensione consente di gestire la configurazione e l'uso di singole schede di rete nel team. Ad esempio, un'estensione di inoltro può fornire supporto per una soluzione di failover di bilanciamento del carico (LBFO) nel team inoltrando pacchetti in uscita a singoli adattatori. Un'estensione di inoltro che gestisce un team di switch estendibile è nota come provider di teaming. Per altre informazioni sui provider di teaming, vedere Estensioni del provider di team.
Scheda di rete macchina virtuale esposta all'interno di una partizione figlio Hyper-V e connessa a una porta di commutatore estendibile.
Nella figura seguente viene illustrato il percorso di controllo del commutatore estendibile Hyper-V per le indicazioni sullo stato di NDIS da schede di rete fisiche e VM per NDIS 6.40 (Windows Server 2012 R2) e versioni successive.
Nella figura seguente viene illustrato il percorso di controllo del commutatore estendibile Hyper-V per le indicazioni sullo stato di NDIS da schede di rete fisiche e VM per NDIS 6.30 (Windows Server 2012).
Nota Nell'interfaccia del commutatore estendibile, i driver di filtro NDIS sono noti come estensioni e lo stack di driver è noto come stack di driver di commutatore estendibile.
Un'estensione di inoltro può originare indicazioni sullo stato di offload hardware incapsulate per i driver sovralimentati nello stack di driver di commutatore estendibile. Ciò consente anche all'estensione di modificare le funzionalità di offload correnti del team sottostante di schede fisiche associate alla scheda di rete esterna del commutatore estendibile. Quando un team di schede è associato alla scheda di rete esterna, solo le funzionalità comuni del team vengono annunciate a NDIS o a driver di filtro e protocollo overlying. L'estensione può estendere le funzionalità annunciate dall'origine delle indicazioni sullo stato incapsulate per annunciare le funzionalità supportate da alcune schede nel team. Ad esempio, l'estensione può emettere un'indicazione NDIS_STATUS_RECEIVE_FILTER_CURRENT_CAPABILITIES incapsulata per modificare le funzionalità di filtro di ricezione attualmente abilitate per l'intero team.
Nota Solo le estensioni di inoltro possono originare indicazioni sullo stato incapsulate. Per altre informazioni su questo tipo di estensione, vedere Estensione di inoltro.
In genere, l'estensione di inoltro ha origine indicazioni sullo stato NDIS incapsulate per modificare le funzionalità di offload hardware annunciate dell'adattatore fisico sottostante. Ad esempio, l'estensione può originare le indicazioni sullo stato per i tipi di offload hardware seguenti:
Sicurezza del protocollo Internet (IPsec).
Coda di macchine virtuali (VMQ).
Single Root I/O Virtualization (SR-IOV).
L'estensione di inoltro può anche originare indicazioni sullo stato NDIS incapsulate per modificare le risorse di offload hardware allocate per una partizione figlio Hyper-V. A partire da NDIS 6.30, l'estensione può generare un'indicazione NDIS_STATUS_SWITCH_PORT_REMOVE_VF incapsulata per rimuovere l'associazione tra una scheda di rete vm e una funzione virtuale PCI Express (PCIe). Il servizio VF è esposto e supportato da una scheda di rete fisica sottostante che supporta l'interfaccia di virtualizzazione I/O radice singola (SR-IOV).
Se l'estensione di inoltro ha origine un'indicazione di stato NDIS incapsulata per le risorse di offload hardware di un adattatore fisico sottostante, deve impostare i membri della struttura NDIS_SWITCH_NIC_STATUS_INDICATION nel modo seguente:
Il membro DestinationPortId deve essere impostato su NDIS_SWITCH_DEFAULT_PORT_ID.
Il membro DestinationNicIndex deve essere impostato su NDIS_SWITCH_DEFAULT_NIC_INDEX
Il membro SourcePortId deve essere impostato sull'identificatore della porta del commutatore estendibile a cui è connessa la scheda di rete esterna.
Il membro SourceNicIndex deve essere impostato su NDIS_SWITCH_DEFAULT_NIC_INDEX. Ciò consente di interpretare l'indicazione dello stato come proveniente dall'intero team di commutatori estendibili associato alla scheda di rete esterna.
Nota L'estensione di inoltro deve anche impostare questo membro su NDIS_SWITCH_DEFAULT_NIC_INDEX se solo una singola scheda di rete fisica è associata alla scheda di rete esterna.
Il membro StatusIndication deve essere impostato su un puntatore a una struttura NDIS_STATUS_INDICATION . Questa struttura contiene i dati per l'indicazione di stato NDIS incapsulata.
Se l'estensione di inoltro ha origine un'indicazione di stato NDIS per le risorse di offload hardware di una partizione figlio Hyper-V, deve impostare i membri della struttura NDIS_SWITCH_NIC_STATUS_INDICATION nel modo seguente:
I membri DestinationPortId e DestinationNicIndex devono essere impostati sui valori corrispondenti dell'indice della porta e della scheda di rete per la connessione di rete usata dalla partizione.
Il membro SourcePortId deve essere impostato su NDIS_SWITCH_DEFAULT_PORT_ID.
Il membro SourceNicIndex deve essere impostato su NDIS_SWITCH_DEFAULT_NIC_INDEX.
Il membro StatusIndication deve essere impostato su un puntatore a una struttura NDIS_STATUS_INDICATION . Questa struttura contiene i dati per l'indicazione di stato NDIS incapsulata.
Quando l'estensione genera l'indicazione di stato NDIS incapsulata, deve seguire questa procedura:
L'estensione chiama ReferenceSwitchNic per incrementare un contatore di riferimento per la connessione della scheda di rete di origine o di destinazione. Ciò garantisce che l'interfaccia del commutatore estendibile non eliminerà la connessione alla scheda di rete mentre il contatore di riferimento non è zero.
Quando l'estensione chiama ReferenceSwitchNic, imposta i parametri nei modi seguenti:
Se l'estensione di inoltro ha origine un'indicazione di stato NDIS incapsulata per un adattatore fisico sottostante, imposta il parametro SwitchPortId sul valore specificato per il membro SourcePortId . L'estensione imposta anche il parametro SwitchNicIndex sul valore specificato per il membro SourceNicIndex .
Se l'estensione di inoltro ha origine un'indicazione di stato NDIS per una partizione figlio Hyper-V, imposta il parametro SwitchPortId sul valore specificato per il membro DestinationPortId . L'estensione imposta anche il parametro SwitchNicIndex sul valore specificato per il membro DestinationNicIndex .
Nota Se ReferenceSwitchNic non restituisce NDIS_STATUS_SUCCESS, non è possibile rilasciare l'indicazione di stato NDIS incapsulata.
L'estensione chiama NdisFIndicateStatus per inoltrare la notifica di stato incapsulata.
Nota Se l'estensione inoltra una richiesta OID filtrata, deve chiamare NdisFIndicateStatus nel contesto della chiamata alla funzione FilterStatus .
Dopo che NdisFIndicateStatus restituisce, l'estensione chiama DereferenceSwitchNic per cancellare il contatore di riferimento per la connessione della scheda di rete di origine o di destinazione. L'estensione imposta i parametri SwitchPortId e SwitchNicIndex agli stessi valori usati nella chiamata a ReferenceSwitchNic.