Функция NtQueryVolumeInformationFile (ntifs.h)
Подпрограмма NtQueryVolumeInformationFile извлекает сведения о томе, связанном с данным файлом, каталогом, устройством хранения или томом.
Синтаксис
__kernel_entry NTSYSCALLAPI NTSTATUS NtQueryVolumeInformationFile(
[in] HANDLE FileHandle,
[out] PIO_STATUS_BLOCK IoStatusBlock,
[out] PVOID FsInformation,
[in] ULONG Length,
[in] FS_INFORMATION_CLASS FsInformationClass
);
Параметры
[in] FileHandle
Дескриптор объекта файла, возвращаемого ntCreateFile или NtOpenFile для открытого файла, каталога, запоминающего устройства или тома, для которого запрашиваются сведения о томе.
[out] IoStatusBlock
Указатель на структуру IO_STATUS_BLOCK , которая получает окончательное состояние завершения и сведения об операции запроса. Для успешных вызовов, возвращающих данные, число байтов, записанных в буфер FsInformation , возвращается в элементе Information структуры.
[out] FsInformation
Указатель на буфер, выделенный вызывающим объектом, который получает нужные сведения о томе. Структура сведений, возвращаемых в буфере, определяется параметром FsInformationClass .
[in] Length
Размер буфера, на который указывает FsInformation, в байтах. Вызывающий объект должен задать этот параметр в соответствии с заданным FsInformationClass.
[in] FsInformationClass
Тип возвращаемых сведений о томе. Задайте этому члену одно из следующих значений перечисления FS_INFORMATION_CLASS .
Значение | Значение |
---|---|
FileFsAttributeInformation | Возвращает FILE_FS_ATTRIBUTE_INFORMATION структуру, содержащую сведения об атрибутах файловой системы, ответственной за том. |
FileFsControlInformation | Возвращает структуру FILE_FS_CONTROL_INFORMATION , содержащую сведения об управлении файловой системой тома. |
FileFsDeviceInformation | Возвращает FILE_FS_DEVICE_INFORMATION структуру, содержащую сведения об устройстве для тома. |
FileFsDriverPathInformation | Возвращает FILE_FS_DRIVER_PATH_INFORMATION структуру, содержащую сведения о том, находится ли указанный драйвер в пути ввода-вывода для тома. Вызывающий объект должен сохранить имя драйвера в структуре FILE_FS_DRIVER_PATH_INFORMATION перед вызовом NtQueryVolumeInformationFile. |
FileFsFullSizeInformation | Возвращает FILE_FS_FULL_SIZE_INFORMATION структуру, содержащую сведения об общем объеме свободного места на томе. |
FileFsObjectIdInformation | Возвращает FILE_FS_OBJECTID_INFORMATION структуру, содержащую сведения об идентификаторе объекта для конкретной файловой системы для тома. Обратите внимание, что это не то же самое, что уникальное имя тома (на основе GUID), присвоенное операционной системой. |
FileFsSizeInformation | Возвращает структуру FILE_FS_SIZE_INFORMATION , содержащую сведения о томе, доступном пользователю, связанному с вызывающим потоком. |
FileFsVolumeInformation | Возвращает FILE_FS_VOLUME_INFORMATION , содержащую сведения о томе, например метку тома, серийный номер и время создания. |
FileFsSectorSizeInformation | Возвращает FILE_FS_SECTOR_SIZE_INFORMATION структуру, содержащую сведения о размерах физических и логических секторов тома. |
Возвращаемое значение
NtQueryVolumeInformationFile возвращает STATUS_SUCCESS или соответствующее состояние ошибки.
Комментарии
NtQueryVolumeInformationFile извлекает сведения о томе, связанном с данным файлом, каталогом, устройством хранения или томом.
Если FileHandle представляет собой открытое устройство напрямую, в качестве значения FsInformationClass можно указать только FileFsDeviceInformation.
NtQueryVolumeInformationFile возвращает ноль в любом элементе структуры FILE_XXXX_INFORMATION которая не поддерживается файловой системой.
Дополнительные сведения о других процедурах запроса сведений о файлах см. в разделе Объекты файлов.
Минифильтры должны использовать FltQueryVolumeInformationFile вместо NtQueryVolumeInformationFile.
Вызывающие объект NtQueryVolumeInformationFile должны выполняться в среде IRQL = PASSIVE_LEVEL и с включенными специальными APC ядра.
Примечание
Если вызов функции NtQueryVolumeInformationFile выполняется в пользовательском режиме, следует использовать имя NtQueryVolumeInformationFile вместо ZwQueryVolumeInformationFile.
Для вызовов из драйверов режима ядра версии NtXxx и ZwXxx подпрограммы собственных системных служб Windows могут вести себя по-разному, так как они обрабатывают и интерпретируют входные параметры. Дополнительные сведения о связи между версиями процедуры NtXxx и ZwXxx см. в разделе Использование версий Nt и Zw для процедур собственных системных служб.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows XP |
Целевая платформа | Универсальное |
Верхняя часть | ntifs.h (включая Ntifs.h, Ntddk.h) |
Библиотека | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | PASSIVE_LEVEL (см. раздел "Примечания") |
Правила соответствия DDI | HwStorPortProhibitedDIs, PowerIrpDDis |
См. также раздел
FILE_FS_DRIVER_PATH_INFORMATION
IRP_MJ_QUERY_VOLUME_INFORMATION
Использование версий Nt и Zw собственных процедур системных служб