Функция GetVolumeInformationA (fileapi.h)
Извлекает сведения о файловой системе и томе, связанном с указанным корневым каталогом.
Чтобы указать дескриптор при получении этих сведений, используйте функцию GetVolumeInformationByHandleW.
Чтобы получить текущее состояние сжатия файла или каталога, используйте FSCTL_GET_COMPRESSION.
Синтаксис
BOOL GetVolumeInformationA(
[in, optional] LPCSTR lpRootPathName,
[out, optional] LPSTR lpVolumeNameBuffer,
[in] DWORD nVolumeNameSize,
[out, optional] LPDWORD lpVolumeSerialNumber,
[out, optional] LPDWORD lpMaximumComponentLength,
[out, optional] LPDWORD lpFileSystemFlags,
[out, optional] LPSTR lpFileSystemNameBuffer,
[in] DWORD nFileSystemNameSize
);
Параметры
[in, optional] lpRootPathName
Указатель на строку, содержащую корневой каталог тома, который нужно описать.
Если этот параметр null, используется корневой каталог текущего каталога. Требуется обратная косая черта. Например, вы указываете \\MyServer\MyShare как \\MyServer\MyShare\, или диск C как "C:\".
[out, optional] lpVolumeNameBuffer
Указатель на буфер, получающий имя указанного тома. Размер буфера указывается параметром nVolumeNameSize.
[in] nVolumeNameSize
Длина буфера имени тома в TCHARs. Максимальный размер буфера составляет MAX_PATHs+1.
Этот параметр игнорируется, если буфер имени тома не указан.
[out, optional] lpVolumeSerialNumber
Указатель на переменную, которая получает серийный номер тома.
Этот параметр может быть null, если серийный номер не требуется.
Эта функция возвращает серийный номер тома, который операционная система назначает при форматировании жесткого диска. Чтобы программно получить серийный номер жесткого диска, который назначает производитель, используйте свойство инструментария управления Windows (WMI) Win32_PhysicalMediaSerialNumber.
[out, optional] lpMaximumComponentLength
Указатель на переменную, которая получает максимальную длину в TCHARs, компонента имени файла, который поддерживает указанная файловая система.
Компонент имени файла — это часть имени файла между обратными косыми чертами.
Значение, хранящееся в переменной, которая *lpMaximumComponentLength указывает, что указанная файловая система поддерживает длинные имена. Например, для файловой системы FAT, поддерживающей длинные имена, функция сохраняет значение 255, а не предыдущий индикатор 8.3. Длинные имена также могут поддерживаться в системах, использующих файловую систему NTFS.
[out, optional] lpFileSystemFlags
Указатель на переменную, которая получает флаги, связанные с указанной файловой системой.
Этот параметр может быть одним или несколькими из следующих флагов. Однако FILE_FILE_COMPRESSION и FILE_VOL_IS_COMPRESSED являются взаимоисключающими.
Ценность | Значение |
---|---|
FILE_CASE_SENSITIVE_SEARCH 0x00000001 |
Указанный том поддерживает имена файлов с учетом регистра. |
FILE_CASE_PRESERVED_NAMES 0x00000002 |
Указанный том поддерживает сохраненный регистр имен файлов при расположении имени на диске. |
FILE_UNICODE_ON_DISK 0x00000004 |
Указанный том поддерживает Юникод в именах файлов, как они отображаются на диске. |
FILE_PERSISTENT_ACLS 0x00000008 |
Указанный том сохраняет и применяет списки управления доступом (ACL). Например, файловая система NTFS сохраняет и применяет списки управления доступом, а файловая система FAT не поддерживает. |
FILE_FILE_COMPRESSION 0x00000010 |
Указанный том поддерживает сжатие на основе файлов. |
FILE_VOLUME_QUOTAS 0x00000020 |
Указанный том поддерживает квоты дисков. |
FILE_SUPPORTS_SPARSE_FILES 0x00000040 |
Указанный том поддерживает разреженные файлы. |
FILE_SUPPORTS_REPARSE_POINTS 0x00000080 |
Указанный том поддерживает точки повторного анализа. ReFS: ReFS поддерживает точки повторного анализа, но не индексирует их, поэтому FindFirstVolumeMountPoint и FindNextVolumeMountPoint не будут работать должным образом. |
FILE_SUPPORTS_REMOTE_STORAGE 0x00000100 |
Файловая система поддерживает удаленное хранилище. |
FILE_RETURNS_CLEANUP_RESULT_INFO 0x00000200 |
При успешной очистке файловая система возвращает сведения, описывающие дополнительные действия, выполняемые во время очистки, например удаление файла. Фильтры файловой системы могут изучить эти сведения в обратном вызове после очистки. |
FILE_SUPPORTS_POSIX_UNLINK_RENAME 0x00000400 |
Файловая система поддерживает операции удаления и переименования в стиле POSIX. |
FILE_VOLUME_IS_COMPRESSED 0x00008000 |
Указанный том является сжатым томом, например том DoubleSpace. |
FILE_SUPPORTS_OBJECT_IDS 0x00010000 |
Указанный том поддерживает идентификаторы объектов. |
FILE_SUPPORTS_ENCRYPTION 0x00020000 |
Указанный том поддерживает зашифрованную файловую систему (EFS). Дополнительные сведения см. в шифрования файлов. |
FILE_NAMED_STREAMS 0x00040000 |
Указанный том поддерживает именованные потоки. |
FILE_READ_ONLY_VOLUME 0x00080000 |
Указанный том доступен только для чтения. |
FILE_SEQUENTIAL_WRITE_ONCE 0x00100000 |
Указанный том поддерживает одну последовательную запись. |
FILE_SUPPORTS_TRANSACTIONS 0x00200000 |
Указанный том поддерживает транзакции. Дополнительные сведения см. в разделе О KTM. |
FILE_SUPPORTS_HARD_LINKS 0x00400000 |
Указанный том поддерживает жесткие ссылки. Дополнительные сведения см. в жестких ссылок и соединений. Windows Server 2008, Windows Vista, Windows Server 2003 и Windows XP: Это значение не поддерживается до Windows Server 2008 R2 и Windows 7. |
FILE_SUPPORTS_EXTENDED_ATTRIBUTES 0x00800000 |
Указанный том поддерживает расширенные атрибуты. Расширенный атрибут — это часть метаданных, относящихся к приложению, которые приложение может связать с файлом и не является частью данных файла. Windows Server 2008, Windows Vista, Windows Server 2003 и Windows XP: Это значение не поддерживается до Windows Server 2008 R2 и Windows 7. |
FILE_SUPPORTS_OPEN_BY_FILE_ID 0x01000000 |
Файловая система поддерживает открытие с помощью FileID. Дополнительные сведения см. в FILE_ID_BOTH_DIR_INFO. Windows Server 2008, Windows Vista, Windows Server 2003 и Windows XP: Это значение не поддерживается до Windows Server 2008 R2 и Windows 7. |
FILE_SUPPORTS_USN_JOURNAL 0x02000000 |
Указанный том поддерживает журналы обновления последовательности (USN). Дополнительные сведения см. в записей журнала изменений. Windows Server 2008, Windows Vista, Windows Server 2003 и Windows XP: Это значение не поддерживается до Windows Server 2008 R2 и Windows 7. |
FILE_SUPPORTS_INTEGRITY_STREAMS 0x04000000 |
Файловая система поддерживает потоки целостности . |
FILE_SUPPORTS_BLOCK_REFCOUNTING 0x08000000 |
Указанный том поддерживает совместное использование логических кластеров между файлами в одном томе. Файловая система перераспределяет записи в общие кластеры. Указывает, что FSCTL_DUPLICATE_EXTENTS_TO_FILE является поддерживаемой операцией. |
FILE_SUPPORTS_SPARSE_VDL 0x10000000 |
Файловая система отслеживает, содержит ли каждый кластер файла допустимые данные (из явных операций записи файлов или автоматических нулей) или недопустимых данных (еще не записаны в или ноль). Файловые системы, использующие разреженную длину данных (VDL), не хранят допустимую длину данных и не требуют, чтобы допустимые данные были рядом в файле. |
FILE_DAX_VOLUME 0x20000000 |
Указанный том — это том прямого доступа (DAX). Примечание : Этот флаг появился в Windows 10 версии 1607. |
FILE_SUPPORTS_GHOSTING 0x40000000 |
Файловая система поддерживает призраки. |
[out, optional] lpFileSystemNameBuffer
Указатель на буфер, который получает имя файловой системы, например файловую систему FAT или файловую систему NTFS. Размер буфера задается параметром nFileSystemNameSize.
[in] nFileSystemNameSize
Длина буфера имени файловой системы в
Этот параметр игнорируется, если буфер имени файловой системы не указан.
Возвращаемое значение
Если извлекаются все запрошенные сведения, возвращаемое значение ненулевое.
Если не все запрошенные сведения извлекаются, возвращаемое значение равно нулю. Чтобы получить расширенные сведения об ошибке, вызовите GetLastError.
Замечания
Когда пользователь пытается получить сведения о диске, который не имеет диска floppy, или диска CD-ROM, который не имеет компакт-диска, система отображает окно сообщения для пользователя, чтобы вставить диск или компакт-диск соответственно. Чтобы предотвратить отображение этого поля сообщения системой, вызовите функцию SetErrorMode с SEM_FAILCRITICALERRORS.
Флаг FILE_VOL_IS_COMPRESSED является единственным индикатором сжатия на основе томов. Имя файловой системы не изменяется, чтобы указать сжатие, например, этот флаг возвращается в томе DoubleSpace. Если сжатие основано на томе, весь том сжимается или не сжимается.
Флаг FILE_FILE_COMPRESSION указывает, поддерживает ли файловая система сжатие на основе файлов. При сжатие на основе файлов отдельные файлы можно сжимать или не сжимать.
Флаги FILE_FILE_COMPRESSION и FILE_VOL_IS_COMPRESSED являются взаимоисключающими. Оба бита не могут быть возвращены.
Максимальное значение длины компонента, хранящееся в lpMaximumComponentLength, является единственным показателем того, что том поддерживает более длинные имена файловой системы FAT (или другой файловой системы). Имя файловой системы не изменяется, чтобы указать поддержку длинных имен файлов.
Функция getCompressedFileSize
Поведение символьной ссылки
Если путь указывает на символьную ссылку, функция возвращает сведения о томе для целевого объекта.
Начиная с Windows 8 и Windows Server 2012 эта функция поддерживается следующими технологиями.
Технологии | Поддержанный |
---|---|
Протокол SMB 3.0 | Нет |
Отработка отказа SMB 3.0 (TFO) | Нет |
SMB 3.0 с масштабируемыми общими папками (SO) | Нет |
Файловая система общего тома кластера (CSVFS) | Да |
Отказоустойчивая файловая система (ReFS) | Да |
SMB не поддерживает функции управления томами.
Операции с транзакцией
Если том поддерживает транзакции файловой системы, функция возвращает FILE_SUPPORTS_TRANSACTIONS в lpFileSystemFlags.
Заметка
Заголовок fileapi.h определяет GetVolumeInformation как псевдоним, который автоматически выбирает версию ANSI или Юникод этой функции на основе определения константы препроцессора UNICODE. Сочетание использования псевдонима, нейтрального для кодирования, с кодом, не зависящим от кодирования, может привести к несоответствиям, которые приводят к ошибкам компиляции или среды выполнения. Дополнительные сведения см. в соглашениях о прототипах функций.
Требования
Требование | Ценность |
---|---|
минимальные поддерживаемые клиентские | Windows XP [классические приложения | Приложения UWP] |
минимальный поддерживаемый сервер | Windows Server 2003 [классические приложения | Приложения UWP] |
целевая платформа | Виндоус |
заголовка | fileapi.h (включая Windows.h) |
библиотеки |
Kernel32.lib |
DLL | Kernel32.dll |
См. также
функций управления томами