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


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

Функция FilterAttachAtAltitude — это функция поддержки отладки, которая присоединяет новый экземпляр минифильтра к тому на указанной высоте, переопределяя все параметры в INF-файле сведений о настройке минифильтра.

Синтаксис

HRESULT FilterAttachAtAltitude(
  [in]            LPCWSTR lpFilterName,
  [in]            LPCWSTR lpVolumeName,
  [in]            LPCWSTR lpAltitude,
  [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\"
Этот параметр является обязательным и не может иметь значение NULL.

[in] lpAltitude

Указатель на строку расширенных символов, заканчивающуюся null, которая содержит числовое значение, указывающее целевую позицию, которую экземпляр минифильтра должен занять в стеке для тома. Чем выше число, тем выше относительное положение в стеке. Строка высоты состоит из одной или нескольких цифр в диапазоне от 0 до 9 и может включать одну десятичную запятую. Десятичная запятая является необязательной. Например, "100,123456" является допустимой строкой высоты. Этот параметр является обязательным и не может иметь значение NULL.

[in, optional] lpInstanceName

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

[in, optional] dwCreatedInstanceNameLength

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

[out, optional] lpCreatedInstanceName

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

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

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

Код возврата Описание
ERROR_FLT_INSTANCE_ALTITUDE_COLLISION
Экземпляр уже существует на этой высоте на указанном томе.
ERROR_FLT_INSTANCE_NAME_COLLISION
Экземпляр с этим именем уже существует на указанном томе.

Комментарии

Приложение должно использовать только для отладки FilterAttachAtAltitude . Эта функция не должна вызываться в розничной версии приложения.

FilterAttachAtAltitude — это эквивалент Win32 FltAttachVolumeAtAltitude.

Термин "высота" относится к положению, которое экземпляр занимает (или должен занимать) в стеке экземпляров минифильтра для тома. Чем выше высота, тем дальше экземпляр находится от базовой файловой системы в стеке. На заданной высоте на заданном томе можно подключить только один экземпляр.

Высота задается строкой высоты, которая представляет собой массив расширенных символов, содержащий одну или несколько десятичных цифр в диапазоне от 0 до 9, и может включать одну десятичную запятую. Десятичная запятая является необязательной. Например, "100,123456" и "03333" являются допустимыми строками высоты.

Строка "03333" представляет более высокую высоту, чем "100,123456". (Начальные и конечные нули игнорируются.) Другими словами, экземпляр с высотой 03333 находится дальше от базовой файловой системы, чем экземпляр с высотой 100,123456. Однако это сравнение имеет смысл только в том случае, если оба экземпляра подключены к одному тому.

Имя экземпляра, возвращаемое в lpCreatedInstanceName , является уникальным в системе.

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

Требования

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

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

FilterAttach

FilterDetach

FltAttachVolumeAtAltitude