Condividi tramite


Gestione del contesto di inoltro del commutatore estendibile Hyper-V

Nota Questa pagina presuppone che si abbia familiarità con le informazioni e i diagrammi in Panoramica del commutatore estendibile Hyper-V e dell'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 contesto di inoltro del commutatore estendibile.

Nota Il contesto di inoltro del commutatore 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 del commutatore estendibile viene allocato e liberato nel modo seguente:

Tutte le estensioni del commutatore estendibile possono chiamare le funzioni del gestore commutatore estendibili seguenti per accedere ai dati all'interno del contesto di inoltro del pacchetto:

AllocateNetBufferListForwardingContext
Alloca il contesto di inoltro del commutatore estendibile e prepara una struttura di NET_BUFFER_LIST per le operazioni di invio o ricezione all'interno del commutatore estendibile.

CopyNetBufferListInfo
Copia il contesto di inoltro dalla struttura 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 del commutatore estendibile di una struttura di NET_BUFFER_LIST . Questi dati sono stati usati per le 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 altre informazioni, vedere Inoltro ibrido. L'estensione chiama le funzioni del gestore del commutatore estendibili seguenti per aggiungere o aggiornare le porte di destinazione all'interno del contesto di inoltro del pacchetto:

AddNetBufferListDestination
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 esegue il commit della 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 del commutatore estendibili di un pacchetto. Questa funzione aggiorna il contesto di inoltro della struttura NET_BUFFER_LIST di un pacchetto con queste modifiche.

Nota Dopo che l'estensione di inoltro esegue il commit delle modifiche per le 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 del commutatore estendibile.

Contesto di inoltro del commutatore estendibile Hyper-V

Tipi di dati del contesto di inoltro del commutatore estendibile Hyper-V