função de retorno de chamada PFLT_INSTANCE_QUERY_TEARDOWN_CALLBACK (fltkernel.h)
Um driver de minifiltro pode registrar uma rotina do tipo PFLT_INSTANCE_QUERY_TEARDOWN_CALLBACK como a rotina 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 de desordeira de consulta de instância fornecida foi chamada. Nenhum sinalizador está definido no momento.
Retornar valor
Essa rotina de retorno de chamada retorna STATUS_SUCCESS ou um valor NTSTATUS , como um dos seguintes:
Código de retorno | Descrição |
---|---|
|
Retornar esse valor status impede que a instância do driver de minifiltro seja desanexada. Este é um código de erro. |
Comentários
Quando um driver de minifiltro se registra chamando FltRegisterFilter de sua rotina DriverEntry , ele pode registrar uma rotina do tipo PFLT_INSTANCE_QUERY_TEARDOWN_CALLBACK como a rotina InstanceQueryTeardownCallback do driver de minifiltro.
Para registrar a rotina InstanceQueryTeardownCallback , o driver de minifiltro armazena o endereço de uma rotina do tipo PFLT_INSTANCE_QUERY_TEARDOWN_CALLBACK no membro InstanceQueryTeardownCallback da estrutura FLT_REGISTRATION que o driver de minifiltro passa como o parâmetro Registration 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 código NTSTATUS de erro ou aviso, 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 InstanceQueryTeardownCallback , suas instâncias não poderão ser desanexadas manualmente chamando FilterDetach ou FltDetachVolume.
Requisitos
Requisito | Valor |
---|---|
Plataforma de Destino | Área de Trabalho |
Cabeçalho | fltkernel.h (inclua Fltkernel.h) |
IRQL | PASSIVE_LEVEL |