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.
A inicialização do driver de filtro ocorre imediatamente após o sistema carregar o driver. Os drivers de filtro são carregados como serviços do sistema. O sistema pode carregar os drivers de filtro a qualquer momento antes, durante ou depois do carregamento dos drivers de miniporta. O NDIS pode conectar um módulo de filtro a um adaptador de miniporta depois que um adaptador de miniporta do tipo suportado pelo driver de filtro fica disponível e a inicialização do driver de filtro é concluída.
Enquanto uma stack de drivers começa a iniciar, o sistema carrega os drivers de filtro, caso não estejam ainda carregados. Para obter mais informações sobre como iniciar uma pilha de drivers que inclui módulos de filtro, consulte Iniciando uma pilha de drivers.
Depois de um driver de filtro ser carregado, o sistema chama a rotina DriverEntry do driver.
O sistema passa dois argumentos para DriverEntry:
Um ponteiro para o objeto driver, que foi criado pelo sistema de E/S.
Um ponteiro para o caminho do registo, que especifica onde os parâmetros específicos do driver são armazenados.
DriverEntry retorna STATUS_SUCCESS, ou o seu equivalente NDIS_STATUS_SUCCESS, se o driver se registou com êxito como um controlador de filtro NDIS. Se DriverEntry falhar na inicialização ao propagar um estado de erro retornado por uma função de NdisXxx ou por uma rotina de suporte em modo kernel, o driver não permanecerá carregado. DriverEntry deve ser executado de forma síncrona; ou seja, não pode retornar STATUS_PENDING ou o seu equivalente NDIS_STATUS_PENDING.
O driver de filtro passa o objeto de driver para a função NdisFRegisterFilterDriver quando ele se registra no NDIS como um driver de filtro. O driver pode usar o caminho do registro para obter informações de configuração. Para obter mais informações sobre como acessar informações de configuração do driver de filtro, consulte Acessando informações de configuração para um driver de filtro.
Um driver de filtro chama NdisFRegisterFilterDriver da sua rotina de DriverEntry. Os drivers de filtro exportam um conjunto de FilterXxx funções passando uma estrutura de NDIS_FILTER_DRIVER_CHARACTERISTICS para NdisFRegisterFilterDriver no parâmetro FilterCharacteristics.
A estrutura NDIS_FILTER_DRIVER_CHARACTERISTICS especifica pontos de entrada para funções obrigatórias e opcionais de FilterXxx. Algumas funções opcionais podem ser contornadas. Para obter mais informações sobre como ignorar funções, consulte Data Bypass Mode.
Os drivers que chamam NdisFRegisterFilterDriver devem estar preparados para uma chamada imediata para qualquer uma de suas funções FilterXxx.
A estrutura NDIS_FILTER_DRIVER_CHARACTERISTICS especifica os pontos de entrada para as seguintes funções obrigatórias: FilterXxx.
A estrutura NDIS_FILTER_DRIVER_CHARACTERISTICS especifica os pontos de entrada para as funções FilterXxx, que são opcionais e não podem ser alteradas em tempo de execução.
OpçõesDoMóduloDeConjuntoDeFiltro
FilterCancelSendNetBufferLists
A estrutura NDIS_FILTER_DRIVER_CHARACTERISTICS especifica os pontos de entrada padrão para essas funções opcionais e alteráveis em tempo de execução FilterXxx:
FilterSendNetBufferListsComplete
As quatro funções anteriores também são definidas na estrutura NDIS_FILTER_PARTIAL_CHARACTERISTICS. Essa estrutura especifica as funções que podem ser alteradas em tempo de execução chamando a funçãoNdisSetOptionalHandlers da funçãoFilterSetModuleOptions. Se um driver de filtro alterar essas características parciais em tempo de execução, ele deverá fornecer o ponto de entrada para FilterSetModuleOptions. As características parciais podem ser diferentes para cada módulo de filtro. Para obter mais informações, consulte Iniciando um módulo de filtro.
O NDIS invoca a função FilterSetOptions dentro do contexto da chamada para NdisFRegisterFilterDriver. FilterSetOptions regista serviços opcionais com o NDIS. Para obter mais informações, consulte Configuração de serviços opcionais de driver de filtro.
Caso a chamada para NdisFRegisterFilterDriver tenha sucesso, o NDIS preencherá a variável de NdisFilterDriverHandle em com um identificador de controlador de filtro. O driver de filtro salva esse identificador e depois passa esse identificador para funções NDIS, como NdisFDeregisterFilterDriver, que exigem um identificador de driver de filtro como um parâmetro de entrada. Quando o driver é descarregado, o mesmo deve chamar a função NdisFDeregisterFilterDriver para liberar os recursos de driver alocados pelo NdisFRegisterFilterDriver.
Depois que FilterSetOptions retorna, os módulos de filtro estão no estado Desanexado. O NDIS pode chamar a funçãoFilterAttach do driver de filtroa qualquer momento após a chamada de retorno de FilterSetOptions. O driver realiza a inicialização específica do módulo de filtro na função FilterAttach. Para obter mais informações sobre anexar um módulo de filtro a uma pilha de drivers, consulte Anexando um módulo de filtro.
Um driver de filtro também realiza qualquer outra inicialização específica que o driver necessite em DriverEntry. O driver de filtro deve libertar os recursos específicos do driver que aloca na sua rotina FilterDriverUnload. Para obter mais informações, consulte Descarregando um driver de filtro.