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