Функция 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 добавляет ссылку на rundown к каждому из непрозрачных указателей томов, возвращенных в массиве, на который VolumeList указывает. Если эти указатели больше не нужны, вызывающий объект должен освободить их, вызвав FltObjectDereference на каждом из них. Таким образом, каждый успешный вызов FltEnumerateVolumes должен соответствовать последующему вызову FltObjectDereference для каждого возвращаемого указателя тома.
Чтобы преобразовать один или несколько непрозрачных указателей томов, возвращаемых параметром volumeList , в сведения о томе, вызовите FltGetVolumeInformation.
Чтобы перечислить сведения о томах для всех томов, известных диспетчеру фильтров, вызовите FltEnumerateVolumeInformation.
Чтобы перечислить все зарегистрированные драйверы минифильтра, вызовите FltEnumerateFilters.
Чтобы перечислить все экземпляры драйвера минифильтра, вызовите FltEnumerateInstances.
Чтобы перечислить все экземпляры драйвера минифильтра в заданном томе, вызовите FltEnumerateInstanceInformationByVolume.
Требования
Требование | Ценность |
---|---|
целевая платформа | Всеобщий |
заголовка | fltkernel.h (include FltKernel.h) |
библиотеки | FltMgr.lib |
IRQL | <= APC_LEVEL |