Compartir a través de


estructura NDIS_SWITCH_FORWARDING_DESTINATION_ARRAY (ndis.h)

La estructura de NDIS_SWITCH_FORWARDING_DESTINATION_ARRAY especifica una matriz de puertos de destino de conmutador extensible de Hyper-V para un paquete. Cada elemento de la matriz tiene el formato de estructura NDIS_SWITCH_PORT_DESTINATION .

Esta información se incluye en los datos fuera de banda (OOB) de la estructura NET_BUFFER_LIST del paquete.

Sintaxis

typedef struct _NDIS_SWITCH_FORWARDING_DESTINATION_ARRAY {
  NDIS_OBJECT_HEADER Header;
  UINT32             ElementSize;
  UINT32             NumElements;
  UINT32             NumDestinations;
  PVOID              FirstElement;
} NDIS_SWITCH_FORWARDING_DESTINATION_ARRAY, *PNDIS_SWITCH_FORWARDING_DESTINATION_ARRAY;

Miembros

Header

Tipo, revisión y tamaño de la estructura NDIS_SWITCH_FORWARDING_DESTINATION_ARRAY . Este miembro tiene formato de estructura NDIS_OBJECT_HEADER .

El miembro Type de Header debe establecerse en NDIS_OBJECT_TYPE_DEFAULT. Para especificar la versión de la estructura de NDIS_SWITCH_FORWARDING_DESTINATION_ARRAY , el miembro Revision de Header debe establecerse en el siguiente valor:

NDIS_SWITCH_FORWARDING_DESTINATION_ARRAY_REVISION_1

Versión original para NDIS 6.30 y versiones posteriores.

Establezca el miembro Size en NDIS_SIZEOF_NDIS_SWITCH_FORWARDING_DESTINATION_ARRAY_REVISION_1.

ElementSize

Valor de ULONG que especifica el tamaño, en bytes, de cada elemento NDIS_SWITCH_PORT_DESTINATION que sigue a la estructura NDIS_SWITCH_FORWARDING_DESTINATION_ARRAY .

NumElements

Valor ULONG que especifica el número total de elementos NDIS_SWITCH_PORT_DESTINATION en la estructura NDIS_SWITCH_FORWARDING_DESTINATION_ARRAY .

El valor del miembro NumElements especifica el número de elementos NDIS_SWITCH_PORT_DESTINATION usados actualmente (según lo especificado por el miembro NumDestinations ) más el número de elementos que están disponibles para los nuevos puertos de destino. El número de elementos NDIS_SWITCH_PORT_DESTINATION sin usar de la estructura NDIS_SWITCH_FORWARDING_DESTINATION_ARRAY se calcula mediante (NumElements - NumDestinations).

NumDestinations

Valor de ULONG que especifica el número de elementos NDIS_SWITCH_PORT_DESTINATION en la estructura NDIS_SWITCH_FORWARDING_DESTINATION_ARRAY que especifica los destinos de puerto.

Nota Si NumElements se establece en cero, se omite este miembro.
 

FirstElement

Puntero al primer elemento NDIS_SWITCH_PORT_DESTINATION del búfer que contiene la estructura NDIS_SWITCH_FORWARDING_DESTINATION_ARRAY y todos sus elementos.

Comentarios

La extensión de conmutador extensible puede hacer lo siguiente con los puertos de destino en la estructura de NET_BUFFER_LIST de un paquete:

  • Consulte los puertos de destino actuales en el conmutador extensible al que se reenviará el paquete.

    La extensión de conmutador extensible llama a la función GetNetBufferListDestinations para obtener la matriz de destinos de puerto de un paquete. GetNetBufferListDestinations devuelve un puntero a la estructura NDIS_SWITCH_FORWARDING_DESTINATION_ARRAY del parámetro Destination .

    Para obtener más información, vea Consulta de los datos de puerto de destino de conmutador extensible de un paquete.

  • Agregue o modifique los puertos de destino del paquete.

    Después de consultar los puertos de destino actuales para el paquete, la extensión de conmutador extensible puede hacer lo siguiente:

    • Una extensión de reenvío puede agregar nuevos puertos de destino a la estructura NDIS_SWITCH_FORWARDING_DESTINATION_ARRAY .
    • Una extensión de filtrado o reenvío puede modificar los datos dentro de una estructura de NDIS_SWITCH_PORT_DESTINATION para un puerto de destino.
      Nota Una extensión de filtrado solo puede cambiar el miembro IsExcluded de esta estructura. Una extensión de reenvío también puede cambiar los miembros PreserveVLAN y PreservePriority .
       
    Si la extensión agrega o modifica destinos de puerto, debe llamar a UpdateNetBufferListDestinations para confirmar los cambios en los puertos de destino en los datos OOB del paquete en la estructura de NET_BUFFER_LIST .

    Para obtener más información, consulte Administración de datos de puerto de destino de conmutador extensible de Hyper-V.

Las extensiones de conmutador extensible pueden usar la macro de NDIS_SWITCH_PORT_DESTINATION_AT_ARRAY_INDEX para acceder a NDIS_SWITCH_PORT_DESTINATION elementos de una matriz NDIS_SWITCH_FORWARDING_DESTINATION_ARRAY .

Requisitos

Requisito Value
Cliente mínimo compatible Compatible con NDIS 6.30 y versiones posteriores.
Encabezado ndis.h (incluya Ndis.h)

Consulte también

Agregar datos de puerto de destino de conmutador extensible a un paquete

Exclusión de la entrega de paquetes a puertos de destino de conmutador extensible

Reenvío de extensiones

GetNetBufferListDestinations

Reenvío híbrido

NDIS_OBJECT_HEADER

NDIS_SWITCH_PORT_DESTINATION

NDIS_SWITCH_PORT_DESTINATION_AT_ARRAY_INDEX

NET_BUFFER_LIST

Información general sobre el conmutador extensible de Hyper-V

UpdateNetBufferListDestinations