Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Nota Questa pagina presuppone che si abbia familiarità con le informazioni e i diagrammi in Panoramica di Hyper-V Extensible Switch e Inoltro Ibrido.
La struttura NET_BUFFER_LIST per ogni pacchetto che attraversa il percorso dati del commutatore estendibile Hyper-V contiene dati fuori banda (OOB). Questi dati specificano la porta di origine da cui ha avuto origine il pacchetto, nonché una o più porte di destinazione per il recapito dei pacchetti. Questi dati OOB sono noti come il contesto di inoltro estensibile.
Nota Il contesto di inoltro dello switch estendibile è diverso dalla struttura NET_BUFFER_LIST_CONTEXT. Ciò consente alle estensioni di allocare le proprie strutture di contesto senza influire sul contesto di inoltro.
Il contesto di inoltro dello switch estendibile viene allocato e liberato nel modo seguente:
Quando un pacchetto arriva al commutatore estendibile da una scheda di rete, l'interfaccia del commutatore estendibile alloca il contesto di inoltro e la associa alla struttura NET_BUFFER_LIST del pacchetto.
Quando il pacchetto viene recapitato alle porte di destinazione, l'interfaccia libera il contesto di inoltro dalla struttura NET_BUFFER_LIST del pacchetto.
Se un'estensione del commutatore estendibile inserisce un pacchetto nuovo o clonato nel percorso dei dati del commutatore estendibile, deve allocare il contesto di inoltro prima di chiamare NdisFSendNetBufferLists.
Dopo che l'estensione alloca una struttura NET_BUFFER_LIST per un pacchetto nuovo o clonato, deve chiamare la funzione AllocateNetBufferListForwardingContext per allocare il contesto di inoltro per il pacchetto. Al termine della richiesta di invio del pacchetto, l'estensione deve chiamare FreeNetBufferListForwardingContext prima di liberare o riutilizzare la struttura NET_BUFFER_LIST.
Nota Quando l'estensione chiama AllocateNetBufferListForwardingContext, la porta di origine per il pacchetto è impostata su NDIS_SWITCH_DEFAULT_PORT_ID. Specifica che il pacchetto ha avuto origine da un'estensione anziché arrivare a una porta switch estendibile. In determinate condizioni, l'estensione potrebbe voler modificare la porta di origine per il pacchetto. Per ulteriori informazioni, vedere Modifica dei Dati della Porta Sorgente del Switch Estendibile di un Pacchetto.
Per ulteriori informazioni, vedere Hyper-V Operazioni di Invio e Ricezione dell'Interruttore Estensibile.
Tutte le estensioni dello switch estendibile possono invocare le seguenti funzioni del gestore dello switch per accedere ai dati nel contesto di inoltro del pacchetto:
AllocateNetBufferListForwardingContext
Alloca il contesto di inoltro del commutatore estendibile e prepara una struttura NET_BUFFER_LIST per le operazioni di invio o ricezione all'interno del commutatore estendibile.
CopyNetBufferListInfo
Copia il contesto di inoltro dalla struttura di NET_BUFFER_LIST di un pacchetto di origine alla struttura di NET_BUFFER_LIST di un pacchetto di destinazione. Questi dati includono le informazioni sulla porta di origine del commutatore estendibile e sulla scheda di rete. Le informazioni sulla porta di destinazione del commutatore estendibile possono anche essere copiate nel pacchetto di destinazione.
FreeNetBufferListForwardingContext
Libera le risorse nel contesto di inoltro estendibile di una struttura di NET_BUFFER_LIST. Questi dati sono stati usati per operazioni di invio o ricezione in un commutatore estendibile Hyper-V ed è stato allocato in precedenza chiamando la funzione AllocateNetBufferListForwardingContext.
GetNetBufferListDestinations
Restituisce le porte di destinazione dal contesto di inoltro della struttura di NET_BUFFER_LIST di un pacchetto.
Un'estensione di inoltro è responsabile dell'aggiunta di porte di destinazione per un pacchetto, a meno che il pacchetto non sia un pacchetto NVGRE. Per ulteriori informazioni, vedere Inoltro Ibrido. L'estensione chiama le seguenti funzioni del gestore switch estensibile per aggiungere o aggiornare le porte di destinazione all'interno del contesto di inoltro del pacchetto:
AggiungiDestinazioneAlNetBufferList
Aggiunge una singola destinazione all'area del contesto di inoltro del commutatore estendibile per un pacchetto specificato da una struttura NET_BUFFER_LIST.
Nota Questa chiamata conferma la modifica nell'area del contesto di inoltro. In questo caso, l'estensione di inoltro non deve chiamare UpdateNetBufferListDestinations.
GrowNetBufferListDestinations
Aumenta le dimensioni della matrice di porte di destinazione nell'area del contesto di inoltro della struttura di NET_BUFFER_LIST di un pacchetto.
UpdateNetBufferListDestinations
Esegue il commit delle modifiche apportate dall'estensione a una o più porte di destinazione di commutatori estensibili di un pacchetto. Questa funzione aggiorna il contesto di inoltro della struttura di NET_BUFFER_LIST di un pacchetto con queste modifiche.
Nota Dopo che l'estensione di inoltro ha eseguito il commit delle modifiche alle porte di destinazione nel contesto di inoltro, le porte di destinazione non possono essere rimosse e solo il membro IsExcluded della struttura NDIS_SWITCH_PORT_DESTINATION di una porta di destinazione può essere modificato. Per altre informazioni, vedere Esclusione del recapito di pacchetti alle porte di destinazione dello Switch estendibile.
Argomenti correlati
Hyper-V contesto di inoltro del commutatore estendibile