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

La extensión de conmutador extensible de Hyper-V llama a la función CopyNetBufferListInfo para copiar el contexto de reenvío fuera de banda (OOB) desde la estructura de NET_BUFFER_LIST de un paquete de origen a la estructura NET_BUFFER_LIST de un paquete de destino. Este contexto incluye el puerto de origen del conmutador extensible y la información del adaptador de red. También se puede copiar la información del puerto de destino del conmutador extensible.

Sintaxis

NDIS_SWITCH_COPY_NET_BUFFER_LIST_INFO NdisSwitchCopyNetBufferListInfo;

NDIS_STATUS NdisSwitchCopyNetBufferListInfo(
  [in]      NDIS_SWITCH_CONTEXT NdisSwitchContext,
  [in, out] PNET_BUFFER_LIST DestNetBufferList,
  [in]      PNET_BUFFER_LIST SrcNetBufferList,
  [in]      UINT32 Flags
)
{...}

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. Cuando la extensión llama a NdisFGetOptionalSwitchHandlers, este identificador se devuelve a través del parámetro NdisSwitchContext .

[in, out] DestNetBufferList

Puntero a una estructura de NET_BUFFER_LIST para el paquete de destino al que se copia el contexto de reenvío de conmutador extensible.

[in] SrcNetBufferList

Puntero a una estructura de NET_BUFFER_LIST para el paquete de origen desde el que se copia el contexto de reenvío de conmutador extensible.

[in] Flags

Valor UINT32. Cuando se especifica la marca NDIS_SWITCH_COPY_NBL_INFO_FLAGS_PRESERVE_DESTINATIONS, la función copia los puertos de destino del conmutador extensible del paquete de origen al paquete de destino.

Los datos contenidos en la unión de NDIS_SWITCH_FORWARDING_DETAIL_NET_BUFFER_LIST_INFO del paquete de origen siempre se copian en el contexto de reenvío de conmutador extensible en el paquete de destino. Estos datos incluyen los identificadores de puerto de origen y el índice de la conexión del adaptador de red desde la que se originó el paquete. Según el número de puertos de destino de conmutador extensible que se copian en el paquete de destino, el miembro NumAvailableDestinations de la unión NDIS_SWITCH_FORWARDING_DETAIL_NET_BUFFER_LIST_INFO se actualiza en el paquete de destino.

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

Valor devuelto

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

Comentarios

La extensión de conmutador extensible llama a la función CopyNetBufferListInfo para copiar los datos de OOB de un paquete de origen a un paquete de destino. Estos datos incluyen lo siguiente:

  • Datos de la matriz NetBufferListInfo de la estructura de NET_BUFFER_LIST del paquete de origen.
  • El NDIS_SWITCH_FORWARDING_DETAIL_NET_BUFFER_LIST_INFO datos del contexto de reenvío extensible del paquete de origen.
  • Los datos de los puertos de destino de conmutador extensible del contexto de reenvío extensible del paquete de origen.
    Nota Estos datos solo se copian si se especifica la marca NDIS_SWITCH_COPY_NBL_INFO_FLAGS_PRESERVE_DESTINATIONS.
     
Antes de que la extensión llame a CopyNetBufferListInfo, debe preparar la estructura de NET_BUFFER_LIST del paquete de destino siguiendo estos pasos:
  1. La extensión debe inicializar primero una estructura de NET_BUFFER_LIST para el paquete de destino que se deriva de la estructura de NET_BUFFER_LIST del paquete de origen.

    Por ejemplo, la extensión puede llamar a NdisAllocateCloneNetBufferList para crear una copia completa del paquete de origen. La extensión también puede llamar a NdisAllocateFragmentNetBufferList para crear una copia de solo un fragmento del paquete de origen. Para obtener más información, vea Estructuras de NET_BUFFER_LIST derivadas.

  2. La extensión debe llamar a la función AllocateNetBufferListForwardingContext para asignar el contexto de reenvío de conmutador extensible para el paquete de destino. Estos datos se usan para almacenar la información de reenvío extensible del conmutador OOB, como los puertos de origen y destino de un paquete.
Nota Si la extensión crea o clona el paquete de origen, la extensión debe haber llamado previamente a la función AllocateNetBufferListForwardingContext para el paquete. Los paquetes de origen que la extensión filtra a través de la pila de controladores de conmutador extensible ya contienen un contexto de reenvío de conmutador extensible asignado.
 

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

NDIS_SWITCH_FORWARDING_DETAIL_NET_BUFFER_LIST_INFO

NET_BUFFER_LIST

NdisAllocateCloneNetBufferList

NdisAllocateFragmentNetBufferList

NdisFGetOptionalSwitchHandlers