NDIS_SWITCH_COPY_NET_BUFFER_LIST_INFO função de retorno de chamada (ndis.h)
A extensão de comutador extensível do Hyper-V chama a função CopyNetBufferListInfo para copiar o contexto de encaminhamento fora de banda (OOB) da estrutura de NET_BUFFER_LIST de um pacote de origem para a estrutura de NET_BUFFER_LIST de um pacote de destino. Esse contexto inclui as informações extensíveis da porta de origem do comutador e do adaptador de rede. As informações de porta de destino do comutador extensível também podem ser copiadas.
Sintaxe
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
)
{...}
Parâmetros
[in] NdisSwitchContext
Um valor NDIS_SWITCH_CONTEXT que contém o identificador do módulo de comutador extensível ao qual a extensão está anexada. Quando a extensão chama NdisFGetOptionalSwitchHandlers, esse identificador é retornado por meio do parâmetro NdisSwitchContext .
[in, out] DestNetBufferList
Um ponteiro para uma estrutura de NET_BUFFER_LIST para o pacote de destino para o qual o contexto de encaminhamento de comutador extensível é copiado.
[in] SrcNetBufferList
Um ponteiro para uma estrutura NET_BUFFER_LIST para o pacote de origem do qual o contexto de encaminhamento de comutador extensível é copiado.
[in] Flags
Um valor UINT32. Quando o sinalizador NDIS_SWITCH_COPY_NBL_INFO_FLAGS_PRESERVE_DESTINATIONS é especificado, a função copia as portas de destino do comutador extensível do pacote de origem para o pacote de destino.
Os dados contidos na união NDIS_SWITCH_FORWARDING_DETAIL_NET_BUFFER_LIST_INFO do pacote de origem são sempre copiados para o contexto de encaminhamento de comutador extensível no pacote de destino. Esses dados incluem os identificadores de porta de origem e o índice da conexão do adaptador de rede da qual o pacote foi originado. Dependendo do número de portas de destino comutador extensíveis copiadas para o pacote de destino, o membro NumAvailableDestinations da união NDIS_SWITCH_FORWARDING_DETAIL_NET_BUFFER_LIST_INFO é atualizado no pacote de destino.
Para obter mais informações sobre o contexto de encaminhamento, consulte Contexto de encaminhamento extensível de comutador extensível do Hyper-V.
Retornar valor
Se a chamada for bem-sucedida, a função retornará NDIS_STATUS_SUCCESS. Caso contrário, ele retornará um código de erro NDIS_STATUS_Xxx definido em Ndis.h.
Comentários
A extensão de comutador extensível chama a função CopyNetBufferListInfo para copiar os dados OOB de um pacote de origem para um pacote de destino. Esses dados incluem o seguinte:
- Os dados da matriz NetBufferListInfo da estrutura NET_BUFFER_LIST do pacote de origem.
- O NDIS_SWITCH_FORWARDING_DETAIL_NET_BUFFER_LIST_INFO dados do contexto de encaminhamento extensível de comutador do pacote de origem.
-
Os dados das portas de destino do comutador extensível do contexto de encaminhamento extensível de comutador do pacote de origem.
Nota Esses dados só serão copiados se o sinalizador NDIS_SWITCH_COPY_NBL_INFO_FLAGS_PRESERVE_DESTINATIONS for especificado.
-
A extensão deve primeiro inicializar uma estrutura NET_BUFFER_LIST para o pacote de destino derivado da estrutura de NET_BUFFER_LIST do pacote de origem.
Por exemplo, a extensão pode chamar NdisAllocateCloneNetBufferList para criar uma cópia completa do pacote de origem. A extensão também pode chamar NdisAllocateFragmentNetBufferList para criar uma cópia de apenas um fragmento do pacote de origem. Para obter mais informações, consulte Estruturas de NET_BUFFER_LIST derivadas.
- A extensão deve chamar a função AllocateNetBufferListForwardingContext para alocar o contexto de encaminhamento de comutador extensível para o pacote de destino. Esses dados são usados para armazenar as informações de encaminhamento de comutador extensível OOB, como as portas de origem e destino de um pacote.
Requisitos
Requisito | Valor |
---|---|
Cliente mínimo com suporte | Com suporte no NDIS 6.30 e posterior. |
Plataforma de Destino | Área de Trabalho |
Cabeçalho | ndis.h (inclua Ndis.h) |
IRQL | <= DISPATCH_LEVEL |
Confira também
AllocateNetBufferListForwardingContext
NDIS_SWITCH_FORWARDING_DETAIL_NET_BUFFER_LIST_INFO
NdisAllocateCloneNetBufferList