OID_GEN_CURRENT_PACKET_FILTER

Como uma consulta, o OID_GEN_CURRENT_PACKET_FILTER OID relata os tipos de pacotes líquidos que estão em receber indicações de um driver de miniporte.

Como um conjunto, o OID_GEN_CURRENT_PACKET_FILTER OID especifica os tipos de pacotes líquidos para os quais um protocolo recebe indicações de um driver de miniporto.

Informações sobre versão

Windows Vista e versões posteriores do Windows
Com suporte.

Drivers de miniporta NDIS 6.0 e posterior
Mandatory. (consulte a seção Comentários)

Drivers de miniporta NDIS 5.1
Mandatory.

Windows XP
Com suporte.

Drivers de miniporta NDIS 5.1
Mandatory.

Comentários

Para drivers de miniporta NDIS 6.0 e posteriores, a consulta não é solicitada e o conjunto é obrigatório. O NDIS manipula a consulta para drivers de miniporta. O driver de miniporta relata as informações de filtro de pacote durante a inicialização.

O driver de miniporta relata seu tipo médio como aquele para o qual o sistema fornece uma biblioteca de filtros. O filtro de pacote usa a operação OR para combinar os seguintes tipos de forma inclusiva:

NDIS_PACKET_TYPE_DIRECTED
Pacotes direcionados. Os pacotes direcionados contêm um endereço de destino igual ao endereço da estação da NIC.

NDIS_PACKET_TYPE_MULTICAST
Pacotes de endereço multicast enviados para endereços na lista de endereços multicast.

Um driver de protocolo pode receber pacotes multicast Ethernet (802.3) especificando o tipo de pacote de endereço multicast ou funcional. Definir a lista de endereços multicast ou o endereço funcional determina quais grupos de endereços multicast o driver NIC habilita.

NDIS_PACKET_TYPE_ALL_MULTICAST
Todos os pacotes de endereço multicast, não apenas os enumerados na lista de endereços multicast.

NDIS_PACKET_TYPE_BROADCAST
Transmitir pacotes.

NDIS_PACKET_TYPE_PROMISCUOUS
Especifica todos os pacotes, independentemente de a filtragem de VLAN estar habilitada ou não e se o identificador de VLAN corresponde ou não.

NDIS_PACKET_TYPE_ALL_FUNCTIONAL
Todos os pacotes de endereço funcional, não apenas os do endereço funcional atual.

NDIS_PACKET_TYPE_ALL_LOCAL
Todos os pacotes enviados por protocolos instalados e todos os pacotes indicados pela NIC identificada por um determinado NdisBindingHandle .

NDIS_PACKET_TYPE_FUNCTIONAL
Pacotes de endereço funcional enviados para endereços incluídos no endereço funcional atual.

NDIS_PACKET_TYPE_GROUP
Pacotes enviados para o endereço do grupo atual.

NDIS_PACKET_TYPE_MAC_FRAME
Quadros de driver NIC que uma NIC de Anel de Token recebe.

NDIS_PACKET_TYPE_SMT
Pacotes SMT que uma NIC FDDI recebe.

NDIS_PACKET_TYPE_SOURCE_ROUTING
Todos os pacotes de roteamento de origem. Se o driver de protocolo definir esse bit, a biblioteca NDIS tentará atuar como uma ponte de roteamento de origem.

Para adaptadores de miniporta cujo tipo de mídia é NdisMedium802_3 ou NdisMedium802_5, o NDIS desabilita a recepção de pacotes, juntamente com endereços multicast e funcionais durante uma chamada para a função NdisOpenAdapterEx .

Para adaptadores de miniporta com todos os outros tipos de mídia, o driver de protocolo pode começar a receber pacotes a qualquer momento durante a chamada NdisOpenAdapterEx . Observe que o protocolo pode até mesmo receber pacotes antes que NdisOpenAdapterEx retorne. Em geral, a filtragem de pacotes é o melhor esforço e os drivers de protocolo devem estar preparados para lidar com indicações de recebimento mesmo quando o filtro de pacote é zero.

