Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Os drivers de miniporta registram os seguintes recursos com o NDIS durante a inicialização do adaptador de rede:
Os recursos de coalescência de pacotes que o adaptador de rede suporta.
Os recursos de coalescência de pacotes que estão atualmente habilitados no adaptador de rede.
A coalescência de pacotes recebe recursos de filtragem que estão atualmente habilitados no adaptador de rede.
Observação O suporte de um driver de miniporta para coalescência de pacotes pode ser ativado ou desativado por meio da configuração da palavra-chave *PacketCoalescing INF. Essa configuração é exibida na página de propriedades Advanced para o adaptador de rede. Para mais informações sobre a configuração do ficheiro INF de coalescência de pacotes, consulte Palavras-chave INF padronizadas para a coalescência de pacotes.
O driver de miniporta relata os recursos de coalescência e filtragem de pacotes do adaptador de rede subjacente por meio de uma estrutura NDIS_RECEIVE_FILTER_CAPABILITIES. Se a configuração da palavra-chave *PacketCoalescing no registo tiver o valor de 1, a coalescência de pacotes é ativada e o controlador de miniporta inicializa a estrutura de NDIS_RECEIVE_FILTER_CAPABILITIES da seguinte maneira:
O driver de miniport inicializa o membro do Header. O driver define o membro Tipo do Cabeçalho como NDIS_OBJECT_TYPE_DEFAULT.
Se o driver suportar coalescência de pacotes, ele definirá o membro Revisão do cabeçalho para NDIS_RECEIVE_FILTER_CAPABILITIES_REVISION_2 e definirá o membro Tamanho para NDIS_SIZEOF_RECEIVE_FILTER_CAPABILITIES_REVISION_2.
O driver de miniporta define o sinalizador NDIS_RECEIVE_FILTER_PACKET_COALESCING_SUPPORTED_ON_DEFAULT_QUEUE no membro SupportedQueueProperties.
Se esse sinalizador estiver definido, o adaptador de rede deverá oferecer suporte à filtragem de pacotes multicast recebidos no hardware. Essa filtragem é baseada nos endereços de multicast que o NDIS descarrega para o adaptador de rede ao enviar requisições de definição de OID OID_802_3_MULTICAST_LIST.
Observação Os drivers de protocolo também podem alterar o conteúdo da lista de endereços multicast enviando solicitações de OID_802_3_ADD_MULTICAST_ADDRESS e OID_802_3_DELETE_MULTICAST_ADDRESS. O NDIS combina essas solicitações em OID_802_3_MULTICAST_LIST solicitações de conjunto OID.
Nota O adaptador deve rejeitar qualquer pacote multicast de entrada cujo endereço de controlo de acesso à mídia (MAC) de destino não coincida com nenhum dos endereços multicast especificados por estes pedidos de configuração OID.
O driver de miniporta define o indicador NDIS_RECEIVE_FILTER_PACKET_COALESCING_FILTERS_ENABLED no membro EnabledFilterTypes .
Observação Se o driver definir esta bandeira, ele também deverá definir a bandeira NDIS_RECEIVE_FILTER_PACKET_COALESCING_SUPPORTED_ON_DEFAULT_QUEUE no membro SupportedQueueProperties. Caso contrário, o NDIS falhará na chamada para NdisMSetMiniportAttributes, retornando NDIS_STATUS_BAD_CHARACTERISTICS.
Se o driver de miniporta definir o sinalizador NDIS_RECEIVE_FILTER_PACKET_COALESCING_FILTERS_ENABLED, este deve suportar todos os critérios de teste do filtro de receção. O driver anuncia este suporte definindo os seguintes sinalizadores no membro SupportedFilterTests:
NDIS_RECEIVE_FILTER_TEST_HEADER_FIELD_EQUAL_SUPPORTED
NDIS_TESTE_DE_FILTRO_DE_RECEÇÃO_MÁSCARA_DE_CAMPO_DE_CABEÇALHO_IGUAL_SUPORTADO
TESTE_DE_FILTRO_DE_RECEÇÃO_NDIS_CAMPO_DO_CABEÇALHO_NÃO_IGUAL_SUPORTADO
Observação Se o controlador de miniporta não definir o sinalizador NDIS_RECEIVE_FILTER_PACKET_COALESCING_FILTERS_ENABLED, o controlador deve definir o membro SupportedFilterTests como zero.
Se o driver de miniporta definir o sinalizador NDIS_RECEIVE_FILTER_PACKET_COALESCING_FILTERS_ENABLED, o driver de miniporta deve suportar a filtragem de dados em vários campos dos cabeçalhos de controlo de acesso à média (MAC), IP versão 4 (IPv4) e IP versão 6 (IPv6). O driver anuncia este suporte definindo os seguintes sinalizadores no membro SupportedHeaders:
NDIS_RECEIVE_FILTER_MAC_HEADER_SUPPORTED
NDIS_RECEIVE_FILTER_ARP_HEADER_SUPPORTED
Filtro de Recepção NDIS Cabeçalho IPv4 Suportado (NDIS_RECEIVE_FILTER_IPV4_HEADER_SUPPORTED)
NDIS_RECEIVE_FILTER_IPV6_HEADER_SUPPORTED (Filtro de Recepção NDIS de Cabeçalho IPv6 Suportado)
NDIS_RECEIVE_FILTER_CABEÇALHO_UDP_SUPORTADO
Observação Se o driver de miniporta não definir o sinalizador NDIS_RECEIVE_FILTER_PACKET_COALESCING_FILTERS_ENABLED, o driver deverá definir o membro SupportedHeaders para zero.
Se o driver de miniporta definir o sinalizador NDIS_RECEIVE_FILTER_PACKET_COALESCING_FILTERS_ENABLED, o driver de miniporta deve suportar a filtragem de dados no cabeçalho de controlo de acesso à mídia (MAC) do pacote recebido. O driver anuncia este suporte definindo os seguintes flags no membro SupportedMacHeaderFields:
NDIS_RECEIVE_FILTER_MAC_HEADER_DEST_ADDR_SUPPORTED
NDIS_RECEIVE_FILTER_MAC_HEADER_PROTOCOL_SUPPORTED
NDIS_FILTRO_RECEBER_TIPO_PACOTE_CABEÇALHO_MAC_SUPORTADO
Observação Caso o driver de miniporta não defina o sinalizador NDIS_RECEIVE_FILTER_PACKET_COALESCING_FILTERS_ENABLED, o driver deve definir o membro SupportedMacHeaderFields como zero.
Se o controlador de miniporta definir a marca NDIS_RECEIVE_FILTER_PACKET_COALESCING_FILTERS_ENABLED, o controlador de miniporta deverá suportar a filtragem de dados no cabeçalho de um pacote ARP recebido (Protocolo de Resolução de Endereços). O driver indica este suporte definindo os seguintes sinalizadores no membro SupportedARPHeaderFields:
NDIS_RECEIVE_FILTER_ARP_HEADER_OPERATION_SUPPORTED
NDIS_RECEIVE_FILTER_ARP_HEADER_SPA_SUPPORTED
NDIS_RECEIVE_FILTER_ARP_HEADER_TPA_SUPPORTED
Observação Se o driver de miniporta não definir o sinalizador NDIS_RECEIVE_FILTER_PACKET_COALESCING_FILTERS_ENABLED, o driver deve definir o membro SupportedARPHeaderFields como zero.
Se o driver de miniporta definir o sinalizador NDIS_RECEIVE_FILTER_PACKET_COALESCING_FILTERS_ENABLED, o driver de miniporta deverá suportar a filtragem de dados no cabeçalho da camada 3 (L3) da interconexão de sistemas abertos (OSI) de um pacote IP versão 4 (IPv4) recebido. O driver anuncia esse suporte definindo os seguintes sinalizadores no membro SupportedIPv4HeaderFields:
- Filtro de Recepção NDIS para o Protocolo de Cabeçalho IPv4 SUPPORTED
Observação Se o driver de miniporta não definir o sinalizador NDIS_RECEIVE_FILTER_PACKET_COALESCING_FILTERS_ENABLED, o driver deverá atribuir o valor zero ao membro SupportedIPv4HeaderFields.
Se o miniport driver definir o sinalizador NDIS_RECEIVE_FILTER_PACKET_COALESCING_FILTERS_ENABLED, o driver de miniporta deve suportar a filtragem de dados no cabeçalho L3 de um pacote IP versão 6 (IPv6) recebido. O driver promove esse suporte definindo os seguintes indicadores no membro SupportedIPv6HeaderFields:
- NDIS_RECEIVE_FILTER_IPV6_HEADER_PROTOCOL_SUPPORTED
Observação Se o controlador de miniporta não definir o sinalizador NDIS_RECEIVE_FILTER_PACKET_COALESCING_FILTERS_ENABLED, o controlador deverá definir o membro SupportedIPv6HeaderFields como zero.
Se o driver de miniporta definir o sinalizador NDIS_RECEIVE_FILTER_PACKET_COALESCING_FILTERS_ENABLED, o driver de miniporta deverá suportar a filtragem de dados no cabeçalho da camada 4 (L4) do modelo OSI de um pacote UDP (Protocolo de Datagrama de Utilizador) recebido. O driver anuncia este suporte ao definir os seguintes sinalizadores no membro SupportedIUdpHeaderFields:
- O suporte para a porta de destino do cabeçalho UDP do filtro de recepção do NDIS.
Observação Se o pacote UDP recebido contiver opções IPv4 ou cabeçalhos de extensão IPv6, o adaptador de rede poderá manipular o pacote como se ele tivesse falhado no teste de filtro UDP. Desta forma, o adaptador pode soltar automaticamente o pacote recebido.
Observação Se o driver de miniporta não definir o sinalizador NDIS_RECEIVE_FILTER_PACKET_COALESCING_FILTERS_ENABLED, o driver deve definir o membro SupportedIUdpHeaderFields como zero.
O driver de miniport deve reportar o número máximo de verificações nos campos de cabeçalho de pacote que podem ser especificadas para um único filtro de coalescência de pacote. O driver especifica este valor no membro MaxFieldTestsPerPacketCoalescingFilter.
Observação Os adaptadores de rede que suportam coalescência de pacotes devem suportar cinco ou mais campos de cabeçalho de pacote que podem ser especificados para um único filtro de coalescência de pacote. Se o adaptador não suportar coalescência de pacotes, o driver de miniporta deve definir esse valor como zero.
O controlador de miniporta deve informar o número máximo de filtros de agregação de pacotes suportados pelo adaptador de rede. O driver especifica esse valor no membro MaxPacketCoalescingFilters.
Observação Os adaptadores de rede que suportam a coalescência de pacotes devem suportar dez ou mais filtros de coalescência de pacotes. Se o adaptador não suportar coalescência de pacotes, o driver de miniporta deve definir esse valor como zero.
Quando o NDIS chama a função MiniportInitializeEx do driver de miniporta, o driver relata as capacidades de coalescência e filtragem de pacotes do adaptador de rede subjacente, seguindo estas etapas:
O driver de miniport inicializa uma estrutura NDIS_MINIPORT_ADAPTER_HARDWARE_ASSIST_ATTRIBUTES.
Se a palavra-chave *PacketCoalescing no registo tiver o valor um, o driver de miniporta ajustará o membro HardwareReceiveFilterCapabilities para apontar para a estrutura NDIS_RECEIVE_FILTER_CAPABILITIES que foi previamente inicializada.
Se a configuração palavra-chave *PacketCoalescing no registro tiver um valor zero, o driver de miniporta não anunciará suporte para coalescência de pacotes. Ele deve definir o membro HardwareReceiveFilterCapabilities como NULL.
O driver chama NdisMSetMiniportAttributes e define o parâmetro MiniportAttributes como um ponteiro para a estrutura NDIS_MINIPORT_ADAPTER_HARDWARE_ASSIST_ATTRIBUTES.
O método usado pelos drivers de miniporta para relatar os recursos de coalescência e filtragem de pacotes do adaptador de rede subjacente é baseado no método NDIS 6.20 para relatar recursos de gerenciamento de energia. Para obter mais informações sobre este método, consulte a página Reporting Power Management Capabilities.
Para obter mais informações sobre o processo de inicialização do adaptador, consulte inicializando um adaptador de miniporta.