estrutura NDIS_HD_SPLIT_ATTRIBUTES (ndis.h)

A estrutura NDIS_HD_SPLIT_ATTRIBUTES define atributos de divisão de dados de cabeçalho, se houver, associados a um adaptador de miniporta.

Sintaxe

typedef struct _NDIS_HD_SPLIT_ATTRIBUTES {
  NDIS_OBJECT_HEADER Header;
  ULONG              HardwareCapabilities;
  ULONG              CurrentCapabilities;
  ULONG              HDSplitFlags;
  ULONG              BackfillSize;
  ULONG              MaxHeaderSize;
} NDIS_HD_SPLIT_ATTRIBUTES, *PNDIS_HD_SPLIT_ATTRIBUTES;

Membros

Header

A estrutura NDIS_OBJECT_HEADER para a estrutura de características do provedor (NDIS_HD_SPLIT_ATTRIBUTES). O driver define o membro Type da estrutura especificada por Header como NDIS_OBJECT_TYPE_HD_SPLIT_ATTRIBUTES, o membro Revision como NDIS_OBJECT_HD_SPLIT_ATTRIBUTES_REVISION_1 e o membro Size para NDIS_SIZEOF_HD_SPLIT_ATTRIBUTES_REVISION_1.

HardwareCapabilities

Os recursos de hardware de divisão de dados de cabeçalho compatíveis com o adaptador de miniporto. Esses recursos devem incluir recursos que estão desabilitados atualmente pelas configurações de arquivo INF ou por meio da página Propriedades avançadas . O valor de HardwareCapabilities é um OR bit a bit dos seguintes sinalizadores:

NDIS_HD_SPLIT_CAPS_SUPPORTS_HEADER_DATA_SPLIT

O adaptador de miniporta pode dividir o cabeçalho e os dados em MDLs separados que atendem aos requisitos de suporte à divisão de dados de cabeçalho.

NDIS_HD_SPLIT_CAPS_SUPPORTS_IPV4_OPTIONS

O adaptador de miniporta pode dividir quadros Ethernet IPv4 que incluem opções IPv4. O adaptador de miniporta pode dar suporte à divisão de algumas opções IPv4 enquanto não divide outras.

Nota A NIC não deve dividir quadros IPv4 que contenham opções IPv4 sem suporte. Se um quadro IPv4 for dividido, a parte do cabeçalho do quadro dividido deverá conter todo o cabeçalho IPv4 e todas as opções IPv4 presentes.
 

NDIS_HD_SPLIT_CAPS_SUPPORTS_IPV6_EXTENSION_HEADERS

O adaptador de miniporta pode dividir quadros Ethernet IPv6 que incluem cabeçalhos de extensão IPv6. O adaptador de miniporta pode dar suporte a alguns cabeçalhos de extensão IPv6 sem dar suporte a outros.

Nota A NIC não deve dividir quadros IPv6 que contenham cabeçalhos de extensão IPv6 sem suporte. Se um quadro IPv6 for dividido, a parte do cabeçalho do quadro dividido deverá conter todo o cabeçalho IPv6 e todos os cabeçalhos de extensão IPv6 presentes.
 

NDIS_HD_SPLIT_CAPS_SUPPORTS_TCP_OPTIONS

O adaptador de miniporta pode dividir quadros TCP com outras opções de TCP, além da opção de carimbo de data/hora. O adaptador de miniporta pode dar suporte a algumas opções de TCP e não dar suporte a outras.

Nota Se a única opção TCP em um quadro for a opção de carimbo de data/hora, o provedor de divisão de dados deverá ser capaz de dividir o quadro.
 
Nota Se um cabeçalho TCP contiver uma opção TCP sem suporte, a NIC deverá dividir o quadro no início do cabeçalho TCP ou não deve dividir o quadro.
 

CurrentCapabilities

