Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
La unión NDIS_SWITCH_FORWARDING_DETAIL_NET_BUFFER_LIST_INFO especifica la información para reenviar un paquete a uno o varios puertos de conmutador extensibles Hyper-V.
Esta información se incluye en los datos fuera de banda (OOB) de la estructura NET_BUFFER_LIST del paquete.
Sintaxis
typedef union _NDIS_SWITCH_FORWARDING_DETAIL_NET_BUFFER_LIST_INFO {
UINT64 AsUINT64;
struct {
UINT32 NumAvailableDestinations : 16;
UINT32 SourcePortId : 16;
UINT32 SourceNicIndex : 8;
UINT32 NativeForwardingRequired : 1;
#if ...
UINT32 Reserved1 : 1;
#else
UINT32 Reserved1 : 2;
#endif
UINT32 IsPacketDataSafe : 1;
UINT32 SafePacketDataSize : 12;
UINT32 IsPacketDataUncached : 1;
UINT32 IsSafePacketDataUncached : 1;
UINT32 Reserved2 : 7;
};
} NDIS_SWITCH_FORWARDING_DETAIL_NET_BUFFER_LIST_INFO, *PNDIS_SWITCH_FORWARDING_DETAIL_NET_BUFFER_LIST_INFO;
Miembros
AsUINT64
Valor completo de NDIS_SWITCH_FORWARDING_DETAIL_NET_BUFFER_LIST_INFO de 64 bits.
NumAvailableDestinations
Valor que especifica el número de elementos de puertos de destino de conmutador extensible sin usar dentro de una estructura de NET_BUFFER_LIST. Para obtener más información, vea la sección Comentarios.
SourcePortId
Identificador del puerto de conmutador extensible de origen desde el que se originó el NET_BUFFER_LIST.
SourceNicIndex
Valor UINT32 que especifica el índice del adaptador de red de origen que está conectado al puerto de conmutador extensible especificado por el miembro SourcePortId.
Para obtener más información sobre este valor de índice, vea valores de índice del adaptador de red.
NativeForwardingRequired
Si este miembro se establece en TRUE, el paquete es un paquete NVGRE y el componente Hyper-V Network Virtualization (HNV) del conmutador extensible de Hyper-V reenviará este paquete. Para obtener más información, consulte de reenvío híbrido.
Esta marca no debe escribirse en ninguna extensión.
Reserved1
Este miembro está reservado para su uso futuro por NDIS.
Este miembro está reservado para su uso futuro por NDIS.
IsPacketDataSafe
Si este miembro se establece en TRUE, todos los datos del paquete proceden de la memoria del host de confianza.
SafePacketDataSize
Valor que especifica el número de bytes consecutivos en los datos del paquete que se encuentran en la memoria de host de confianza. Este valor se encuentra en unidades de bytes desde el principio de los datos del paquete. El resto de los datos del paquete (si los hay) después del SafePacketDataSize valor se encuentra en memoria compartida que el Hyper-V las particiones secundarias y primarias acceden a ellos.
Para obtener más información, vea la sección Comentarios.
IsPacketDataUncached
Si no se establece esta marca, se almacenan en caché todos los datos del paquete. Si se establece, parte o todos los datos se no almacenar en caché. Cuando se establece, compruebe el campo IsSafePacketDataUncached para ver si al menos la parte SafePacketData está almacenada en caché.
IsSafePacketDataUncached
Si se establece la marca IsPacketDataUncached, este campo indica si la parte SafePacketData del paquete se almacena en caché. Si es así, consulte el campo SafePacketDataSize para el número de bytes almacenados en caché.
Reserved2
Este miembro está reservado para su uso futuro por NDIS.
Observaciones
Las extensiones de conmutador extensible pueden usar la macro NET_BUFFER_LIST_SWITCH_FORWARDING_DETAIL para acceder a la unión de NDIS_SWITCH_FORWARDING_DETAIL_NET_BUFFER_LIST_INFO en una estructura de NET_BUFFER_LIST.
El miembro NumAvailableDestinations de la unión de NDIS_SWITCH_FORWARDING_DETAIL_NET_BUFFER_LIST_INFO especifica el número de elementos de puerto de destino de conmutador extensible sin usar dentro de una estructura de NET_BUFFER_LIST. Cada puerto de destino de conmutador extensible se especifica mediante un elemento NDIS_SWITCH_PORT_DESTINATION dentro de la estructura NDIS_SWITCH_FORWARDING_DESTINATION_ARRAY de una estructura de NET_BUFFER_LIST. La extensión de conmutador extensible llama a GetNetBufferListDestinations para obtener el NDIS_SWITCH_FORWARDING_DESTINATION_ARRAY actual en una estructura de NET_BUFFER_LIST.
El miembro NativeForwardingRequired especifica si el paquete es un paquete NVGRE o no. Si es TRUE, el paquete es un paquete NVGRE y la extensión de reenvío no determina la matriz de puertos de destino de reenvío del paquete, aunque puede agregar o excluir puertos de destino en la matriz. Para obtener más información, consulte de reenvío híbrido.
La marca IsPacketDataUncached puede ayudar a que las extensiones de conmutador extensible determinen si parte o todos los datos del paquete se almacenan en caché o no. Si se establece esta marca, parte o todos los datos se no almacenados en caché y la marca de IsSafePacketDataUncached indica a la extensión si la parte de datos de paquetes seguros está almacenada en caché. Si los datos de paquetes seguros se almacenan en caché, el miembro SafePacketDataSize especifica cuántos bytes se almacenan en caché.
SafePacketDataSize especifica el tamaño de los datos de paquete ubicados en local o de confianza , memoria en el sistema operativo primario de la partición primaria de Hyper-V. La partición secundaria no puede acceder a esta memoria. Por lo tanto, se considera "seguro" de las actualizaciones no sincronizadas por el sistema operativo invitado que se ejecuta en esa partición.
Si una extensión de conmutador extensible requiere más espacio de confianza para inspeccionar los datos del paquete, debe seguir estos pasos:
- La extensión debe duplicar la estructura NET_BUFFER_LIST del paquete asignando una estructura de NET_BUFFER_LIST y NET_BUFFER. A continuación, la extensión llama a NdisCopyFromNetBufferToNetBuffer para duplicar la estructura de NET_BUFFER del paquete. Si esta función se completa correctamente, los datos del paquete se copian en la memoria de confianza.
- La extensión debe llamar a copyNetBufferListInfo para copiar los datos de OOB del paquete en el paquete duplicado.
- Una vez duplicado el paquete original, la extensión debe obtener la unión NDIS_SWITCH_FORWARDING_DETAIL_NET_BUFFER_LIST_INFO en el paquete duplicado mediante la macro NET_BUFFER_LIST_SWITCH_FORWARDING_DETAIL. La extensión debe establecer el miembro IsPacketDataSafe en TRUE.
Requisitos
Requisito | Valor |
---|---|
cliente mínimo admitido | Compatible con NDIS 6.30 y versiones posteriores. |
encabezado de | ndis.h (incluya Ndis.h) |
Consulte también
reenviar paquetes a Hyper-V puertos de conmutador extensible
reenviar paquetes a adaptadores de red físicos
NDIS_SWITCH_FORWARDING_DESTINATION_ARRAY
NET_BUFFER_LIST_SWITCH_FORWARDING_DETAIL
Información general sobre el de conmutador extensible de Hyper-V