NDIS_SWITCH_UPDATE_NET_BUFFER_LIST_DESTINATIONS funzione di callback (ndis.h)
L'estensione del commutatore estendibile Hyper-V chiama la funzione UpdateNetBufferListDestinations per eseguire il commit delle modifiche apportate dall'estensione a un pacchetto contenente più porte di destinazione commutatore estendibili. La funzione salva queste modifiche al contesto di inoltro estendibile del commutatore fuori banda (OOB) della struttura di NET_BUFFER_LIST del pacchetto.
Sintassi
NDIS_SWITCH_UPDATE_NET_BUFFER_LIST_DESTINATIONS NdisSwitchUpdateNetBufferListDestinations;
NDIS_STATUS NdisSwitchUpdateNetBufferListDestinations(
[in] NDIS_SWITCH_CONTEXT NdisSwitchContext,
[in, out] PNET_BUFFER_LIST NetBufferList,
[in] UINT32 NumberOfNewDestinations,
[in] PNDIS_SWITCH_FORWARDING_DESTINATION_ARRAY Destinations
)
{...}
Parametri
[in] NdisSwitchContext
Valore NDIS_SWITCH_CONTEXT che contiene l'handle del modulo switch estendibile a cui è collegata l'estensione del commutatore estendibile Hyper-V. Quando l'estensione chiama NdisFGetOptionalSwitchHandlers, questo handle viene restituito tramite il parametro NdisSwitchContext.
[in, out] NetBufferList
Puntatore a una struttura NET_BUFFER_LIST per un singolo pacchetto.
[in] NumberOfNewDestinations
Valore UINT32 che specifica il numero di nuove porte di destinazione aggiunte al pacchetto.
[in] Destinations
Puntatore a una struttura NDIS_SWITCH_FORWARDING_DESTINATION_ARRAY. Questa struttura specifica le porte di destinazione del commutatore estendibile del pacchetto.
Valore restituito
Se la chiamata ha esito positivo, la funzione restituisce NDIS_STATUS_SUCCESS. In caso contrario, restituisce un NDIS_STATUS_xxx codice di errore definito in Ndis.h.
Osservazioni
L'estensione del commutatore estendibile chiama la funzione getNetBufferListDestinations per ottenere una matrice delle porte di destinazione del commutatore estendibile per un pacchetto. Se la funzione restituisce correttamente, la matrice viene ottenuta tramite il parametro Destinations, che contiene un puntatore a una struttura NDIS_SWITCH_FORWARDING_DESTINATION_ARRAY. Ogni elemento in questa matrice viene formattato come struttura NDIS_SWITCH_PORT_DESTINATION che specifica una porta di destinazione per il pacchetto.
Dopo che l'estensione ottiene la struttura NDIS_SWITCH_FORWARDING_DESTINATION_ARRAY, l'estensione può eseguire le operazioni seguenti:
-
Aggiungere altri elementi NDIS_SWITCH_PORT_DESTINATION nella matrice.
Per altre informazioni, vedere Aggiunta di dati della porta di destinazione del commutatore estendibile a un pacchetto.
-
Modificare gli elementi NDIS_SWITCH_PORT_DESTINATION esistenti della matrice per escludere l'inoltro di un pacchetto a una porta specificata.
Per altre informazioni, vedere esclusione del recapito di pacchetti alle porte di destinazione del commutatore estendibile.
Inoltre, dopo aver eseguito il commit delle modifiche per le porte di destinazione, non è possibile rimuovere le porte di destinazione e solo il IsExcluded membro della struttura di 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.
Fabbisogno
Requisito | Valore |
---|---|
client minimo supportato | Supportato in NDIS 6.30 e versioni successive. |
piattaforma di destinazione | Desktop |
intestazione | ndis.h (include Ndis.h) |
IRQL | <= DISPATCH_LEVEL |
Vedere anche
AllocateNetBufferListForwardingContext