Para uma consulta, o NDIS retorna os filtros de associação que são combinados usando o operador OR.

Para um conjunto, o filtro de pacote especificado substitui o filtro de pacote anterior para a associação. Se o driver de miniporta tiver habilitado anteriormente um tipo de pacote, mas o driver de protocolo não especificar esse tipo em um novo filtro, o driver de protocolo não receberá pacotes desse tipo.

Para adaptadores de miniporta cujo tipo de mídia é NdisMedium802_3 ou NdisMedium802_5, se o driver de miniporto não definir um bit para um tipo de pacote específico em resposta a essa consulta, o driver de protocolo não receberá pacotes desse tipo. Consequentemente, um driver de protocolo pode desabilitar a recepção de pacotes chamando a função NdisOidRequest ou NdisCoOidRequest usando um filtro de zero.

Para adaptadores de miniporta com todos os outros tipos de mídia, o NDIS não marcar o tipo de pacote. Para esses tipos de mídia, um driver de protocolo não pode desabilitar a recepção de pacotes especificando um filtro de zero.

Quando a função MiniportInitializeEx de um driver de miniport é chamada, o filtro de pacotes do driver de miniport deve ser definido como zero. Quando o filtro de pacote é zero, as indicações de recebimento são desabilitadas. Depois que a função MiniportInitializeEx de um driver de miniporto tiver retornado, um driver de protocolo poderá definir OID_GEN_CURRENT_PACKET_FILTER como um valor diferente de zero, permitindo assim que o driver de miniporto indique pacotes recebidos para esse protocolo.

Se o modo promíscuo estiver habilitado com o bit NDIS_PACKET_TYPE_PROMISCUOUS, o driver de protocolo continuará recebendo pacotes mesmo que o nó de rede de envio não os direcione a ele. O NDIS envia ao driver de protocolo todos os pacotes recebidos pela NIC.

Definir um filtro de pacote específico não altera o filtro de pacote para outros drivers de protocolo associados (ou acima) à mesma NIC. Por exemplo, se um protocolo associado habilitar o modo promíscuo, outros drivers de protocolo associados não receberão pacotes que eles não solicitaram especificamente com seus próprios filtros de pacote.

Filtros de pacote nativos 802.11

O driver de miniporto Native 802.11 só deve dar suporte aos seguintes tipos de filtro de pacote padrão:

  • NDIS_PACKET_TYPE_DIRECTED

  • NDIS_PACKET_TYPE_MULTICAST

  • NDIS_PACKET_TYPE_BROADCAST

  • NDIS_PACKET_TYPE_PROMISCUOUS

Quando habilitados, esses filtros de pacote padrão só são aplicáveis a pacotes de dados 802.11.

Além disso, o driver de miniporto Nativo 802.11 deve dar suporte aos seguintes tipos de filtro de pacote, que são específicos para a mídia Nativa 802.11:

NDIS_PACKET_TYPE_802_11_RAW_DATA
Um quadro de MPDU (unidade de dados de protocolo MAC) 802.11, que contém todos os dados no formato recebido pela estação 802.11. Quando esse filtro é definido, o driver deve indicar cada fragmento MPDU não modificado antes de indicar o pacote MSDU (unidade de dados do serviço MAC) remontado dos fragmentos do MPDU.

Se um fragmento MPDU for criptografado, ele não deverá descriptografar o fragmento antes de ser indicado. No entanto, o driver de miniporto deve descriptografar cada fragmento mpdu antes de remontar e indicar o pacote MSDU.

Se habilitado, esse tipo de filtro afeta apenas outros filtros de pacote padrão, como NDIS_PACKET_TYPE_DIRECTED ou NDIS_PACKET_TYPE_BROADCAST.

Para obter mais informações sobre o método para indicar pacotes de dados brutos 802.11, consulte Indicando pacotes brutos 802.11.

NDIS_PACKET_TYPE_802_11_DIRECTED_MGMT
Pacotes de gerenciamento 802.11 direcionados. Os pacotes direcionados contêm um endereço de destino igual ao endereço da estação da NIC.

