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 |