Condividi tramite


NDIS_SWITCH_ADD_NET_BUFFER_LIST_DESTINATION funzione di callback (ndis.h)

La funzione AddNetBufferListDestination aggiunge una singola porta di destinazione per un pacchetto specificato da una struttura NET_BUFFER_LIST .

Sintassi

NDIS_SWITCH_ADD_NET_BUFFER_LIST_DESTINATION NdisSwitchAddNetBufferListDestination;

NDIS_STATUS NdisSwitchAddNetBufferListDestination(
  [in]      NDIS_SWITCH_CONTEXT NdisSwitchContext,
  [in, out] PNET_BUFFER_LIST NetBufferList,
  [in]      PNDIS_SWITCH_PORT_DESTINATION Destination
)
{...}

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 pacchetto.

Nota Questa struttura deve contenere un contesto di inoltro estendibile. Se l'estensione creata o clonata il pacchetto, deve essere stata allocata in precedenza questa struttura chiamando la funzione AllocateNetBufferListForwardingContext .
 

[in] Destination

Puntatore a una struttura di NDIS_SWITCH_PORT_DESTINATION . Questa struttura specifica la porta del commutatore estendibile di destinazione a cui verrà inoltrato il 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 AddNetBufferListDestination per definire una singola porta di destinazione del commutatore estendibile per un pacchetto. L'estensione specifica questa porta inizializzando una struttura NDIS_SWITCH_PORT_DESTINATION . L'estensione imposta il parametro Destination su un puntatore a questa struttura. Per altre informazioni su come specificare una porta di destinazione del commutatore estendibile, vedere Gestione dei dati delle porte di destinazione dell'commutatore estendibile Hyper-V.

Nota Per motivi di prestazioni, l'estensione non deve chiamare pacchetti AddNetBufferListDestination con più porte di destinazione.
 
L'estensione deve seguire queste linee guida prima di chiamare AddNetBufferListDestination:
  • Solo le estensioni di inoltro possono chiamare AddNetBufferListDestination per aggiungere una porta di destinazione per un pacchetto. Per altre informazioni su questo tipo di estensione, vedere Estensioni di inoltro.
  • Se l'estensione di inoltro ha origine un pacchetto con una porta di destinazione, l'estensione deve prima chiamare la funzione AllocateNetBufferListForwardingContext . Questa funzione alloca il contesto di inoltro del commutatore estendibile per il pacchetto. Questi dati contengono le porte di origine e destinazione estendibili all'interno delle informazioni OOB (out-of-band) per il pacchetto.

    Per altre informazioni su questo contesto, vedere Contesto di inoltro del commutatore estendibile Hyper-V.

  • Dopo che l'estensione modifica le informazioni sulla porta di destinazione nella struttura NDIS_SWITCH_PORT_DESTINATION, chiama AddNetBufferListDestination per eseguire il commit delle modifiche alla strutturaNET_BUFFER_LIST per il pacchetto.
    Nota Per motivi di prestazioni, l'estensione non deve chiamare la funzione UpdateNetBufferListDestinations per eseguire il commit delle modifiche per il pacchetto.
     
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 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

GetNetBufferListDestinations

NDIS_SWITCH_PORT_DESTINATION

NET_BUFFER

NET_BUFFER_LIST

NdisFGetOptionalSwitchHandlers

UpdateNetBufferListDestinations