NDIS_SWITCH_GET_NET_BUFFER_LIST_SWITCH_CONTEXT função de retorno de chamada (ndis.h)

A extensão de comutador extensível do Hyper-V chama a função GetNetBufferListSwitchContext para recuperar o contexto de comutador definido anteriormente no NET_BUFFER_LIST.

Sintaxe

NDIS_SWITCH_GET_NET_BUFFER_LIST_SWITCH_CONTEXT NdisSwitchGetNetBufferListSwitchContext;

PVOID NdisSwitchGetNetBufferListSwitchContext(
  [in] NDIS_SWITCH_CONTEXT NdisSwitchContext,
  [in] PNET_BUFFER_LIST NetBufferList,
  [in] PNDIS_SWITCH_NET_BUFFER_LIST_CONTEXT_TYPE ContextType
)
{...}

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 do comutador extensível do Hyper-V está anexada. Quando a extensão chama NdisFGetOptionalSwitchHandlers, esse identificador é retornado por meio do parâmetro NdisSwitchContext .

[in] NetBufferList

Um ponteiro para uma estrutura NET_BUFFER_LIST para um único pacote que contém o contexto a ser recuperado.

Nota Essa estrutura deve conter um contexto extensível de encaminhamento de comutador. Se a extensão criou ou clonou o pacote, ela deverá ter alocado essa estrutura anteriormente chamando a função AllocateNetBufferListForwardingContext.
 

[in] ContextType

Contexto

Tipo de contexto declarado usando o NDIS_DECLARE_SWITCH_NET_BUFFER_LIST_CONTEXT_TYPE que foi usado ao definir o contexto.

Retornar valor

NULL se nenhum contexto foi encontrado no NET_BUFFER_LIST que corresponde ao tipo de contexto especificado. Caso contrário, um ponteiro não NULL para o buffer será retornado.

Comentários

As APIs SetNetBufferListSwitchContext permitem que as extensões anexem o contexto a uma NET_BUFFER_LIST na entrada e as recuperem na saída. Mesmo assim, as extensões devem ser resilientes ao contexto de entrada que não está presente na saída. O contexto de comutador não é preservado quando um NET_BUFFER_LIST é clonado, portanto, em cenários em que o NET_BUFFER_LIST é clonado entre entrada e saída, o NET_BUFFER_LIST não terá o contexto de alternância original.

A extensão deve gerenciar o tempo de vida do contexto. Uma abordagem é alocar o contexto do NDIS NET_BUFFER_LIST (usando NdisAllocateNetBufferListContext ou pré-configurado se a extensão possui o pool de NET_BUFFER_LIST) e usar SetNetBufferListSwitchContext para associar um identificador de tipo de contexto ao contexto de NET_BUFFER_LIST do NDIS. Quando a NBL for concluída, a extensão poderá liberar o contexto de NET_BUFFER_LIST do NDIS (usando NdisFreeNetBufferListContext ou liberar o próprio NET_BUFFER_LIST se ele tiver sido originado pela extensão).

Para obter mais informações sobre o contexto extensível de encaminhamento de comutador, consulte Contexto de encaminhamento extensível de comutador do Hyper-V.

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

GetNetBufferListDestinations

NDIS_SWITCH_PORT_DESTINATION

NET_BUFFER

NET_BUFFER_LIST

NdisFGetOptionalSwitchHandlers

NdisFOidRequest

SetNetBufferListSwitchContext