Функция 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\"
[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 в случае успешного выполнения. В противном случае возвращается значение ошибки, например одно из следующих значений.
Код возврата | Описание |
---|---|
|
Экземпляр уже существует на этой высоте на указанном томе. |
|
Экземпляр с этим именем уже существует на указанном томе. |
Комментарии
Приложение должно использовать только для отладки 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 |