PFLT_INSTANCE_QUERY_TEARDOWN_CALLBACK função de retorno de chamada (fltkernel.h)
Um driver de minifiltro pode registrar uma rotina do tipo PFLT_INSTANCE_QUERY_TEARDOWN_CALLBACK como rotina de instanceQueryTeardownCallback do driver de minifiltro.
Sintaxe
PFLT_INSTANCE_QUERY_TEARDOWN_CALLBACK PfltInstanceQueryTeardownCallback;
NTSTATUS PfltInstanceQueryTeardownCallback(
[in] PCFLT_RELATED_OBJECTS FltObjects,
[in] FLT_INSTANCE_QUERY_TEARDOWN_FLAGS Flags
)
{...}
Parâmetros
[in] FltObjects
Ponteiro para uma estrutura FLT_RELATED_OBJECTS que contém ponteiros opacos para os objetos relacionados à operação atual.
[in] Flags
Máscara de bits de sinalizadores que descrevem por que a rotina de retorno de chamada da consulta de instância fornecida foi chamada. Nenhum sinalizador está definido no momento.
Valor de retorno
Essa rotina de retorno de chamada retorna STATUS_SUCCESS ou um valor de NTSTATUS, como um dos seguintes:
Código de retorno | Descrição |
---|---|
|
Retornar esse valor de status impede que a instância do driver de minifiltro seja desanexada. Este é um código de erro. |
Observações
Quando um driver de minifiltro se registra chamando FltRegisterFilter de sua rotina DriverEntry, ele pode registrar uma rotina de tipo PFLT_INSTANCE_QUERY_TEARDOWN_CALLBACK como a rotina de instanceQueryTeardownCallback do driver de minifiltro.
Para registrar a rotina de InstanceQueryTeardownCallback, o driver de minifiltro armazena o endereço de uma rotina de PFLT_INSTANCE_QUERY_TEARDOWN_CALLBACK de tipo no InstanceQueryTeardownCallback membro da estrutura FLT_REGISTRATION que o driver de minifiltro passa como o parâmetro de Registro de FltRegisterFilter .
O gerenciador de filtros chama essa rotina para permitir que o driver de minifiltro responda a uma solicitação de desanexação manual. Essa solicitação é recebida quando um aplicativo de modo de usuário chama FilterDetach ou um componente do modo kernel chama FltDetachVolume.
Essa rotina não é chamada para solicitações de desanexação automáticas ou obrigatórias, por exemplo, quando o driver de minifiltro é descarregado ou um volume é desmontado.
Se essa rotina retornar um erro ou aviso código de NTSTATUS, como STATUS_FLT_DO_NOT_DETACH, a instância do driver de minifiltro não será desanexada do volume. Caso contrário, a instância será desanexada.
Se um driver de minifiltro não definir uma rotina de InstanceQueryTeardownCallback, suas instâncias não poderão ser desanexadas manualmente chamando FilterDetach ou FltDetachVolume.
Requisitos
Requisito | Valor |
---|---|
da Plataforma de Destino | Área de trabalho |
cabeçalho | fltkernel.h (inclua Fltkernel.h) |
IRQL | PASSIVE_LEVEL |