Compartir a través de


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

La función AllocateNetBufferListForwardingContext prepara una estructura de NET_BUFFER_LIST para las operaciones de envío o recepción dentro del conmutador extensible.

Sintaxis

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

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

[in, out] NetBufferList

Puntero a una lista vinculada de estructuras de NET_BUFFER_LIST.

Valor devuelto

Si la llamada se realiza correctamente, la función devuelve NDIS_STATUS_SUCCESS. De lo contrario, devuelve un NDIS_STATUS_código de error xxx definido en Ndis.h.

Observaciones

La extensión de conmutador extensible puede originar operaciones de envío de paquetes dentro de la ruta de acceso de datos del conmutador extensible. Por ejemplo, la extensión puede enviar paquetes a cualquier puerto del conmutador extensible. Para obtener más información sobre esta ruta de acceso de datos, consulte Hyper-V ruta de acceso de datos de conmutador extensible.

Una vez que la extensión llama a NdisAllocateNetBufferList o NdisAllocateCloneNetBufferList para crear o clonar un paquete desde su grupo de NET_BUFFER_LIST, la extensión debe llamar a la función AllocateNetBufferListForwardingCon text. Esta función asigna e inicializa el contexto de reenvío extensible de conmutador fuera de banda (OOB) para la estructura de NET_BUFFER_LIST especificada. Para obtener más información sobre este contexto, vea Hyper-V contexto de reenvío extensible de conmutadores.

La extensión debe seguir estas instrucciones para asignar el contexto de reenvío a través de la función de AllocateNetBufferListForwardingContext:

  • La extensión llama a NdisAllocateNetBufferList para asignar un paquete del grupo de NET_BUFFER_LIST de la extensión para una operación de envío o recepción a través del conmutador extensible. Antes de que la extensión inicialice los puertos de origen y destino del paquete, debe llamar a AllocateNetBufferListForwardingContext.

    Para obtener más información sobre cómo especificar puertos de conmutador extensible de origen y destino, vea Administración de Hyper-V origen de conmutador extensible y datos de puerto de destino.

  • Antes de que la extensión llame a AllocateNetBufferListForwardingContext, debe establecer el sourceHandle miembro de cada estructura de NET_BUFFER_LIST asignada al valor de identificador que identifica la extensión. La extensión recibe este identificador a través del parámetro NdisFilterHandle cuando NDIS llama a la función FilterAttach de la extensión.
  • Una vez completada la operación de envío, la extensión debe llamar a la función FreeNetBufferListForwardingContext para desasignar los recursos para el contexto de reenvío. La extensión debe llamar a esta función antes de llamar a NdisFreeNetBufferList para devolver el paquete a su grupo de NET_BUFFER_LIST.
  • Si la extensión está clonando un paquete, debe llamar a CopyNetBufferListInfo para copiar el contexto de reenvío del paquete original al paquete clonado. La extensión debe hacerlo después de llamar a AllocateNetBufferListForwardingContext.
Para obtener más información sobre cómo originar las operaciones de envío, consulte Filtrar módulo enviar y recibir operaciones.
Nota Si el parámetro NetBufferList contiene un puntero a una lista vinculada de varias estructuras de NET_BUFFER_LIST, solo la primera estructura NET_BUFFER_LIST de la lista tiene asignado un contexto de reenvío.
 

Requisitos

Requisito Valor
cliente mínimo admitido Compatible con NDIS 6.30 y versiones posteriores.
de la plataforma de destino de Escritorio
encabezado de ndis.h (incluya Ndis.h)
irQL <= DISPATCH_LEVEL

Consulte también

CopyNetBufferListInfo

FilterAttach

FreeNetBufferListForwardingContext

NET_BUFFER

NET_BUFFER_LIST

NdisAllocateNetBufferList

NdisFGetOptionalSwitchHandlers

NdisFreeNetBufferList