Compartir a través de


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

La función AddNetBufferListDestination agrega un único puerto de destino para un paquete especificado por una estructura NET_BUFFER_LIST .

Sintaxis

NDIS_SWITCH_ADD_NET_BUFFER_LIST_DESTINATION NdisSwitchAddNetBufferListDestination;

NDIS_STATUS NdisSwitchAddNetBufferListDestination(
  [in]      NDIS_SWITCH_CONTEXT NdisSwitchContext,
  [in, out] PNET_BUFFER_LIST NetBufferList,
  [in]      PNDIS_SWITCH_PORT_DESTINATION Destination
)
{...}

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, out] NetBufferList

Puntero a una estructura de NET_BUFFER_LIST para un paquete.

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] Destination

Puntero a una estructura NDIS_SWITCH_PORT_DESTINATION . Esta estructura especifica el puerto de conmutador extensible de destino al que se reenviará el paquete.

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 de reenvío llama a AddNetBufferListDestination para definir un único puerto de destino de conmutador extensible para un paquete. La extensión especifica este puerto inicializando una estructura de NDIS_SWITCH_PORT_DESTINATION . La extensión establece el parámetro Destination en un puntero a esta estructura. Para obtener más información sobre cómo especificar un puerto de destino de conmutador extensible, consulte Administración de datos de puerto de destino de conmutador extensible de Hyper-V.

Nota Por motivos de rendimiento, la extensión no debe llamar a los paquetes AddNetBufferListDestination con varios puertos de destino.
 
La extensión debe seguir estas instrucciones antes de llamar a AddNetBufferListDestination:
  • Solo las extensiones de reenvío pueden llamar a AddNetBufferListDestination para agregar un puerto de destino para un paquete. Para obtener más información sobre este tipo de extensión, vea Reenvío de extensiones.
  • Si la extensión de reenvío se origina en un paquete con un puerto de destino, la extensión primero debe llamar a la función AllocateNetBufferListForwardingContext . Esta función asigna el contexto de reenvío de conmutador extensible para el paquete. Estos datos contienen los puertos de origen y destino de conmutador extensible dentro de la información fuera de banda (OOB) del paquete.

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

  • Una vez que la extensión modifica la información del puerto de destino en la estructura NDIS_SWITCH_PORT_DESTINATION , llama a AddNetBufferListDestination para confirmar los cambios en la estructura de NET_BUFFER_LIST del paquete.
    Nota Por motivos de rendimiento, la extensión no debe llamar a la función UpdateNetBufferListDestinations para confirmar los cambios del paquete.
     
Nota Una vez que la extensión de reenvío confirma los cambios de los puertos de destino en el contexto de reenvío, no se pueden quitar los puertos de destino y solo se puede cambiar el miembro IsExcluded de la estructura NDIS_SWITCH_PORT_DESTINATION de un puerto de destino. Para obtener más información, vea Excluir la entrega de paquetes a puertos de destino de conmutador extensible.
 

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

GetNetBufferListDestinations

NDIS_SWITCH_PORT_DESTINATION

NET_BUFFER

NET_BUFFER_LIST

NdisFGetOptionalSwitchHandlers

UpdateNetBufferListDestinations