Функция FltOpenVolume (fltkernel.h)
Подпрограмма FltOpenVolum e возвращает дескриптор и указатель объекта файла для тома файловой системы, к которому подключен определенный экземпляр драйвера минифильтра.
Синтаксис
NTSTATUS FLTAPI FltOpenVolume(
[in] PFLT_INSTANCE Instance,
[out] PHANDLE VolumeHandle,
[out] PFILE_OBJECT *VolumeFileObject
);
Параметры
[in] Instance
Указатель непрозрачного экземпляра для экземпляра. Этот экземпляр должен быть присоединен к локальному тому.
[out] VolumeHandle
Обработка тома файловой системы.
[out] VolumeFileObject
Указатель на выделенную вызывающим переменную, которая получает указатель объекта файла для корневого каталога тома. Этот параметр является необязательным и может быть null.
Возвращаемое значение
FltOpenVolume возвращает STATUS_SUCCESS или соответствующее значение NTSTATUS, например следующее:
Возвращаемый код | Описание |
---|---|
|
Экземпляр или том отключается. Это код ошибки. |
|
Экземпляр подключен к сетевому тому. Это код ошибки. |
Замечания
Если дескриптор, возвращенный в параметре volumeHandle, больше не нужен, вызывающий объект должен освободить его, вызвав FltClose. Таким образом, каждый успешный вызов FltOpenVolume должен соответствовать последующему вызову FltClose.
Если указатель объекта файла возвращается в параметре VolumeFileObject, вызывающий объект должен освободить его, если он больше не нужен, вызвав ObDereferenceObject.
Экземпляр, указанный параметром экземпляра, должен быть присоединен к локальному тому. Если он подключен к сетевому тому, FltOpenVolume возвращает STATUS_INVALID_PARAMETER.
Чтобы получить указатель на объект устройства для заданного тома, вызовите FltGetDeviceObject.
Чтобы получить подробные сведения о томе, к которому подключен данный экземпляр, вызовите FltQueryVolumeInformation.
ПРИМЕЧАНИЕ. Не вызывайте эту подпрограмму со значением IRP верхнего уровня, отличного от NULL, так как это может привести к взаимоблокировке системы. Чтобы определить, задан ли поток TopLevelIrp, вызов IoGetTopLevelIrp.
Требования
Требование | Ценность |
---|---|
минимальные поддерживаемые клиентские | Доступно в пакете обновления Microsoft Windows 2000 с пакетом обновления 1 (SP4), Windows XP с пакетом обновления 3 (SP3), Windows Server 2003 с пакетом обновления 1 (SP1) и более поздних версиях операционной системы Windows. |
целевая платформа | Всеобщий |
заголовка | fltkernel.h (include Fltkernel.h) |
библиотеки | FltMgr.lib |
DLL | Fltmgr.sys |
IRQL | PASSIVE_LEVEL |