NDIS_SWITCH_COPY_NET_BUFFER_LIST_INFO funzione di callback (ndis.h)

L'estensione del commutatore estendibile Hyper-V chiama la funzione CopyNetBufferListInfo per copiare il contesto di inoltro fuori banda (OOB) dalla struttura di NET_BUFFER_LIST di un pacchetto di origine alla struttura di NET_BUFFER_LIST di un pacchetto di destinazione. Questo contesto include le informazioni sulla porta di origine del commutatore estendibile e sulla scheda di rete. È anche possibile copiare le informazioni sulla porta di destinazione del commutatore estendibile.

Sintassi

NDIS_SWITCH_COPY_NET_BUFFER_LIST_INFO NdisSwitchCopyNetBufferListInfo;

NDIS_STATUS NdisSwitchCopyNetBufferListInfo(
  [in]      NDIS_SWITCH_CONTEXT NdisSwitchContext,
  [in, out] PNET_BUFFER_LIST DestNetBufferList,
  [in]      PNET_BUFFER_LIST SrcNetBufferList,
  [in]      UINT32 Flags
)
{...}

Parametri

[in] NdisSwitchContext

Valore NDIS_SWITCH_CONTEXT che contiene l'handle del modulo di opzione estendibile a cui è collegata l'estensione. Quando l'estensione chiama NdisFGetOptionalSwitchHandlers, questo handle viene restituito tramite il parametro NdisSwitchContext .

[in, out] DestNetBufferList

Puntatore a una struttura NET_BUFFER_LIST per il pacchetto di destinazione in cui viene copiato il contesto di inoltro del commutatore estendibile.

[in] SrcNetBufferList

Puntatore a una struttura NET_BUFFER_LIST per il pacchetto di origine da cui viene copiato il contesto di inoltro del commutatore estendibile.

[in] Flags

Valore UINT32. Quando viene specificato il flag NDIS_SWITCH_COPY_NBL_INFO_FLAGS_PRESERVE_DESTINATIONS, la funzione copia le porte di destinazione del commutatore estendibile dal pacchetto di origine al pacchetto di destinazione.

I dati contenuti nell'unione NDIS_SWITCH_FORWARDING_DETAIL_NET_BUFFER_LIST_INFO del pacchetto di origine sono sempre copiati nel contesto di inoltro del commutatore estendibile nel pacchetto di destinazione. Questi dati includono gli identificatori della porta di origine e l'indice della connessione alla scheda di rete da cui ha avuto origine il pacchetto. A seconda del numero di porte di destinazione del commutatore estendibile copiate nel pacchetto di destinazione, il membro NumAvailableDestinations dell'unione NDIS_SWITCH_FORWARDING_DETAIL_NET_BUFFER_LIST_INFO viene aggiornato nel pacchetto di destinazione.

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

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 CopyNetBufferListInfo per copiare i dati OOB da un pacchetto di origine a un pacchetto di destinazione. I dati includono:

  • Dati della matrice NetBufferListInfo della struttura di NET_BUFFER_LIST del pacchetto di origine.
  • Il NDIS_SWITCH_FORWARDING_DETAIL_NET_BUFFER_LIST_INFO dati dal contesto di inoltro del commutatore estendibile del pacchetto di origine.
  • Dati per le porte di destinazione del commutatore estendibile dal contesto di inoltro del commutatore estendibile del pacchetto di origine.
    Nota Questi dati vengono copiati solo se viene specificato il flag NDIS_SWITCH_COPY_NBL_INFO_FLAGS_PRESERVE_DESTINATIONS.
     
Prima che l'estensione chiami CopyNetBufferListInfo, è necessario preparare la struttura di NET_BUFFER_LIST del pacchetto di destinazione seguendo questa procedura:
  1. L'estensione deve innanzitutto inizializzare una struttura NET_BUFFER_LIST per il pacchetto di destinazione derivato dalla struttura NET_BUFFER_LIST del pacchetto di origine.

    Ad esempio, l'estensione può chiamare NdisAllocateCloneNetBufferList per creare una copia completa del pacchetto di origine. L'estensione può anche chiamare NdisAllocateFragmentNetBufferList per creare una copia di un solo frammento del pacchetto di origine. Per altre informazioni, vedere Strutture NET_BUFFER_LIST derivate.

  2. L'estensione deve chiamare la funzione AllocateNetBufferListForwardingContext per allocare il contesto di inoltro del commutatore estendibile per il pacchetto di destinazione. Questi dati vengono usati per archiviare le informazioni di inoltro del commutatore estendibile OOB, ad esempio le porte di origine e di destinazione di un pacchetto.
Nota Se l'estensione sta creando o clonando il pacchetto di origine, l'estensione deve avere precedentemente chiamato la funzione AllocateNetBufferListForwardingContext per il pacchetto. I pacchetti di origine filtrati dall'estensione tramite lo stack di driver del commutatore estendibile contengono già un contesto di inoltro del commutatore estendibile allocato.
 

Requisiti

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

Vedi anche

AllocateNetBufferListForwardingContext

NDIS_SWITCH_FORWARDING_DETAIL_NET_BUFFER_LIST_INFO

NET_BUFFER_LIST

NdisAllocateCloneNetBufferList

NdisAllocateFragmentNetBufferList

NdisFGetOptionalSwitchHandlers