Функция FltEnumerateInstanceInformationByVolume (fltkernel.h)
Подпрограмма FltEnumerateInstanceInformationByVolume предоставляет сведения об экземплярах драйверов минифильтров и устаревших драйверах фильтров (только для Windows Vista), подключенных к заданному тому.
Синтаксис
NTSTATUS FLTAPI FltEnumerateInstanceInformationByVolume(
[in] PFLT_VOLUME Volume,
[in] ULONG Index,
[in] INSTANCE_INFORMATION_CLASS InformationClass,
[out] PVOID Buffer,
[in] ULONG BufferSize,
[out] PULONG BytesReturned
);
Параметры
[in] Volume
Непрозрачный указатель на том.
[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 структуру для экземпляра драйвера минифильтра или устаревшего драйвера фильтра. Эта структура доступна начиная с Windows Vista. |
[out] Buffer
Указатель на буфер, выделенный вызывающим объектом, который получает запрошенные сведения. Тип сведений, возвращаемых в буфере, определяется параметром InformationClass .
[in] BufferSize
Размер (в байтах) буфера, на который указывает параметр Buffer . Вызывающий объект должен задать этот параметр в соответствии с заданным значением InformationClass .
[out] BytesReturned
Указатель на переменную, выделенную вызывающим объектом, которая получает количество байтов, возвращаемых в буфере, на который указывает буфер . Если входное значение BufferSize слишком мало, Функция FltEnumerateInstanceInformationByVolume возвращает STATUS_BUFFER_TOO_SMALL и задает для этой переменной количество байтов, необходимых для хранения запрошенной информации. Этот параметр является обязательным и не может иметь значение NULL.
Возвращаемое значение
FltEnumerateInstanceInformationByVolume возвращает STATUS_SUCCESS или соответствующее значение NTSTATUS, например одно из следующих значений:
Код возврата | Описание |
---|---|
|
Буфер, на который указывает параметр Buffer , недостаточно велик для хранения запрошенной информации. Это код ошибки. |
|
Найден соответствующий экземпляр минифильтра, но он сносится. Это код ошибки. Обратите внимание, что это возвращаемое значение не применяется к устаревшим драйверам фильтров, так как устаревшие драйверы фильтров не могут быть выгружены. |
|
Для параметра InformationClass указано недопустимое значение. Например, если параметр InstanceAggregateStandardInformation указан в операционной системе до Windows Vista, подпрограмма вернет STATUS_INVALID_PARAMETER. Это код ошибки. |
|
В списке экземпляров или фильтров тома больше нет записей. Это код предупреждения. |
Комментарии
Использование параметра Index позволяет FltEnumerateInstanceInformationByVolume выбрать экземпляры драйверов минифильтра и устаревшие драйверы фильтров в списке экземпляров или фильтров для тома, указанного в томе. Так как экземпляры драйвера минифильтра в списке экземпляров или фильтров могут измениться в любое время, два вызова FltEnumerateInstanceInformationByVolume с одинаковыми значениями Index и Volume не гарантируют получение одного и того же результата.
Начиная с Windows Vista, эта подпрограмма может возвращать как устаревшие сведения о драйвере фильтра, так и сведения об экземпляре драйвера минифильтра, если параметр InformationClass имеет значение InstanceAggregateStandardInformation. Для более ранних операционных систем эта подпрограмма не может возвращать устаревшие сведения о фильтре, так как структура INSTANCE_AGGREGATE_STANDARD_INFORMATION недоступна.
Чтобы получить список сведений о фильтрах для всех зарегистрированных драйверов минифильтра, вызовите FltEnumerateFilterInformation.
Чтобы получить сведения о фильтрах для заданного драйвера минифильтра, вызовите FltGetFilterInformation.
Чтобы перечислить все экземпляры данного драйвера минифильтра, вызовите FltEnumerateInstanceInformationByFilter.
Чтобы перечислить экземпляры всех драйверов минифильтра на всех томах, вызовите FltEnumerateInstances.
Чтобы перечислить все тома, известные диспетчеру фильтров, вызовите FltEnumerateVolumes.
Требования
Требование | Значение |
---|---|
Целевая платформа | Универсальное |
Верхняя часть | fltkernel.h (включая FltKernel.h) |
Библиотека | FltMgr.lib |
IRQL | <= APC_LEVEL |
См. также раздел
FltEnumerateInstanceInformationByFilter