Função FltAttachVolume (fltkernel.h)
FltAttachVolume cria uma nova instância de driver de minifiltro e a anexa ao volume especificado.
Sintaxe
NTSTATUS FLTAPI FltAttachVolume(
[in, out] PFLT_FILTER Filter,
[in, out] PFLT_VOLUME Volume,
[in, optional] PCUNICODE_STRING InstanceName,
[out] PFLT_INSTANCE *RetInstance
);
Parâmetros
[in, out] Filter
Ponteiro de filtro opaco para o chamador. Esse parâmetro é necessário e não pode ser NULL.
[in, out] Volume
Ponteiro de volume opaco para o volume ao qual a instância do driver de minifiltro deve ser anexada. Esse parâmetro é necessário e não pode ser NULL.
[in, optional] InstanceName
Ponteiro para uma estrutura de UNICODE_STRING que contém o nome da instância da nova instância. Esse parâmetro é opcional e pode ser NULL. Se for NULL, FltAttachVolume tentar ler o nome da instância padrão do driver de minifiltro do registro. (Para obter mais informações sobre esse parâmetro, consulte a seção Comentários a seguir.)
[out] RetInstance
Ponteiro para uma variável alocada por chamador que recebe um ponteiro de instância opaca para a instância recém-criada. Esse parâmetro é opcional e pode ser NULL.
Valor de retorno
fltAttachVolume retorna STATUS_SUCCESS ou um valor NTSTATUS apropriado, como um dos seguintes:
Observações
Se o chamador especificar um valorNULL não para InstanceName, FltAttachVolume lerá todos os atributos de instância especificados pelo driver de minifiltro armazenados no registro em HKLM\CurrentControlSet\Services\ServiceName\Instances\InstanceName, em que ServiceName é o nome de serviço do driver de minifiltro. Esse nome de serviço é especificado na diretiva AddService na seção DefaultInstall.Services do arquivo INF do driver de minifiltro. (Para obter mais informações sobre arquivos INF do driver de filtro, consulte Instalando um driver de filtro do sistema de arquivos.)
Se o chamador não especificar um valor para InstanceName, FltAttachVolume usará o nome armazenado no registro em HKLM\CurrentControlSet\Services\ServiceName\Instances\DefaultInstance para a parte InstanceName parte do caminho do registro.
O nome da instância especificado no parâmetro InstanceName é necessário para ser exclusivo em todo o sistema.
FltAttachVolume retorna um ponteiro de instância opaco para a nova instância em *RetInstance. Esse valor de ponteiro identifica exclusivamente a instância do driver de minifiltro e permanece constante desde que a instância esteja anexada ao volume.
FltAttachVolume adiciona uma referência de rundown ao ponteiro de instância opaco retornado em *RetInstance. Quando esse ponteiro não for mais necessário, o chamador deverá liberá-lo chamando FltObjectDereference. Portanto, cada chamada bem-sucedida para FltAttachVolume deve ser correspondida por uma chamada subsequente para FltObjectDereference.
Para anexar uma instância de driver de minifiltro a um volume a uma determinada altitude, chame FltAttachVolumeAtAltitude.
Para comparar as altitudes de duas instâncias de driver de minifiltro anexadas ao mesmo volume, chame FltCompareInstanceAltitudes.
Para desanexar uma instância de driver de minifiltro de um volume, chame FltDetachVolume.
Requisitos
Requisito | Valor |
---|---|
da Plataforma de Destino | Universal |
cabeçalho | fltkernel.h (inclua Fltkernel.h) |
biblioteca | FltMgr.lib |
IRQL | PASSIVE_LEVEL |