NDIS_SWITCH_GET_NET_BUFFER_LIST_SWITCH_CONTEXT función de devolución de llamada (ndis.h)

La extensión de conmutador extensible de Hyper-V llama a la función GetNetBufferListSwitchContext para recuperar el contexto de conmutador establecido previamente en el NET_BUFFER_LIST.

Sintaxis

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

Valor NDIS_SWITCH_CONTEXT que contiene el identificador del módulo de conmutador extensible al que está asociada la extensión de conmutador extensible de Hyper-V. Cuando la extensión llama a NdisFGetOptionalSwitchHandlers, este identificador se devuelve a través del parámetro NdisSwitchContext .

[in] NetBufferList

Puntero a una estructura de NET_BUFFER_LIST para un único paquete que contiene el contexto que se va a recuperar.

Nota Esta estructura debe contener un contexto de reenvío de conmutador extensible. Si la extensión ha creado o clonado el paquete, debe haber asignado previamente esta estructura mediante una llamada a la función AllocateNetBufferListForwardingContext.
 

[in] ContextType

Context

Tipo de contexto declarado mediante el NDIS_DECLARE_SWITCH_NET_BUFFER_LIST_CONTEXT_TYPE que se usó al establecer el contexto.

Valor devuelto

NULL si no se encontró ningún contexto en el NET_BUFFER_LIST que coincida con el tipo de contexto especificado. De lo contrario, se devuelve un puntero distinto de NULL al búfer.

Comentarios

Las API SetNetBufferListSwitchContext permiten a las extensiones adjuntar contexto a una NET_BUFFER_LIST en la entrada y recuperarla en la salida. Aun así, las extensiones deben ser resistentes al contexto de entrada que no está presente en la salida. El contexto del modificador no se conserva cuando se clona un NET_BUFFER_LIST, por lo que en escenarios en los que el NET_BUFFER_LIST se clona entre la entrada y la salida, el NET_BUFFER_LIST no tendrá el contexto de modificador original.

La extensión debe administrar la duración del contexto. Un enfoque consiste en asignar el contexto de NET_BUFFER_LIST NDIS (mediante NdisAllocateNetBufferListContext o preconfigurado si la extensión posee el grupo de NET_BUFFER_LIST) y usar SetNetBufferListSwitchContext para asociar un identificador de tipo de contexto con el contexto de NET_BUFFER_LIST NDIS. Cuando se completa el NBL, la extensión puede liberar el contexto de NET_BUFFER_LIST de NDIS (mediante NdisFreeNetBufferListContext o liberar el propio NET_BUFFER_LIST si se originó en la extensión).

Para obtener más información sobre el contexto de reenvío de conmutador extensible, consulte Contexto de reenvío de conmutador extensible de Hyper-V.

Requisitos

Requisito Value
Cliente mínimo compatible Se admite en NDIS 6.30 y versiones posteriores.
Plataforma de destino Escritorio
Encabezado ndis.h (incluya Ndis.h)
IRQL <= DISPATCH_LEVEL

Consulte también

AllocateNetBufferListForwardingContext

GetNetBufferListDestinations

NDIS_SWITCH_PORT_DESTINATION

NET_BUFFER

NET_BUFFER_LIST

NdisFGetOptionalSwitchHandlers

NdisFOidRequest

SetNetBufferListSwitchContext