Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
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 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.
Valor de retorno
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.
Observações
A extensão de comutador extensível pode originar operações de envio de pacote no caminho de dados de comutador extensível. Por exemplo, a extensão pode enviar pacotes para qualquer porta no comutador extensível. Para obter mais informações sobre esse caminho de dados, consulte Hyper-Vde Caminho de Dados do Comutador Extensível.
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 extensível de comutador fora da banda (OOB) para a estrutura de NET_BUFFER_LIST especificada. Para obter mais informações sobre esse contexto, consulte Hyper-V contexto de encaminhamento extensível de comutador.
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 pelo comutador extensível. Antes que a extensão inicialize as portas de origem e de destino para o pacote, ela deve chamar AllocateNetBufferListForwardingContext.
Para obter mais informações sobre como especificar portas de comutador extensível de origem e destino, consulte Gerenciando Hyper-Vextensíveis de dados de origem e porta de destino do comutador extensível.
- Antes que a extensão chame allocateNetBufferListForwardingContext, ela deve definir o membro SourceHandle de cada estrutura de NET_BUFFER_LIST alocada para o valor de 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 |
---|---|
de cliente com suporte mínimo | Com suporte no NDIS 6.30 e posterior. |
da Plataforma de Destino | Área de trabalho |
cabeçalho | ndis.h (inclua Ndis.h) |
IRQL | <= DISPATCH_LEVEL |
Consulte também
FreeNetBufferListForwardingContext