Os recursos atuais de divisão de dados de cabeçalho compatíveis com o adaptador de miniporta. O driver de miniporta usa os mesmos sinalizadores definidos para o membro HardwareCapabilities . Nesse caso, os sinalizadores são definidos para indicar os recursos atuais que dependem das definições de configuração atuais.

HDSplitFlags

Um conjunto de sinalizadores que controlam a status de divisão de dados de cabeçalho para um adaptador de miniporto. O driver de miniporta deve definir esse membro como zero antes de chamar o Função NdisMSetMiniportAttributes . Depois que NdisMSetMiniportAttributes retornar com êxito, o driver deverá marcar os sinalizadores e configurar o hardware adequadamente. O NDIS define esse membro com um OR bit a bit dos seguintes sinalizadores:

NDIS_HD_SPLIT_ENABLE_HEADER_DATA_SPLIT

Se esse sinalizador estiver definido, o driver de miniporta deverá habilitar a divisão de dados de cabeçalho no hardware. Caso contrário, a divisão de dados de cabeçalho será desabilitada. Se o computador usar a divisão de dados de cabeçalho e o driver de miniporte também definir o sinalizador NDIS_HD_SPLIT_CAPS_SUPPORTS_HEADER_DATA_SPLIT no membro CurrentCapabilities , o NDIS definirá NDIS_HD_SPLIT_ENABLE_HEADER_DATA_SPLIT.

BackfillSize

O tamanho do arquivo de fundo, em bytes, para a parte de dados de um quadro dividido. O driver de miniporta deve ser definido
BackfillSize para zero antes de chamar NdisMSetMiniportAttributes. O NDIS define esse membro se o driver de miniporta precisar pré-alocar o armazenamento de backfill na parte de dados para quadros divididos. Depois que NdisMSetMiniportAttributes retornar com êxito , o driver deverá usar o valor BackfillSize definido pelo NDIS para pré-alocar os buffers de dados.

MaxHeaderSize

O tamanho máximo, em bytes, para a parte de cabeçalho de um quadro dividido. O driver de miniporto deve definir MaxHeaderSize como zero antes de chamar NdisMSetMiniportAttributes. O NDIS define esse membro como o tamanho máximo do buffer de cabeçalho para quadros divididos. Depois que NdisMSetMiniportAttributes retornar com êxito , o driver deverá usar o valor fornecido pelo NDIS.

Nota Se o comprimento de um cabeçalho exceder MaxHeaderSize devido à presença de opções IPv4, cabeçalhos IPSec ou cabeçalhos de extensão IPv6, o quadro não deverá ser dividido. Se um cabeçalho que inclui um cabeçalho TCP ou UDP exceder MaxHeaderSize devido à presença de cabeçalho TCP, opções TCP ou cabeçalho UDP, a NIC deverá dividir o quadro no início do cabeçalho do protocolo de camada superior ou não deve dividir o quadro.
 

Comentários

Para dar suporte à divisão de dados de cabeçalho, um driver de miniporto passa um ponteiro para um NDIS_MINIPORT_ADAPTER_HARDWARE_ASSIST_ATTRIBUTES estrutura no parâmetro MiniportAttributes do Função NdisMSetMiniportAttributes . O membro HDSplitAttributes do NDIS_MINIPORT_ADAPTER_HARDWARE_ASSIST_ATTRIBUTES contém um ponteiro para a estrutura NDIS_HD_SPLIT_ATTRIBUTES. Um driver de miniporto chama NdisMSetMiniportAttributes de sua função MiniportInitializeEx durante a inicialização.

Requisitos

Requisito Valor
Cliente mínimo com suporte Com suporte no NDIS 6.1 e posterior.
Cabeçalho ndis.h (inclua Ndis.h)

Confira também

MiniportInitializeEx

NDIS_MINIPORT_ADAPTER_HARDWARE_ASSIST_ATTRIBUTES

NDIS_OBJECT_HEADER

NdisMSetMiniportAttributes