Condividi tramite


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

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.

I tipi di dati seguenti sono stati dichiarati per accedere al contesto di inoltro del commutatore estendibile all'interno della struttura di NET_BUFFER_LIST di un pacchetto:

NDIS_SWITCH_FORWARDING_DETAIL_NET_BUFFER_LIST_INFO
Si tratta di un'unione a 64 bit che contiene le caratteristiche di inoltro di un pacchetto. Questi dati includono gli identificatori per la porta di origine e la connessione alla scheda di rete da cui ha avuto origine il pacchetto. Questi dati includono anche il numero di elementi inutilizzati disponibili nella matrice di porte di destinazione.

L'estensione del commutatore estendibile può accedere a questi dati usando la macro NET_BUFFER_LIST_SWITCH_FORWARDING_DETAIL .

NDIS_SWITCH_FORWARDING_DESTINATION_ARRAY
Questa struttura definisce la matrice di porte di destinazione per il pacchetto. Ogni elemento in questa matrice viene formattato come struttura NDIS_SWITCH_PORT_DESTINATION .

La struttura NDIS_SWITCH_FORWARDING_DESTINATION_ARRAY contiene membri che specificano il numero corrente del numero totale di elementi, nonché il numero di elementi utilizzati nella matrice.

L'estensione del commutatore estendibile può ottenere questa matrice chiamando la funzione GetNetBufferListDestinations . Se il driver aggiunge o modifica gli elementi nella matrice per un pacchetto con più porte di destinazione, deve chiamare la funzione UpdateNetBufferListDestinations . Questa funzione esegue il commit di tali modifiche alla matrice di porte di destinazione nel contesto di inoltro del pacchetto.

Nota Per eseguire il commit delle modifiche a un pacchetto con una sola porta di destinazione, è più efficiente per il driver chiamare la funzione AddNetBufferListDestination .

NDIS_SWITCH_PORT_DESTINATION
Questa struttura definisce una porta di destinazione per il pacchetto. Per i pacchetti con una singola porta di destinazione, è presente un solo elemento NDIS_SWITCH_PORT_DESTINATION nella matrice di porte di destinazione. Per i pacchetti con più porte di destinazione, nella matrice sono presenti uno o più di questi elementi.

Dopo che l'estensione del commutatore estendibile ha chiamato GetNetBufferListDestinations per ottenere la matrice di porte di destinazione del pacchetto, può accedere a singoli elementi nella matrice usando la macro NDIS_SWITCH_PORT_DESTINATION_AT_ARRAY_INDEX .