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

Подпрограмма FltEnumerateInstanceInformationByVolumeName предоставляет сведения об экземплярах драйверов минифильтров и устаревших драйверах фильтров, присоединенных к тому с указанным именем.

Синтаксис

NTSTATUS FLTAPI FltEnumerateInstanceInformationByVolumeName(
  [in]  PUNICODE_STRING            VolumeName,
  [in]  ULONG                      Index,
  [in]  INSTANCE_INFORMATION_CLASS InformationClass,
  [out] PVOID                      Buffer,
  [in]  ULONG                      BufferSize,
  [out] PULONG                     BytesReturned
);

Параметры

[in] VolumeName

Имя тома для перечисления экземпляров фильтра.

[in] Index

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

[in] InformationClass

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

Значение Значение
InstanceBasicInformation Буфер, на который указывает параметр Buffer , получает INSTANCE_BASIC_INFORMATION структуру для экземпляра минифильтра. Устаревшие драйверы фильтров игнорируются.
InstanceFullInformation Буфер, на который указывает параметр Buffer , получает INSTANCE_FULL_INFORMATION структуру для экземпляра минифильтра. Устаревшие драйверы фильтров игнорируются.
InstancePartialInformation Буфер, на который указывает параметр Buffer , получает INSTANCE_PARTIAL_INFORMATION структуру для экземпляра минифильтра. Устаревшие драйверы фильтров игнорируются.
InstanceAggregateStandardInformation Буфер, на который указывает параметр Buffer , получает INSTANCE_AGGREGATE_STANDARD_INFORMATION структуру для экземпляра драйвера минифильтра или устаревшего драйвера фильтра.

[out] Buffer

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

[in] BufferSize

Размер (в байтах) буфера, на который указывает параметр Buffer . Вызывающий объект должен задать этот параметр в соответствии с заданным значением InformationClass .

[out] BytesReturned

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

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

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

Код возврата Описание
STATUS_BUFFER_TOO_SMALL
Буфер, на который указывает параметр Buffer , недостаточно велик для хранения запрошенной информации.
STATUS_FLT_DELETING_OBJECT
Найден соответствующий экземпляр минифильтра, но он сносится. Обратите внимание, что это возвращаемое значение не применяется к устаревшим драйверам фильтров, так как устаревшие драйверы фильтров не могут быть выгружены.
STATUS_INVALID_PARAMETER
Для параметра InformationClass указано недопустимое значение.

-или-

Имя_тома содержит недопустимое имя тома.

STATUS_NO_MORE_ENTRIES
В списке экземпляров или фильтров тома больше нет записей.
STATUS_OBJECT_NAME_NOT_FOUND
Том, указанный в параметре VolumeName, не существует.
STATUS_OBJECT_PATH_NOT_FOUND
Путь для тома, указанного в параметре VolumeName , не существует.
STATUS_FLT_VOLUME_NOT_FOUND
Том, указанный параметром VolumeName , не имеет присоединенных экземпляров фильтра.

-или-

Том, указанный параметром VolumeName , удаляется из системы.

STATUS_FLT_INTERNAL_ERROR
Том, указанный параметром VolumeName , зарегистрирован, но к нему не подключены экземпляры фильтра.

Комментарии

Использование параметра Index позволяет FltEnumerateInstanceInformationByVolumeName выбрать экземпляры драйверов минифильтра и устаревшие драйверы фильтров в списке экземпляров или фильтров для тома, указанного volumeName. Так как экземпляры драйвера минифильтра в списке экземпляров или фильтров могут измениться в любое время, два вызова FltEnumerateInstanceInformationByVolumeName с одинаковыми значениями Index и VolumeName не гарантируют получение одного и того же результата.

Эта подпрограмма возвращает сведения о устаревшем драйвере фильтра и сведения об экземпляре драйвера минифильтра, если параметр InformationClass имеет значение InstanceAggregateStandardInformation.

Требования

Требование Значение
Минимальная версия клиента Доступно начиная с Windows 8.
Целевая платформа Универсальное
Верхняя часть fltkernel.h (включая Fltkernel.h)
Библиотека FltMgr.lib
IRQL <= APC_LEVEL

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

FltEnumerateInstanceInformationByDeviceObject

FltEnumerateInstanceInformationByFilter

FltEnumerateInstanceInformationByVolume