Compartilhar via


REMOTE_NDIS_PACKET_MSG

REMOTE_NDIS_PACKET_MSG encapsula pacotes de dados NDIS para formar uma única mensagem de dados.

Concatenar vários elementos REMOTE_NDIS_PACKET_MSG forma uma mensagem multipacote. Cada componente de REMOTE_NDIS_PACKET_MSG individual é construído conforme descrito abaixo. A diferença da mensagem de pacote único é que o campo MessageLength em cada cabeçalho REMOTE_NDIS_PACKET_MSG inclui alguns bytes de preenchimento adicionais. Esses bytes de preenchimento são acrescentados a todos, exceto ao último REMOTE_NDIS_PACKET_MSG para que o REMOTE_NDIS_PACKET_MSG bem-sucedido comece em um limite de bytes apropriado. Para mensagens enviadas do dispositivo para o host, esse preenchimento deve resultar em cada REMOTE_NDIS_PACKET_MSG começando em um deslocamento de bytes que é um múltiplo de 8 bytes a partir do início da mensagem multipacket. Quando o host enviar uma mensagem multipacote para o dispositivo, ele seguirá o PacketAlignmentFactor especificado pelo dispositivo.

O formato REMOTE_NDIS_PACKET_MSG é definido na tabela a seguir.

Deslocamento Tamanho Campo Descrição

0

4

MessageType

Especifica o tipo de mensagem que está sendo enviada. Defina como 0x1.

4

4

MessageLength

Comprimento da mensagem em bytes, incluindo dados de pacotes acrescentados, dados OOB, dados de informações por pacote e preenchimento interno e externo.

8

4

Dataoffset

Especifica o deslocamento em bytes desde o início do campo DataOffset dessa mensagem até o início dos dados. Esse é um múltiplo inteiro de 4.

12

4

DataLength

Especifica o número de bytes no conteúdo de dados desta mensagem.

16

4

OOBDataOffset

Especifica o deslocamento em bytes do primeiro registro de dados OOB desde o início do campo DataOffset dessa mensagem. Defina como zero se não houver dados OOB. Caso contrário, esse é um múltiplo inteiro de 4.

20

4

OOBDataLength

Especifica em bytes o comprimento total dos dados OOB.

24

4

NumOOBDataElements

Especifica o número de registros OOB nesta mensagem.

28

4

PerPacketInfoOffset

Especifica em bytes o deslocamento desde o início do campo DataOffset na mensagem de dados REMOTE_NDIS_PACKET_MSG até o início do primeiro registro de dados de informações por pacote. Defina como zero se não houver dados por pacote. Caso contrário, esse é um múltiplo inteiro de 4.

32

4

PerPacketInfoLength

Especifica em bytes o comprimento total das informações por pacote contidas nesta mensagem.

36

4

VcHandle

Reservado para dispositivos orientados à conexão. Defina como zero.

40

4

Reservado

Reservado. Defina como zero.

O formato de um único registro de dados OOB é indicado na tabela a seguir.

Deslocamento Tamanho Campo Descrição

0

4

Tamanho

Comprimento em bytes desse cabeçalho OOB e dados de OOB anexados e preenchimento. Esse é um múltiplo inteiro de 4.

4

4

Tipo

Nenhum definido para dispositivos 802.3.

8

4

ClassInformationOffset

O deslocamento de bytes do início desse registro de dados OOB para o início dos dados OOB.

(N)

...

Dados OOB

Dados OOB; consulte a documentação do DDK (Microsoft Windows Driver Development Kit) para obter mais informações.

Observação (N) é igual ao valor de ClassInformationOffset.

A tabela a seguir define o formato de um registro de dados de informações por pacote.

Deslocamento Tamanho Campo Descrição

0

4

Tamanho

Comprimento em bytes desse cabeçalho por pacote e dados por pacote e preenchimento acrescentados por pacote. Esse valor é um múltiplo inteiro de 4.

4

4

Tipo

Defina como um dos valores legais para NDIS_PER_PACKET_INFO_FROM_PACKET, conforme descrito no DDK (Kit de Desenvolvimento de Driver) do Windows 2000.

8

4

PerPacketInformationOffset

O deslocamento de bytes desde o início desse registro de dados de informações por pacote até o início dos dados de informações por pacote.

(N)

...

dados do Per-Packet

Per-Packet Dados; Consulte a documentação do DDK do Windows 2000 para obter mais informações.

Observação (N) é igual ao valor de PerPacketInformationOffset.

Comentários

Cada REMOTE_NDIS_PACKET_MSG pode conter um ou mais registros de dados OOB. NumOOBDataElements indica o número de registros de dados OOB nesta mensagem. Os registros de dados OOB devem aparecer em sequência. O campo OOBDataLength indica o comprimento em bytes de todo o bloco de dados OOB. O campo OOBDataOffset indica o deslocamento de bytes do início do campo DataOffset até o início do bloco de dados OOB. Para obter mais informações sobre dados de pacote OOB, consulte a especificação do NDIS no DDK do Windows 2000.

Se vários blocos de dados OOB estiverem anexados a uma mensagem REMOTE_NDIS_PACKET_MSG, cada registro de dados OOB subsequente deverá seguir imediatamente os dados do registro OOB anterior.

Nenhuma informação OOB está definida atualmente para dispositivos 802.3.

Cada REMOTE_NDIS_PACKET_MSG pode conter um ou mais registros de dados por informações de pacote. As informações por pacote são usadas para transmitir metadados de pacote, como soma de verificação TCP. O campo PerPacketInfoOffset indica o deslocamento de bytes do início do campo DataOffset até o início do registro de dados de informações por pacote. O campo OOBDataLength indica o comprimento do byte do registro de dados de informações por pacote. Para obter mais informações sobre dados de informações por pacote, consulte o DDK do Windows 2000.

Se houver vários blocos de dados de informações por pacote, cada registro de dados de informações por pacote subsequente deverá seguir imediatamente os dados do registro de informações por pacote anterior.

Um dispositivo NDIS remoto deve enviar e receber dados por meio de pacotes de dados NDIS. O barramento que o dispositivo usa determina como esses pacotes são passados do host para o dispositivo e o dispositivo para hospedar. Pode ser memória compartilhada ou, no caso de pipes USB, Isoch e Bulk. Os pacotes NDIS também podem conter dados OOB (fora de banda), bem como os dados que passam pela rede.

Um dispositivo NDIS remoto transfere pacotes NDIS, encapsulados como REMOTE_NDIS_PACKET_MSG no canal de dados. Os dispositivos sem conexão (como 802.3) e orientados à conexão (como o ATM) usam a mesma estrutura de mensagens de pacote para facilitar o código comum para processamento de pacotes. Cada mensagem REMOTE_NDIS_PACKET_MSG contém informações sobre uma única unidade de dados de rede (como um quadro Ethernet 802.3).

Para obter mais informações sobre dados de pacote fora de banda ou dados por informações de pacote, consulte as seções NDIS do DDK do Windows 2000.

Requisitos

Versão

Disponível no Microsoft Windows XP e versões posteriores dos sistemas operacionais Windows. Também disponível no Windows 2000 como binários redistribuíveis.

Cabeçalho

Rndis.h (inclua Rndis.h)