OID_SWITCH_NIC_REQUEST
Viene usata una richiesta di metodo OID (Object Identifier) di OID_SWITCH_NIC_REQUEST per incapsulare e inoltrare le richieste OID alla scheda di rete esterna del commutatore estendibile Hyper-V. Ciò consente di recapitare la richiesta OID incapsulata al driver per la scheda di rete fisica sottostante associata alla scheda di rete esterna.
Questa richiesta OID viene usata anche per incapsulare le richieste OID inviate ad altre schede di rete connesse alle porte del commutatore estendibile. In questo caso, la richiesta OID incapsulata viene inoltrata tramite lo stack del driver del commutatore estendibile per l'ispezione da parte delle estensioni.
Il membro InformationBuffer della struttura NDIS_OID_REQUEST contiene un puntatore a una struttura NDIS_SWITCH_NIC_OID_REQUEST . Questa struttura specifica le informazioni di inoltro per la richiesta OID. Questa struttura contiene anche un puntatore alla struttura NDIS_OID_REQUEST originale della richiesta OID inoltrata.
Commenti
Quando le richieste OID arrivano all'interfaccia del commutatore estendibile Hyper-V, le incapsula per inoltrarle verso il basso il percorso di controllo del commutatore estendibile. Queste richieste OID includono quanto segue:
Richieste OID di offload hardware, incluse le richieste per la sicurezza del protocollo Internet (IPsec), la coda di macchine virtuali (VMQ) e la virtualizzazione I/O radice singola (SR-IOV). Queste richieste OID vengono inviate da un protocollo o un driver di filtro eccessivamente in esecuzione nel sistema operativo di gestione della partizione padre Hyper-V.
Quando queste richieste OID arrivano all'interfaccia del commutatore estendibile, il bordo del protocollo dell'commutatore estendibile incapsula la richiesta OID all'interno di una struttura NDIS_SWITCH_NIC_OID_REQUEST . Il bordo del protocollo imposta i membri di questa struttura nel modo seguente:
I membri DestinationPortId e DestinationNicIndex sono impostati sui valori corrispondenti per la scheda di rete esterna.
Se la richiesta OID è stata originata da una partizione figlio Hyper-V, i membri SourcePortId e SourceNicIndex vengono impostati sui valori corrispondenti per la porta e la scheda di rete utilizzati dalla partizione. In caso contrario, i membri SourcePortId e SourceNicIndex sono impostati su zero.
Nota L'estensione deve mantenere i valori di questi membri se inoltra o reindirizza la richiesta OID.
Il membro OidRequest è impostato su un puntatore alla struttura NDIS_OID_REQUEST per la richiesta OID incapsulata.
Il bordo del protocollo invia quindi la richiesta di OID_SWITCH_NIC_REQUEST per inoltrare la richiesta OID incapsulata verso il basso il percorso di controllo del commutatore estendibile alla scheda di rete esterna.
Un'estensione di inoltro sottostante può reindirizzare le richieste OID di offload hardware incapsulate a una scheda di rete fisica associata alla scheda di rete esterna. Ad esempio, se l'estensione supporta schede di rete fisiche da un team del commutatore estendibile associato alla scheda di rete esterna, può inoltrare la richiesta di OID_SWITCH_NIC_REQUEST a una scheda fisica nel team di failover del bilanciamento del carico (LBFO) che supporta l'offload hardware. Per altre informazioni su questa procedura, vedere Managing Hardware Offload OID Requests to Physical Network Adapters .For more information on this procedure, see Managing Hardware Offload OID Requests to Physical Network Adapters.
Per altre informazioni sui team dei commutatori estendibili, vedere Tipi di configurazioni delle schede di rete fisiche.
Richieste OID multicast, tra cui OID_802_3_ADD_MULTICAST_ADDRESS e OID_802_3_DELETE_MULTICAST_ADDRESS. Queste richieste OID vengono inviate tramite il protocollo overlying e i driver di filtro eseguiti nel sistema operativo di gestione o nel sistema operativo guest di una partizione figlio Hyper-V.
Quando queste richieste OID arrivano all'interfaccia del commutatore estendibile, il bordo del protocollo dell'commutatore estendibile incapsula la richiesta OID all'interno di una struttura NDIS_SWITCH_NIC_OID_REQUEST . Il bordo del protocollo imposta anche i membri SourcePortId e SourceNicIndex sui valori corrispondenti per la porta e la scheda di rete da cui ha avuto origine la richiesta OID. Il bordo del protocollo invia quindi la richiesta di OID_SWITCH_NIC_REQUEST di inoltrare la richiesta OID incapsulata verso il basso il percorso di controllo del commutatore estendibile per l'ispezione da parte delle estensioni sottostanti.
Nota In questo caso, il bordo del protocollo imposta i membri DestinationPortId e DestinationNicIndex su zero. Specifica che la richiesta OID incapsulata deve essere recapitata alle estensioni nel percorso del controllo.
Le estensioni di inoltro sottostanti possono esaminare queste richieste OID incapsulate e conservare le informazioni sull'indirizzo multicast specificate. Ad esempio, l'estensione potrebbe richiedere queste informazioni se ha origine pacchetti multicast inoltrati a una porta del commutatore estendibile.
Per altre informazioni, vedere Inoltro di richieste OID da una partizione figlio Hyper-V.
Un'estensione di inoltro può anche emettere un OID_SWITCH_NIC_REQUEST per inoltrare le richieste OID incapsulate a una scheda di rete fisica associata alla scheda di rete esterna. In questo modo l'estensione può originare la propria richiesta OID o reindirizzare una richiesta OID esistente a una scheda di rete fisica associata alla scheda di rete esterna. A tale scopo, l'estensione deve seguire questa procedura:
L'estensione chiama ReferenceSwitchNic per incrementare un contatore di riferimento per l'indice della scheda di rete fisica di destinazione. Ciò garantisce che l'interfaccia del commutatore estendibile non elimini la connessione della scheda di rete fisica mentre il contatore dei riferimenti è diverso da zero.
Nota L'interfaccia del commutatore estendibile potrebbe disconnettere la connessione della scheda di rete fisica mentre il contatore dei riferimenti è diverso da zero. Per altre informazioni, vedere Porta commutatore estendibile Hyper-V e Stati della scheda di rete.
L'estensione incapsula la richiesta OID inizializzando una struttura NDIS_SWITCH_NIC_OID_REQUEST nel modo seguente:
Il membro DestinationPortId deve essere impostato sull'identificatore della porta del commutatore estendibile a cui è connessa la scheda di rete esterna.
Il membro DestinationNicIndex deve essere impostato sul valore di indice diverso da zero della scheda di rete fisica sottostante.
Se l'estensione ha origine per conto di una partizione figlio Hyper-V, i membri SourcePortId e SourceNicIndex vengono impostati sui valori corrispondenti per la porta e la scheda di rete utilizzati dalla partizione. In caso contrario, i membri SourcePortId e SourceNicIndex sono impostati su zero.
Ad esempio, se l'estensione gestisce le risorse di offload hardware per una partizione figlio, deve impostare i membri SourcePortId e SourceNicIndex per specificare la partizione per la richiesta OID di offload hardware incapsulata.
Il membro OidRequest deve essere impostato su un puntatore a una struttura di NDIS_OID_REQUEST inizializzata per la richiesta OID incapsulata.
L'estensione chiama NdisFOidRequest per inoltrare la richiesta OID alla porta del commutatore estendibile di destinazione specificata e alla scheda di rete.
Quando NDIS chiama la funzione FilterOidRequestComplete , l'estensione chiama DereferenceSwitchNic per cancellare il contatore di riferimento per l'indice della scheda di rete fisica di destinazione.
Codici di stato restituiti
Il bordo miniport sottostante dell'opzione estendibile completa la richiesta di query OID di OID_SWITCH_NIC_REQUEST e restituisce uno dei codici di stato seguenti.
Codice di stato | Descrizione |
---|---|
NDIS_STATUS_SUCCESS |
La richiesta OID è stata completata correttamente. |
NDIS_STATUS_Xxx |
La richiesta non è riuscita per altri motivi. |
Requisiti
Versione |
Supportato in NDIS 6.30 e versioni successive. |
Intestazione |
Ntddndis.h (include Ndis.h) |