NDIS_PACKET_TYPE_802_11_MULTICAST_MGMT
Pacotes de gerenciamento multicast 802.11 enviados para endereços na lista de endereços multicast.

NDIS_PACKET_TYPE_802_11_ALL_MULTICAST_MGMT
Todos os pacotes de gerenciamento multicast 802.11 recebidos pela estação 802.11, independentemente de o endereço de destino no cabeçalho MAC 802.11 estiver na lista de endereços multicast.

NDIS_PACKET_TYPE_802_11_BROADCAST_MGMT
Transmitir pacotes de gerenciamento 802.11 recebidos pela estação 802.11.

NDIS_PACKET_TYPE_802_11_PROMISCUOUS_MGMT
Todos os pacotes de gerenciamento 802.11 recebidos pela estação 802.11.

NDIS_PACKET_TYPE_802_11_RAW_MGMT
Um quadro de gerenciamento de MPDU 802.11, que contém todos os dados no formato recebido pela estação 802.11. Quando esse filtro é definido, o driver deve indicar cada fragmento MPDU não modificado antes de indicar o pacote MMPDU (unidade de dados do protocolo de gerenciamento MAC) remontado dos fragmentos mpdu.

Se habilitado, esse tipo de filtro afeta apenas outros filtros de pacote de gerenciamento 802.11, como NDIS_PACKET_TYPE_802_11_DIRECTED_MGMT ou NDIS_PACKET_TYPE_802_11_MULTICAST_MGMT.

Para obter mais informações sobre o método para indicar pacotes de gerenciamento brutos 802.11, consulte Indicando pacotes brutos 802.11.

NDIS_PACKET_TYPE_802_11_DIRECTED_CTRL
Pacotes de controle 802.11 direcionados. Os pacotes direcionados contêm um endereço de destino igual ao endereço da estação da NIC.

NDIS_PACKET_TYPE_802_11_BROADCAST_CTRL
Transmitir pacotes de controle 802.11 recebidos pela estação 802.11.

NDIS_PACKET_TYPE_802_11_PROMISCUOUS_CTRL
Todos os pacotes de controle 802.11 recebidos pela estação 802.11.

Se um driver de miniporto estiver operando nos modos NetMon (Monitor de Rede) nativo 802.11 ou AP (Ponto de Acesso Extensível), o driver deverá habilitar os filtros de pacote a seguir por meio de uma solicitação definida de OID_GEN_CURRENT_PACKET_FILTER.

  • NDIS_PACKET_TYPE_PROMISCUOUS

  • NDIS_PACKET_TYPE_802_11_RAW_DATA

  • NDIS_PACKET_TYPE_802_11_PROMISCUOUS_MGMT

  • NDIS_PACKET_TYPE_802_11_RAW_MGMT

  • NDIS_PACKET_TYPE_802_11_PROMISCUOUS_CTRL

Um driver de miniporta que opera em outros modos Nativo 802.11 além do NetMon não deve habilitar essas configurações de filtro de pacote, com exceção de NDIS_PACKET_TYPE_802_11_PROMISCUOUS_CTRL. Um driver de miniporta que não está operando no modo NetMon pode, opcionalmente, habilitar NDIS_PACKET_TYPE_802_11_PROMISCUOUS_CTRL por meio de uma solicitação definida de OID_GEN_CURRENT_PACKET_FILTER.

Nota Quando o driver de miniporta estiver em modos Nativos 802.11 diferentes do NetMon e OID_GEN_CURRENT_PACKET_FILTER estiver definido, o driver não deverá falhar na solicitação definida se qualquer configuração de filtro promíscuo ou bruto estiver habilitada nos dados OID.

Para obter mais informações sobre os modos de operação NetMon e ExtAP, consulte os seguintes tópicos:

Modo de Operação do Monitor de Rede

Modo de operação de ponto de acesso extensível

Requisitos

parâmetro

Ntddndis.h (inclua Ndis.h)

Confira também

MiniportInitializeEx

NdisCoOidRequest

NdisOidRequest

NdisOpenAdapterEx