REMOTE_NDIS_PACKET_MSG
REMOTE_NDIS_PACKET_MSG encapsula los paquetes de datos NDIS para formar un único mensaje de datos.
La concatenación de varios elementos REMOTE_NDIS_PACKET_MSG forma un mensaje de varios paquetes. Cada componente de REMOTE_NDIS_PACKET_MSG individual se construye como se describe a continuación. La diferencia del mensaje de paquete único es que el campo MessageLength de cada encabezado de REMOTE_NDIS_PACKET_MSG incluye algunos bytes de relleno adicionales. Estos bytes de relleno se anexan a todos, pero el último REMOTE_NDIS_PACKET_MSG para que el REMOTE_NDIS_PACKET_MSG correcto comience en un límite de bytes adecuado. En el caso de los mensajes enviados desde el dispositivo al host, este relleno debe dar lugar a cada REMOTE_NDIS_PACKET_MSG a partir de un desplazamiento de bytes que sea un múltiplo de 8 bytes a partir del principio del mensaje de varios paquetes. Cuando el host envía un mensaje de varios paquetes al dispositivo, se adhiere a PacketAlignmentFactor que especifica el dispositivo.
El formato REMOTE_NDIS_PACKET_MSG se define en la tabla siguiente.
Offset | Size | Campo | Descripción |
---|---|---|---|
0 |
4 |
MessageType |
Especifica el tipo de mensaje que se envía. Establezca en 0x1. |
4 |
4 |
MessageLength |
Longitud del mensaje en bytes, incluidos los datos de paquetes anexados, los datos de OOB, los datos de información por paquete y el relleno interno y externo. |
8 |
4 |
DataOffset |
Especifica el desplazamiento en bytes desde el inicio del campo DataOffset de este mensaje hasta el inicio de los datos. Se trata de un entero múltiplo de 4. |
12 |
4 |
DataLength |
Especifica el número de bytes en el contenido de datos de este mensaje. |
16 |
4 |
OOBDataOffset |
Especifica el desplazamiento en bytes del primer registro de datos OOB desde el inicio del campo DataOffset de este mensaje. Se establece en cero si no hay datos OOB. De lo contrario, es un entero múltiplo de 4. |
20 |
4 |
OOBDataLength |
Especifica en bytes la longitud total de los datos OOB. |
24 |
4 |
NumOOBDataElements |
Especifica el número de registros OOB en este mensaje. |
28 |
4 |
PerPacketInfoOffset |
Especifica en bytes el desplazamiento desde el principio del campo DataOffset en el mensaje de datos REMOTE_NDIS_PACKET_MSG al inicio del primer registro de datos de información por paquete. Se establece en cero si no hay datos por paquete. De lo contrario, es un entero múltiplo de 4. |
32 |
4 |
PerPacketInfoLength |
Especifica en bytes la longitud total de la información por paquete contenida en este mensaje. |
36 |
4 |
VcHandle |
Reservado para dispositivos orientados a la conexión. Establecer en cero. |
40 |
4 |
Reservado |
Reservado. Establecer en cero. |
El formato de un único registro de datos OOB se indica en la tabla siguiente.
Offset | Size | Campo | Descripción |
---|---|---|---|
0 |
4 |
Size |
Longitud en bytes de este encabezado OOB y datos OOB anexados y relleno. Se trata de un entero múltiplo de 4. |
4 |
4 |
Tipo |
Ninguno definido para dispositivos 802.3. |
8 |
4 |
ClassInformationOffset |
Desplazamiento de bytes desde el principio de este registro de datos OOB hasta el principio de los datos de OOB. |
(N) |
... |
Datos OOB |
Datos OOB; Consulte la documentación del Kit de desarrollo de controladores de Microsoft Windows (DDK) para obtener más información. |
Nota (N) es igual al valor de ClassInformationOffset.
En la tabla siguiente se define el formato de un registro de datos de información por paquete.
Offset | Size | Campo | Descripción |
---|---|---|---|
0 |
4 |
Size |
Longitud en bytes de este encabezado por paquete y datos anexados por paquete y relleno. Este valor es un entero múltiplo de 4. |
4 |
4 |
Tipo |
Establezca en uno de los valores legales de NDIS_PER_PACKET_INFO_FROM_PACKET, como se describe en el Kit de desarrollo de controladores (DDK) de Windows 2000. |
8 |
4 |
PerPacketInformationOffset |
Desplazamiento de bytes desde el principio de este registro de datos de información por paquete hasta el principio de los datos de información por paquete. |
(N) |
... |
datos de Per-Packet |
datos de Per-Packet; consulte la documentación de DDK de Windows 2000 para obtener más información. |
Nota (N) es igual al valor de PerPacketInformationOffset.
Observaciones
Cada REMOTE_NDIS_PACKET_MSG puede contener uno o varios registros de datos OOB. NumOOBDataElements indica el número de registros de datos OOB en este mensaje. Los registros de datos OOB deben aparecer en secuencia. El campo OOBDataLength indica la longitud en bytes del bloque de datos OOB completo. El campo OOBDataOffset indica el desplazamiento de bytes desde el principio del campo DataOffset hasta el principio del bloque de datos OOB. Para obtener más información sobre los datos de paquetes OOB, consulta la especificación NDIS en el DDK de Windows 2000.
Si se adjuntan varios bloques de datos OOB a un mensaje de REMOTE_NDIS_PACKET_MSG, cada registro de datos OOB subsiguiente debe seguir inmediatamente los datos del registro OOB anterior.
Actualmente no hay información de OOB definida para dispositivos 802.3.
Cada REMOTE_NDIS_PACKET_MSG puede contener uno o varios registros de datos por paquete-información. La información por paquete se usa para transmitir metadatos de paquetes, como la suma de comprobación tcp. El campo PerPacketInfoOffset indica el desplazamiento de bytes desde el principio del campo DataOffset hasta el principio del registro de datos de información por paquete. El campo OOBDataLength indica la longitud de bytes del registro de datos de información por paquete. Para obtener más información sobre los datos de información por paquete, consulta DDK de Windows 2000.
Si hay varios bloques de datos de información por paquete, cada registro de datos de información por paquete posterior debe seguir inmediatamente los datos del registro de información por paquete anterior.
Un dispositivo NDIS remoto debe enviar y recibir datos a través de paquetes de datos NDIS. El bus que usa el dispositivo determina cómo se pasan estos paquetes del host al dispositivo y al dispositivo al host. Podría ser memoria compartida o, en el caso de las canalizaciones USB, Isoch y Bulk. Los paquetes NDIS también pueden contener datos fuera de banda (OOB), así como los datos que pasan por la red.
Un dispositivo NDIS remoto transfiere paquetes NDIS, encapsulados como REMOTE_NDIS_PACKET_MSG a través del canal de datos. Tanto los dispositivos sin conexión (como 802.3) como los dispositivos orientados a la conexión (como ATM) usan la misma estructura de mensajes de paquete para facilitar el código común para el procesamiento de paquetes. Cada mensaje de REMOTE_NDIS_PACKET_MSG contiene información sobre una sola unidad de datos de red (por ejemplo, un marco Ethernet 802.3).
Para obtener más información sobre los datos de paquetes fuera de banda o los datos de información por paquete, consulta las secciones NDIS de DDK de Windows 2000.
Requisitos
Versión |
Disponible en Microsoft Windows XP y versiones posteriores de los sistemas operativos Windows. También está disponible en Windows 2000 como archivos binarios redistribuibles. |
Encabezado |
Rndis.h (incluya Rndis.h) |