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


Функция FltGetVolumeFromName (fltkernel.h)

Подпрограмма FltGetVolumeFromName возвращает непрозрачный указатель для тома, имя которого соответствует значению параметра VolumeName.

Синтаксис

NTSTATUS FLTAPI FltGetVolumeFromName(
  [in]  PFLT_FILTER      Filter,
  [in]  PCUNICODE_STRING VolumeName,
  [out] PFLT_VOLUME      *RetVolume
);

Параметры

[in] Filter

Непрозрачный указатель фильтра для вызывающего объекта. Этот параметр является обязательным и не может быть null.

[in] VolumeName

Указатель на структуру UNICODE_STRING, содержащую имя тома (например, "\Device\HarddiskVolume1", "\DosDevices\D:", "\?? \D:" или "D:"). Этот параметр является обязательным и не может быть null.

[out] RetVolume

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

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

FltGetVolumeFromName возвращает STATUS_SUCCESS или соответствующее значение NTSTATUS, например одно из следующих:

Возвращаемый код Описание
STATUS_ACCESS_DENIED Вызывающий объект не FILE_READ_DATA доступ к тому. Это код ошибки.
STATUS_FLT_DELETING_OBJECT Том отключается. Это код ошибки.
STATUS_INVALID_PARAMETER Недопустимое значение было указано для параметра VolumeName. Это код ошибки.
STATUS_FLT_VOLUME_NOT_FOUND Не найдено соответствующего тома. Это код ошибки.

Замечания

FltGetVolumeFromName выполняет поиск глобального списка томов диспетчера фильтров для тома, имя которого соответствует VolumeName. Вызывающий объект должен иметь FILE_READ_DATA доступ к тому. Чтобы найти структуру тома, FltGetVolumeFromName сначала откройте том.

FltGetVolumeFromName добавляет ссылку rundown на непрозрачный указатель тома, возвращенный в параметре RetVolume. Если этот указатель больше не нужен, вызывающий объект должен освободить его, вызвав FltObjectDereference. Таким образом, каждый успешный вызов FltGetVolumeFromName должен соответствовать последующему вызову FltObjectDereference.

Чтобы получить имя тома для данного тома, вызовите FltGetVolumeName.

Чтобы получить имя GUID тома для заданного тома, вызовите FltGetVolumeGuidName.

Требования

Требование Ценность
целевая платформа Всеобщий
заголовка fltkernel.h (include Fltkernel.h)
библиотеки FltMgr.lib
DLL Fltmgr.sys
IRQL PASSIVE_LEVEL

См. также

FltGetFilterFromName

FltGetVolumeGuidName

FltGetVolumeInstanceFromName

FltGetVolumeName

FltObjectDereference

UNICODE_STRING