Функция FltEnumerateVolumes (fltkernel.h)
Подпрограмма FltEnumerateVolumes перечисляет все тома в системе.
Синтаксис
NTSTATUS FLTAPI FltEnumerateVolumes(
[in] PFLT_FILTER Filter,
[out] PFLT_VOLUME *VolumeList,
[in] ULONG VolumeListSize,
[out] PULONG NumberVolumesReturned
);
Параметры
[in] Filter
Указатель непрозрачного фильтра для вызывающего объекта. Этот параметр является обязательным и не может иметь значение NULL.
[out] VolumeList
Указатель на буфер, выделенный вызывающим объектом, который получает массив непрозрачных указателей тома. Этот параметр является необязательным и может иметь значение NULL , если VolumeListSize равно нулю. Если параметр VolumeListSize равен нулю на входных данных и VolumeList имеет значение NULL, numberVolumesReturned получает количество найденных томов.
[in] VolumeListSize
Количество непрозрачных указателей фильтра, на которые может содержаться буфер, на который указывает VolumeList . Этот параметр является необязательным и может быть равен нулю. Если параметр VolumeListSize равен нулю на входных данных и VolumeList имеет значение NULL, numberVolumesReturned получает количество найденных томов.
[out] NumberVolumesReturned
Указатель на переменную, выделенную вызывающим объектом, которая получает количество непрозрачных указателей тома, возвращаемых в массиве, на который указывает VolumeList . Если параметр VolumeListSize слишком мал, а параметр VolumeList не равен NULL на входных данных, Функция FltEnumerateVolumes возвращает STATUS_BUFFER_TOO_SMALL и задает значение NumberVolumesReturned , указывающее на количество найденных томов. Этот параметр является обязательным и не может иметь значение NULL.
Возвращаемое значение
FltEnumerateVolumes возвращает STATUS_SUCCESS или соответствующее значение NTSTATUS, например следующее:
Код возврата | Описание |
---|---|
|
Буфер, на который указывает параметр VolumeList , недостаточно велик для хранения запрошенной информации. Это код ошибки. |
Комментарии
Так как содержимое списка томов диспетчера фильтров может измениться в любое время, два вызова FltEnumerateVolumes не гарантированно возвращают одинаковый результат.
FltEnumerateVolumes добавляет ссылку на очистку каждого непрозрачного указателя тома, возвращаемого в массиве, на который указывает VolumeList . Если эти указатели больше не нужны, вызывающий объект должен освободить их, вызвав FltObjectDereference для каждого из них. Таким образом, каждый успешный вызов FltEnumerateVolumes должен соответствовать последующему вызову FltObjectDereference для каждого возвращаемого указателя тома.
Чтобы преобразовать один или несколько непрозрачных указателей тома, возвращаемых параметром VolumeList , в сведения о томе, вызовите FltGetVolumeInformation.
Чтобы получить сведения о томах для всех томов, известных диспетчеру фильтров, вызовите FltEnumerateVolumeInformation.
Чтобы перечислить все зарегистрированные драйверы минифильтра, вызовите FltEnumerateFilters.
Чтобы перечислить все экземпляры драйвера минифильтра, вызовите FltEnumerateInstances.
Чтобы перечислить все экземпляры драйвера минифильтра на заданном томе, вызовите Метод FltEnumerateInstanceInformationByVolume.
Требования
Требование | Значение |
---|---|
Целевая платформа | Универсальное |
Верхняя часть | fltkernel.h (включая FltKernel.h) |
Библиотека | FltMgr.lib |
IRQL | <= APC_LEVEL |
См. также раздел
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по