Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Este tópico descreve como o NDIS e os drivers sobrepostos determinam os recursos de filtragem de recebimento de um adaptador de rede que oferece suporte à virtualização de E/S de raiz única (SR-IOV). Este tópico contém as seguintes informações:
Relatórios recebem recursos de filtragem durante MiniportInitializeEx
Consulta das Capacidades de Filtragem de Receção por Drivers Sobrejacentes
Observação Somente o driver de miniporta para a função física (PF) PCI Express (PCIe) de um adaptador de rede SR-IOV pode relatar recursos de filtragem de recebimento. Os drivers de miniporta para PCIe Virtual Functions (VFs) não devem relatar os recursos de filtragem de recebimento do adaptador SR-IOV.
Relatar capacidades de filtragem recebidas durante MiniportInitializeEx
Quando o NDIS chama a função MiniportInitializeEx do driver de miniporta PF , o driver fornece os seguintes recursos de filtragem de recebimento:
O hardware completo recebe recursos de filtragem que o adaptador de rede pode suportar.
Os recursos de filtragem de recebimento para as interfaces que estão atualmente habilitadas no adaptador de rede.
O driver de miniporta relata os recursos completos de filtragem de recebimento de hardware do adaptador de rede subjacente por meio de uma estrutura de NDIS_RECEIVE_FILTER_CAPABILITIES inicializada da seguinte maneira:
O miniport driver inicializa o membro Header . O driver define o membro Tipo do Cabeçalho como NDIS_OBJECT_TYPE_DEFAULT.
A partir do NDIS 6.30, o driver de miniporta define o membro Revisão do Cabeçalho como NDIS_RECEIVE_FILTER_CAPABILITIES_REVISION_2 e o membro Tamanho como NDIS_SIZEOF_RECEIVE_FILTER_CAPABILITIES_REVISION_2.
O driver de miniporta define os outros membros da estrutura de NDIS_RECEIVE_FILTER_CAPABILITIES para o intervalo de valores para os recursos de filtragem de recebimento do adaptador de rede SR-IOV. Por exemplo, o driver de miniporta define as flags apropriadas no SupportedFilterTests para especificar operações de teste de filtro que o driver de miniporta suporta.
Além do SR-IOV, a filtragem de recebimento também é usada nas seguintes interfaces:
Coalescência de Pacotes NDIS. Para obter mais informações sobre como usar filtros de receção nesta interface, consulte Managing Packet Coalescing Receive Filters.
Fila de Máquinas Virtuais (VMQ). Para obter mais informações sobre como usar filtros de recebimento nessa interface, consulte Configuração e limpeza de filtros VMQ.
Se o driver de miniporta suportar qualquer uma dessas interfaces, ele também deve definir os membros da estrutura de NDIS_RECEIVE_FILTER_CAPABILITIES para o intervalo de valores de capacidade de filtragem de recebimento que são específicos para a interface. Por exemplo, se o driver oferecer suporte à coalescência de pacotes NDIS e SR-IOV, ele deverá definir o sinalizador NDIS_RECEIVE_FILTER_PACKET_COALESCING_SUPPORTED_ON_DEFAULT_QUEUE no membro SupportedQueueProperties.
O driver da miniporta indica as capacidades de filtragem de receção atualmente ativadas do adaptador de rede subjacente por meio de uma estrutura NDIS_RECEIVE_FILTER_CAPABILITIES inicializada da forma seguinte:
O controlador de miniporta inicializa o membro Header. O driver define o membro do Tipo do Cabeçalho como NDIS_OBJECT_TYPE_DEFAULT.
A partir do NDIS 6.30, o driver de miniporta define o membro Revisão de de Cabeçalho como NDIS_RECEIVE_FILTER_CAPABILITIES_REVISION_2 e o membro Tamanho como NDIS_SIZEOF_RECEIVE_FILTER_CAPABILITIES_REVISION_2.
O driver de miniporta define os outros membros da estrutura de NDIS_RECEIVE_FILTER_CAPABILITIES para o intervalo de valores das capacidades de filtragem de receção das interfaces que estão atualmente habilitadas. Por exemplo, se a coalescência de pacotes NDIS estiver habilitada, o driver deverá definir apenas os membros específicos dessa tecnologia.
As interfaces que usam filtragem de recebimento são habilitadas ou desabilitadas por meio de palavras-chave INF padronizadas. Para obter mais informações sobre como a agregação de pacotes NDIS é ativada, consulte Palavras-chave INF padronizadas para agregação de pacotes. Para obter mais informações sobre como SR-IOV e o VMQ são ativados, consulte Gestão das Palavras-chave Padronizadas INF para SR-IOV, VMQ e RSS.
Quando o NDIS chama a função MiniportInitializeEx do driver de miniport, o driver regista as capacidades de filtragem de recepção do adaptador de rede seguindo estas etapas:
O driver de miniporta inicializa uma estrutura NDIS_MINIPORT_ADAPTER_HARDWARE_ASSIST_ATTRIBUTES.
O driver de miniporta atribui o membro HardwareReceiveFilterCapabilities ao endereço de uma estrutura NDIS_RECEIVE_FILTER_CAPABILITIES. Essa estrutura foi inicializada anteriormente com os recursos completos de filtragem de recebimento de hardware do adaptador de rede.
Se a coalescência de pacotes VMQ, SR-IOV e NDIS estiver atualmente desabilitada no adaptador de rede, o driver de miniporta definirá o membro CurrentReceiveFilterCapabilities como NULL.
Se a coalescência de pacotes VMQ, SR-IOV ou NDIS estiver atualmente habilitada no adaptador de rede, o driver de miniporta deverá fazer o seguinte:
O driver de miniporta deve inicializar outra estrutura de NDIS_RECEIVE_FILTER_CAPABILITIES com os recursos de filtragem de recebimento atuais para as interfaces que estão atualmente habilitadas no adaptador de rede.
Se a interface SR-IOV estiver ativada, há situações em que o driver de miniporta deve definir os membros da estrutura NDIS_RECEIVE_FILTER_CAPABILITIES para os mesmos valores ou valores diferentes. Isso ocorre porque a interface SR-IOV fornece um mecanismo de enfileiramento semelhante ao VMQ, mas usa portas virtuais (VPorts) em vez de filas de recebimento de VM.
Por exemplo, o driver de miniporta deve definir o sinalizador NDIS_RECEIVE_FILTER_VMQ_FILTERS_ENABLED no membro EnabledFilterTypes se estiver habilitada a VMQ ou a interface SR-IOV. No entanto, o driver de miniporta deve definir o membro NumQueues como zero se a interface SR-IOV estiver habilitada e um valor diferente de zero se a interface VMQ estiver habilitada.
O driver de miniporta define o membro CurrentReceiveFilterCapabilities para o endereço da estrutura de NDIS_RECEIVE_FILTER_CAPABILITIES que contém os recursos de filtragem de recebimento atuais para a interface habilitada no momento.
Se a coalescência de pacotes VMQ, SR-IOV ou NDIS estiver habilitada no momento no adaptador de rede, o driver de miniporta definirá o membro HardwareReceiveFilterCapabilities para o endereço de uma estrutura de NDIS_RECEIVE_FILTER_CAPABILITIES. Esta estrutura foi anteriormente inicializada com as capacidades de filtragem de receção atualmente habilitadas do adaptador de rede.
O driver chama NdisMSetMiniportAttributes e define o parâmetro MiniportAttributes como um ponteiro para a estrutura NDIS_MINIPORT_ADAPTER_HARDWARE_ASSIST_ATTRIBUTES .
Para obter mais informações sobre o processo de inicialização do adaptador, consulte inicializando um adaptador de miniporta.
Consultando capacidades de filtragem de recebimento por drivers superiores
O NDIS passa as capacidades de filtragem de recebimento atualmente habilitadas do adaptador de rede para os drivers superiores que fazem interface com o adaptador de rede da seguinte maneira:
Quando o NDIS chama a função FilterAttach de um driver de filtro sobreposto, o NDIS passa os recursos do comutador NIC do adaptador de rede através do parâmetro AttachParameters. Este parâmetro contém um ponteiro para uma estrutura NDIS_FILTER_ATTACH_PARAMETERS. O membro ReceiveFilterCapabilities desta estrutura contém um ponteiro para uma estrutura NDIS_RECEIVE_FILTER_CAPABILITIES.
Quando o NDIS chama a função ProtocolBindAdapterEx de um driver de protocolo sobreposto, o NDIS transmite as capacidades do comutador NIC do adaptador de rede através do parâmetro BindParameters. Este parâmetro contém um ponteiro para uma estrutura NDIS_FILTER_ATTACH_PARAMETERS. O ReceiveFilterCapabilities membro desta estrutura contém um ponteiro para uma estrutura NDIS_RECEIVE_FILTER_CAPABILITIES.
O NDIS também retorna a estrutura NDIS_RECEIVE_FILTER_CAPABILITIES quando lida com solicitações de consulta de identificador de objeto (OID) de OID_RECEIVE_FILTER_CURRENT_CAPABILITIES e OID_RECEIVE_FILTER_HARDWARE_CAPABILITIES emitidas por drivers de protocolo ou filtro sobrepostos.