Função FltRegisterFilter (fltkernel.h)
FltRegisterFilter registra um driver de minifiltro.
Sintaxe
NTSTATUS FLTAPI FltRegisterFilter(
[in] PDRIVER_OBJECT Driver,
[in] const FLT_REGISTRATION *Registration,
[out] PFLT_FILTER *RetFilter
);
Parâmetros
[in] Driver
Um ponteiro para o objeto de driver para o driver de minifiltro. Esse deve ser o mesmo ponteiro de objeto de driver que foi passado como entrada para a rotina DriverEntry do driver de minifiltro.
[in] Registration
Um ponteiro para uma estrutura de registro de driver de minifiltro alocado pelo chamador (FLT_REGISTRATION).
[out] RetFilter
Um ponteiro para uma variável alocada pelo chamador que recebe um ponteiro de filtro opaco para o chamador.
Retornar valor
FltRegisterFilter retorna STATUS_SUCCESS ou um valor NTSTATUS apropriado, como um dos seguintes:
Código de retorno | Descrição |
---|---|
|
FltRegisterFilter encontrou uma falha de alocação de pool. Este é um código de erro. |
|
Um dos seguintes:
|
|
O Gerenciador de Filtros não foi inicializado quando o filtro tentou se registrar. Verifique se o Gerenciador de Filtros está carregado como um driver. Este é um código de erro. |
|
A chave de serviço de filtro não foi encontrada no Registro.
-ou- A instância de filtro não está registrada. |
Comentários
Cada driver de minifiltro deve chamar FltRegisterFilter de sua rotina DriverEntry para se adicionar à lista global de drivers de minifiltro registrados e fornecer ao Gerenciador de Filtros uma lista de funções de retorno de chamada e outras informações sobre o driver de minifiltro.
FltRegisterFilter retorna um ponteiro de filtro opaco para o driver de minifiltro em *RetFilter. Esse valor de ponteiro identifica exclusivamente o driver de minifiltro e permanece constante desde que o driver de minifiltro seja carregado. O driver de minifiltro deve salvar esse ponteiro, pois ele é um parâmetro necessário para FltStartFiltering e FltUnregisterFilter.
Depois de chamar FltRegisterFilter, um driver de minifiltro normalmente chama FltStartFiltering para começar a filtrar operações de E/S.
Um driver de minifiltro só pode chamar FltRegisterFilter para se registrar, não outro driver de minifiltro.
Para cancelar o registro em si, um driver de minifiltro chama FltUnregisterFilter..
Requisitos
Requisito | Valor |
---|---|
Plataforma de Destino | Universal |
Cabeçalho | fltkernel.h (inclua Fltkernel.h) |
Biblioteca | FltMgr.lib |
DLL | Fltmgr.sys |
IRQL | <= APC_LEVEL |