NDIS_SWITCH_GET_NET_BUFFER_LIST_DESTINATIONS função de retorno de chamada (ndis.h)
A função GetNetBufferListDestinations retorna as portas de destino de comutador extensível do Hyper-V de um pacote especificado por uma estrutura de NET_BUFFER_LIST .
Sintaxe
NDIS_SWITCH_GET_NET_BUFFER_LIST_DESTINATIONS NdisSwitchGetNetBufferListDestinations;
void NdisSwitchGetNetBufferListDestinations(
[in] NDIS_SWITCH_CONTEXT NdisSwitchContext,
[in, out] PNET_BUFFER_LIST NetBufferList,
[out] PNDIS_SWITCH_FORWARDING_DESTINATION_ARRAY *Destinations
)
{...}
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 .
[out] Destinations
Um ponteiro para uma estrutura NDIS_SWITCH_FORWARDING_DESTINATION_ARRAY . Essa estrutura especifica as portas de destino do comutador extensível do pacote.
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 GetNetBufferListDestinations para obter uma matriz das portas de destino do comutador extensível para um pacote. Se a função retornar com êxito, a matriz será obtida por meio do parâmetro Destinations , que contém um ponteiro para uma estrutura NDIS_SWITCH_FORWARDING_DESTINATION_ARRAY . Cada elemento nessa matriz é formatado como uma estrutura NDIS_SWITCH_PORT_DESTINATION que especifica uma porta de destino para o pacote.
Se a extensão estiver alocando um pacote, a extensão deverá primeiro chamar a função AllocateNetBufferListForwardingContext antes de chamar GetNetBufferListDestinations. A função AllocateNetBufferListForwardingContext aloca o contexto de encaminhamento de comutador extensível para o pacote. Esse contexto contém os dados de comutador extensível OOB (fora de banda) que incluem a estrutura NDIS_SWITCH_FORWARDING_DESTINATION_ARRAY .
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.
Depois que a extensão tiver obtido a matriz, ela poderá fazer o seguinte:
-
Aloque espaço para elementos de NDIS_SWITCH_PORT_DESTINATION adicionais na matriz.
Para obter mais informações, consulte Adicionando dados extensíveis de porta de destino de comutador a um pacote.
-
Modifique as informações da porta de destino nos elementos NDIS_SWITCH_PORT_DESTINATION da matriz. Por exemplo, a extensão pode especificar para qual porta o pacote deve ser encaminhado ou pode excluir um pacote de ser encaminhado para uma porta especificada.
Para obter mais informações, confira Modificando os dados extensíveis da porta de origem do comutador extensível 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