Поделиться через


Функция FilterAttach (fltuser.h)

Функция FilterAttach присоединяет новый экземпляр минифильтра к заданному тому.

Синтаксис

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

Параметры

[in] lpFilterName

Указатель на строку расширенных символов, завершающуюся null, которая содержит имя минифильтра, для которого создается экземпляр. Этот параметр является обязательным и не может иметь значение NULL.

[in] lpVolumeName

Указатель на строку расширенных символов со значением NULL, содержащую имя тома, к которому будет присоединен только что созданный экземпляр.

Входная строка lpVolumeName может быть любой из следующих. Обратная косая черта в конце (\) является необязательной.

  • Буква диска, например "D:\"
  • Путь к точке подключения тома, например "c:\mnt\edrive\"
  • Уникальный идентификатор тома (также называемый именем GUID тома), например "\?? \Volume{7603f260-142a-11d4-ac67-806d6172696f}\"
  • Имя устройства, не являющееся неотстоятельным (также называемое целевым именем или именем устройства NT), например "\Device\HarddiskVolume1\"
Параметр lpVolumeName является обязательным и не может иметь значение NULL.

[in, optional] lpInstanceName

Указатель на строку расширенных символов со значением NULL, содержащую имя экземпляра для нового экземпляра. Этот параметр является необязательным и может иметь значение NULL. Если этот параметр имеет значение NULL, новый экземпляр получает имя экземпляра минифильтра по умолчанию, как описано в разделе Примечания для FltAttachVolume.

[in, optional] dwCreatedInstanceNameLength

Длина (в байтах) буфера, на который указывает lpCreatedInstanceName . Этот параметр является необязательным и может быть равен нулю.

[out, optional] lpCreatedInstanceName

Указатель на переменную, выделенную вызывающим объектом, которая получает имя экземпляра для нового экземпляра, если экземпляр успешно присоединен к тому. Этот параметр является необязательным и может иметь значение NULL. Если значение не равно NULL, буфер должен быть достаточно большим, чтобы вместить INSTANCE_NAME_MAX_CHARS символов, а также признак конца NULL.

Возвращаемое значение

FilterAttach возвращает S_OK в случае успешного выполнения. В противном случае возвращается значение ошибки, например одно из следующих значений.

Код возврата Описание
ERROR_FLT_INSTANCE_ALTITUDE_COLLISION
Экземпляр уже существует на этой высоте на указанном томе.
ERROR_FLT_INSTANCE_NAME_COLLISION
Экземпляр с этим именем уже существует на указанном томе.
ERROR_FILE_NOT_FOUND
Если значение lpInstanceName не равно NULL, lpInstanceName не соответствует имени зарегистрированного экземпляра фильтра в реестре.

Комментарии

FilterAttach — это эквивалент FltAttachVolume в Win32.

Имя экземпляра, указанное в lpInstanceName , должно быть уникальным в системе.

Чтобы подключить экземпляр минифильтра к тому на заданной высоте, вызовите FilterAttachAtAltitude.

Чтобы отсоединить экземпляр минифильтра от тома, вызовите FilterDetach.

Требования

Требование Значение
Целевая платформа Универсальное
Верхняя часть fltuser.h (включая Fltuser.h)
Библиотека FltLib.lib
DLL FltLib.dll

См. также раздел

FilterAttachAtAltitude

FilterDetach

FltAttachVolume