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) |