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.
O modo de desvio de dados do driver de filtro pode fornecer um melhor desempenho do sistema. NDIS não chama funções FilterXxx que são ignoradas. Por exemplo, se os serviços de envio e recebimento não forem necessários para um determinado aplicativo de filtro, o driver de filtro poderá ignorar as funções de envio e recebimento.
Um driver de filtro especifica, durante a inicialização do driver, os pontos de entrada padrão para funções que podem ser ignoradas, ao chamar a função NdisFRegisterFilterDriver. Os pontos de entrada são NULL para funções que são ignoradas por padrão. Para obter mais informações sobre inicialização, consulte inicializando um driver de filtro.
Para alterar o estado de bypass em tempo de execução, o driver deve especificar um ponto de entrada para a função FilterSetModuleOptions durante a inicialização do driver. O driver pode inicializar uma estrutura de NDIS_FILTER_PARTIAL_CHARACTERISTICS e passar as novas características para a função NdisSetOptionalHandlers de dentro do contexto de FilterSetModuleOptions.
O NDIS chama a função FilterSetModuleOptions , se existir, no início de uma operação de reinício. Um driver de filtro pode definir o modo de bypass independentemente para cada módulo de filtro. Para obter mais informações, consulte Iniciando um módulo de filtro.
Os drivers de filtro podem ignorar as seguintes funções opcionais FilterXxx especificadas na estrutura NDIS_FILTER_DRIVER_CHARACTERISTICS:
FilterSendNetBufferListsComplete
FilterCancelSendNetBufferLists
Para definir uma função FilterXxx para o modo de bypass, um driver de filtro especifica NULL para o ponto de entrada dessa função. No entanto, se um driver chamar qualquer função NDIS que tenha uma função FilterXxx associada, ele deve fornecer um ponto de entrada para essa função FilterXxx. Por exemplo, se um driver chamar a função NdisFIndicateReceiveNetBufferLists, ele deve fornecer uma função FilterReturnNetBufferLists.
Se um driver de filtro especificar uma função FilterSendNetBufferLists e enfileirar solicitações de envio, ele também deverá especificar uma função FilterCancelSendNetBufferLists.
Se um driver de filtro especificar uma função FilterReceiveNetBufferLists ou uma função FilterReturnNetBufferLists, o driver também deverá especificar uma função FilterStatus.
Para alterar as suas configurações de modo de bypass em tempo de execução, um driver de filtro pode chamar a função NdisFRestartFilter. NdisFRestartFilter agenda uma operação de pausa seguida por uma operação de reinicialização para o módulo de filtro especificado. Quando o NDIS chama FilterSetModuleOptions, o driver de filtro pode alterar as funções desse módulo de filtro chamando NdisSetOptionalHandlers e especificando um novo conjunto de pontos de entrada.
Observação Pausar e reiniciar pode fazer com que alguns pacotes de rede sejam descartados no caminho de transmissão, no caminho de recebimento ou em ambos. Os protocolos de rede que fornecem um mecanismo de transporte confiável podem repetir a operação de E/S de rede no caso de um pacote perdido, mas outros protocolos que não garantem confiabilidade não tentam novamente a operação.
Um driver de filtros pode registar funções adicionais que suportam serviços opcionais do driver. O driver regista esses serviços opcionais na função FilterSetOptions. Para obter mais informações sobre esses serviços opcionais, consulte Configurando serviços de driver de filtro opcionais.