Flag di invio e ricezione 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.
Il traffico di pacchetti che si sposta sul percorso dati del commutatore estendibile Hyper-V viene ottenuto dalle estensioni nel modo seguente:
Un'estensione ottiene un pacchetto dal percorso dati in ingresso quando viene chiamata la relativa funzione FilterSendNetBufferLists . L'estensione inoltra il pacchetto alle estensioni sottostanti nel percorso dati in ingresso chiamando NdisFSendNetBufferLists. I filtri e l'inoltro delle estensioni possono anche eliminare il pacchetto dal percorso dati in ingresso chiamando NdisFSendNetBufferListsComplete.
Un'estensione ottiene un pacchetto dal percorso dati in uscita quando viene chiamata la relativa funzione FilterReceiveNetBufferLists . L'estensione inoltra il pacchetto alle estensioni overlying nel percorso dati in uscita chiamando NdisFIndicateReceiveNetBufferLists. Il filtro e l'inoltro delle estensioni possono anche eliminare il pacchetto dal percorso dati in uscita chiamando NdisFReturnNetBufferLists.
I flag seguenti possono essere impostati nel parametro SendFlags di FilterSendNetBufferLists o NdisFSendNetBufferLists:
NDIS_SEND_FLAGS_SWITCH_SINGLE_SOURCE
Se questo flag è impostato, tutti i pacchetti in un elenco collegato di strutture NET_BUFFER_LIST hanno origine dalla stessa porta di origine del commutatore estendibile Hyper-V.
Quando NDIS chiama FilterSendNetBufferLists, imposta questo flag se l'interfaccia estendibile del commutatore estendibile ha raggruppato più pacchetti dalla stessa porta di origine. Per ottenere prestazioni ottimali, le estensioni devono mantenere questo raggruppamento e impostare questo flag quando chiama NdisFSendNetBufferLists. L'estensione può anche aggiungere pacchetti originati o clonati all'elenco collegato di strutture NET_BUFFER_LIST se l'estensione utilizza la stessa porta di origine degli altri pacchetti nell'elenco.
Nota Se ogni pacchetto nell'elenco collegato di strutture di NET_BUFFER_LIST utilizza la stessa porta di origine, l'estensione deve impostare il flag NDIS_SEND_COMPLETE_FLAGS_SWITCH_SINGLE_SOURCE nel parametro SendCompleteFlags di NdisFSendNetBufferListsComplete al termine della richiesta di invio.
NDIS_SEND_FLAGS_SWITCH_DESTINATION_GROUP
Se questo flag è impostato, tutti i pacchetti in un elenco collegato di strutture NET_BUFFER_LIST devono essere inoltrati alla stessa porta di destinazione del commutatore estendibile.
Un'estensione di inoltro può usare questo flag per un elenco collegato di strutture NET_BUFFER_LIST che inoltra sul percorso dei dati in ingresso dopo che determina le porte di destinazione di ogni pacchetto. Questo flag viene utilizzato e rimosso dal bordo miniport sottostante dell'opzione estendibile prima di inoltrare i pacchetti verso l'alto il percorso dati in uscita.
L'acquisizione e il filtro delle estensioni non possono usare questo flag.
Nota L'estensione di inoltro determina solo le porte di destinazione del pacchetto per i pacchetti non NVGRE. Se il pacchetto è un pacchetto NVGRE, il componente Hyper-V Network Virtualization (HNV) determina le porte di destinazione del pacchetto e inoltra il pacchetto. Per altre informazioni, vedere Inoltro ibrido.
Per ottenere prestazioni ottimali, l'inoltro delle estensioni deve impostare questo flag se tutti i pacchetti nell'elenco collegato devono essere inoltrati alla stessa porta di destinazione. Impostando questo flag, l'estensione riconosce che tutti i pacchetti nell'elenco collegato hanno gli stessi elementi della porta di destinazione nel contesto di inoltro del commutatore estendibile.
Nota L'estensione di inoltro non deve impostare questo flag per un elenco collegato di pacchetti con più porte di destinazione.
I flag seguenti possono essere impostati nel parametro ReceiveFlags di FilterReceiveNetBufferLists o NdisFIndicateReceiveNetBufferLists:
NDIS_RECEIVE_FLAGS_SWITCH_SINGLE_SOURCE
Se questo flag è impostato, tutti i pacchetti in un elenco collegato di strutture NET_BUFFER_LIST hanno origine dalla stessa porta di origine del commutatore estendibile Hyper-V.
Quando NDIS chiama FilterReceiveNetBufferLists, imposta questo flag se l'opzione estendibile ha raggruppato più pacchetti dalla stessa porta di origine. Per ottenere prestazioni ottimali, le estensioni devono mantenere questo raggruppamento sul posto e impostare questo flag quando chiama NdisMIndicateReceiveNetBufferLists. Le estensioni devono anche aggiungere pacchetti originati o clonati all'elenco collegato di strutture NET_BUFFER_LIST se il pacchetto ha la stessa porta di origine degli altri pacchetti nell'elenco.
Nota Se ogni pacchetto nell'elenco collegato di strutture NET_BUFFER_LIST utilizza la stessa porta di origine, l'estensione deve impostare il flag NDIS_RETURN_FLAGS_SWITCH_SINGLE_SOURCE nel parametro ReturnFlags di FilterReturnNetBufferLists al termine della richiesta di ricezione. L'estensione deve impostare questo flag nel parametro ReturnFlags se chiama NdisFReturnNetBufferLists per restituire pacchetti non originato o clonato.
NDIS_RECEIVE_FLAGS_SWITCH_DESTINATION_GROUP
Se questo flag è impostato, tutti i pacchetti in un elenco collegato di strutture NET_BUFFER_LIST devono essere inoltrati alla stessa porta di destinazione del commutatore estendibile.
Quando NDIS chiama FilterReceiveNetBufferLists, questo flag verrà impostato se il commutatore estendibile ha raggruppato più pacchetti con le stesse porte di destinazione. Per ottenere prestazioni ottimali, le estensioni devono mantenere questo raggruppamento sul posto e impostare questo flag quando chiama NdisMIndicateReceiveNetBufferLists. Le estensioni devono anche aggiungere pacchetti originati o clonati all'elenco collegato di strutture NET_BUFFER_LIST se il pacchetto ha le stesse porte di destinazione degli altri pacchetti nell'elenco.
Nota Quando un'estensione chiama NdisFIndicateReceiveNetBufferLists, non deve impostare il flag NDIS_RECEIVE_FLAGS_RESOURCES nel parametro ReceiveFlags . L'interfaccia dell'opzione estendibile ignora questo flag e completerà l'indicazione di ricezione chiamando FilterReturnNetBufferLists.