NDIS_SWITCH_ALLOCATE_NET_BUFFER_LIST_FORWARDING_CONTEXT função de retorno de chamada (ndis.h)
A função AllocateNetBufferListForwardingContext prepara uma estrutura NET_BUFFER_LIST para operações de envio ou recebimento dentro do comutador extensível.
Sintaxe
NDIS_SWITCH_ALLOCATE_NET_BUFFER_LIST_FORWARDING_CONTEXT NdisSwitchAllocateNetBufferListForwardingContext;
NDIS_STATUS NdisSwitchAllocateNetBufferListForwardingContext(
[in] NDIS_SWITCH_CONTEXT NdisSwitchContext,
[in, out] PNET_BUFFER_LIST NetBufferList
)
{...}
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, out] NetBufferList
Um ponteiro para uma lista vinculada de estruturas de NET_BUFFER_LIST .
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 pode originar operações de envio de pacotes dentro do caminho de dados do comutador extensível. Por exemplo, a extensão pode enviar pacotes para qualquer porta na opção extensível. Para obter mais informações sobre esse caminho de dados, consulte Caminho de dados do Comutador Extensível do Hyper-V.
Depois que a extensão chama NdisAllocateNetBufferList ou NdisAllocateCloneNetBufferList para criar ou clonar um pacote de seu pool de NET_BUFFER_LIST , a extensão deve chamar a função AllocateNetBufferListForwardingContext . Essa função aloca e inicializa o contexto de encaminhamento de comutador extensível OOB (fora de banda) para a estrutura de NET_BUFFER_LIST especificada. Para obter mais informações sobre esse contexto, consulte Contexto de encaminhamento extensível de comutador extensível do Hyper-V.
A extensão deve seguir estas diretrizes para alocar o contexto de encaminhamento por meio da função AllocateNetBufferListForwardingContext :
-
A extensão chama NdisAllocateNetBufferList para alocar um pacote do pool de NET_BUFFER_LIST da extensão para uma operação de envio ou recebimento pela opção extensível. Antes que a extensão inicialize as portas de origem e destino para o pacote, ela deve chamar AllocateNetBufferListForwardingContext.
Para obter mais informações sobre como especificar portas comutador extensíveis de origem e destino, consulte Gerenciando dados de origem e porta de destino extensíveis do Hyper-V.
- Antes que a extensão chame AllocateNetBufferListForwardingContext, ela deve definir o membro SourceHandle de cada estrutura de NET_BUFFER_LIST alocada para o valor do identificador que identifica a extensão. A extensão recebe esse identificador por meio do parâmetro NdisFilterHandle quando o NDIS chama a função FilterAttach da extensão.
- Quando a operação de envio for concluída, a extensão deverá chamar a função FreeNetBufferListForwardingContext para desalocar os recursos para o contexto de encaminhamento. A extensão deve chamar essa função antes de chamar NdisFreeNetBufferList para retornar o pacote ao pool de NET_BUFFER_LIST .
- Se a extensão estiver clonando um pacote, ela deverá chamar CopyNetBufferListInfo para copiar o contexto de encaminhamento do pacote original para o pacote clonado. A extensão deve fazer isso depois de chamar AllocateNetBufferListForwardingContext.
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
FreeNetBufferListForwardingContext
Comentários
https://aka.ms/ContentUserFeedback.
Em breve: Ao longo de 2024, eliminaremos os problemas do GitHub como o mecanismo de comentários para conteúdo e o substituiremos por um novo sistema de comentários. Para obter mais informações, consulteEnviar e exibir comentários de