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 all'estensione a un pacchetto contenente più porte di destinazione di commutatore estendibili. La funzione salva queste modifiche al contesto di inoltro estendibile (OOB) fuori banda 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 di commutatore estendibile a cui è associata l'estensione dell'estensione estendibile Hyper-V. Quando l'estensione chiama NdisFGetOptionalSwitchHandlers, questo handle viene restituito tramite il parametro NdisSwitchContext .
[in, out] NetBufferList
Puntatore a una struttura di 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 di commutatore estendibili del pacchetto.
Valore restituito
Se la chiamata ha esito positivo, la funzione restituisce NDIS_STATUS_SUCCESS. In caso contrario, restituisce un codice di errore NDIS_STATUS_Xxx definito in Ndis.h.
Commenti
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 Destination , che contiene un puntatore a una struttura NDIS_SWITCH_FORWARDING_DESTINATION_ARRAY . Ogni elemento di questa matrice viene formattato come struttura NDIS_SWITCH_PORT_DESTINATION che specifica una porta di destinazione per il pacchetto.
Dopo aver ottenuto 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 estendibile a un pacchetto.
-
Modificare gli elementi NDIS_SWITCH_PORT_DESTINATION esistenti della matrice per escludere un pacchetto da inoltrare a una porta specificata.
Per altre informazioni, vedere Esclusione del recapito dei pacchetti alle porte di destinazione estendibili.
Inoltre, dopo il commit delle modifiche per le porte di destinazione, 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 dei pacchetti alle porte di destinazione estendibili.
Requisiti
Requisito | Valore |
---|---|
Client minimo supportato | Supportato in NDIS 6.30 e versioni successive. |
Piattaforma di destinazione | Desktop |
Intestazione | ndis.h (includere Ndis.h) |
IRQL | <= DISPATCH_LEVEL |
Vedi anche
AllocateNetBufferListForwardingContext