função de retorno de chamada PFLT_FILTER_UNLOAD_CALLBACK (fltkernel.h)

Um driver de minifiltro pode registrar uma rotina do tipo PFLT_FILTER_UNLOAD_CALLBACK como a rotina FilterUnloadCallback do driver de minifiltro.

Sintaxe

PFLT_FILTER_UNLOAD_CALLBACK PfltFilterUnloadCallback;

NTSTATUS PfltFilterUnloadCallback(
  FLT_FILTER_UNLOAD_FLAGS Flags
)
{...}

Parâmetros

Flags

Máscara de bits de sinalizadores que descrevem a solicitação de descarregamento. Esse parâmetro pode ser NULL ou o seguinte:

Sinalizador Significado
FLTFL_FILTER_UNLOAD_MANDATORY O gerenciador de filtros define esse sinalizador para indicar que a operação de descarregamento é obrigatória.

Retornar valor

Essa rotina de retorno de chamada retorna STATUS_SUCCESS ou um valor NTSTATUS, como o seguinte:

Código de retorno Descrição
STATUS_FLT_DO_NOT_DETACH Se a operação de descarregamento não for obrigatória, retornar esse valor status impedirá que o driver de minifiltro seja descarregado. Este é um código de erro.

Comentários

Quando um driver de minifiltro se registra chamando FltRegisterFilter, ele pode registrar uma rotina FilterUnloadCallback . Para registrar essa rotina de retorno de chamada, o driver de minifiltro armazena o endereço de uma rotina do tipo PFLT_FILTER_UNLOAD_CALLBACK no campo FilterUnloadCallback da estrutura FLT_REGISTRATION que o driver de minifiltro passa como um parâmetro para FltRegisterFilter.

Os drivers de minifiltro não são necessários para registrar uma rotina FilterUnloadCallback . No entanto, é altamente recomendável registrar uma rotina de descarregamento. Se um driver de minifiltro não registrar uma rotina FilterUnloadCallback , ele não poderá ser descarregado.

Quando um driver de minifiltro registra uma rotina FilterUnloadCallback :

  • O gerenciador de filtros chama a rotina FilterUnloadCallback para notificar o driver de minifiltro de que o gerenciador de filtros está prestes a descarregar o driver de minifiltro.

  • Se a operação de descarregamento não for obrigatória e a rotina FilterUnloadCallback retornar um código NTSTATUS de erro ou aviso, como STATUS_FLT_DO_NOT_DETACH, o driver de minifiltro não será descarregado. Caso contrário, o driver de minifiltro será descarregado.

  • Se o sinalizador FLTFL_FILTER_UNLOAD_MANDATORY estiver definido no parâmetro Flags , a operação de descarregamento será obrigatória e o driver de minifiltro não poderá impedir que ele seja descarregado.

Confira Quando a rotina FilterUnloadCallback é chamada para obter mais informações sobre possíveis causas de descarregamento e o processo de descarregamento do driver de minifiltro.

Requisitos

Requisito Valor
Plataforma de Destino Área de Trabalho
Cabeçalho fltkernel.h (inclua Fltkernel.h)
IRQL PASSIVE_LEVEL

Confira também

FLT_REGISTRATION

FltRegisterFilter