Compartilhar via


Função FilterAttach (fltuser.h)

A função FilterAttach anexa uma nova instância de minifiltro ao volume especificado.

Sintaxe

HRESULT FilterAttach(
  [in]            LPCWSTR lpFilterName,
  [in]            LPCWSTR lpVolumeName,
  [in, optional]  LPCWSTR lpInstanceName,
  [in, optional]  DWORD   dwCreatedInstanceNameLength,
  [out, optional] LPWSTR  lpCreatedInstanceName
);

Parâmetros

[in] lpFilterName

Ponteiro para uma cadeia de caracteres largos terminada em nulo que contém o nome do minifiltro para o qual uma instância deve ser criada. Esse parâmetro é necessário e não pode ser NULL.

[in] lpVolumeName

Ponteiro para uma cadeia de caracteres largos terminada em nulo que contém o nome do volume ao qual a instância recém-criada deve ser anexada.

A cadeia de caracteres de entrada lpVolumeName pode ser qualquer uma das opções a seguir. A barra invertida à direita (\) é opcional.

  • Uma letra de unidade, como "D:\"
  • Um caminho para um ponto de montagem de volume, como "c:\mnt\edrive\"
  • Um identificador de volume exclusivo (também chamado de nome GUID de volume), como "\?? \Volume{7603f260-142a-11d4-ac67-806d6172696f}\"
  • Um nome de dispositivo não persistente (também chamado de nome de destino ou nome de dispositivo NT), como "\Device\HarddiskVolume1\"
O parâmetro lpVolumeName é necessário e não pode ser NULL.

[in, optional] lpInstanceName

Ponteiro para uma cadeia de caracteres largos terminada em nulo que contém o nome da instância da nova instância. Esse parâmetro é opcional e pode ser NULL. Se esse parâmetro for NULL, a nova instância receberá o nome da instância padrão do minifiltro, conforme descrito na seção Comentários de FltAttachVolume.

[in, optional] dwCreatedInstanceNameLength

Comprimento, em bytes, do buffer para o qual lpCreatedInstanceName aponta. Esse parâmetro é opcional e pode ser zero.

[out, optional] lpCreatedInstanceName

Ponteiro para uma variável alocada pelo chamador que recebe o nome da instância da nova instância se a instância for anexada com êxito ao volume. Esse parâmetro é opcional e pode ser NULL. Se não for NULL, o buffer deverá ser grande o suficiente para manter INSTANCE_NAME_MAX_CHARS caracteres mais um terminador NULL.

Retornar valor

FilterAttach retornará S_OK se tiver êxito. Caso contrário, ele retornará um valor de erro, como um dos seguintes.

Código de retorno Descrição
ERROR_FLT_INSTANCE_ALTITUDE_COLLISION
Uma instância já existe nessa altitude no volume especificado.
ERROR_FLT_INSTANCE_NAME_COLLISION
Uma instância já existe com esse nome no volume especificado.
ERROR_FILE_NOT_FOUND
Se lpInstanceName não for NULL, lpInstanceName não corresponderá a um nome de instância de filtro registrado no registro.

Comentários

FilterAttach é o equivalente a Win32 de FltAttachVolume.

O nome da instância especificado em lpInstanceName é necessário para ser exclusivo em todo o sistema.

Para anexar uma instância de minifiltro a um volume em determinada altitude, chame FilterAttachAtAltitude.

Para desanexar uma instância de minifiltro de um volume, chame FilterDetach.

Requisitos

Requisito Valor
Plataforma de Destino Universal
Cabeçalho fltuser.h (inclua Fltuser.h)
Biblioteca FltLib.lib
DLL FltLib.dll

Confira também

FilterAttachAtAltitude

FilterDetach

FltAttachVolume