Поделиться через


Функция GetVolumeInformationByHandleW (fileapi.h)

Извлекает сведения о файловой системе и томе, связанном с указанным файлом.

Чтобы получить текущее состояние сжатия файла или каталога, используйте FSCTL_GET_COMPRESSION.

Синтаксис

BOOL GetVolumeInformationByHandleW(
  [in]            HANDLE  hFile,
  [out, optional] LPWSTR  lpVolumeNameBuffer,
  [in]            DWORD   nVolumeNameSize,
  [out, optional] LPDWORD lpVolumeSerialNumber,
  [out, optional] LPDWORD lpMaximumComponentLength,
  [out, optional] LPDWORD lpFileSystemFlags,
  [out, optional] LPWSTR  lpFileSystemNameBuffer,
  [in]            DWORD   nFileSystemNameSize
);

Параметры

[in] hFile

Дескриптор файла.

[out, optional] lpVolumeNameBuffer

Указатель на буфер, получающий имя указанного тома. Максимальный размер буфера — MAX_PATH+1.

[in] nVolumeNameSize

Длина буфера имени тома в WCHAR. Максимальный размер буфера — MAX_PATH+1.

Этот параметр игнорируется, если буфер имени тома не указан.

[out, optional] lpVolumeSerialNumber

Указатель на переменную, которая получает серийный номер тома.

Этот параметр может иметь значение NULL , если серийный номер не требуется.

Эта функция возвращает серийный номер тома, который назначается операционной системой при форматировании жесткого диска. Чтобы программно получить серийный номер жесткого диска, назначенный производителем, используйте инструментарий управления Windows (WMI) Win32_PhysicalMedia свойство SerialNumber.

[out, optional] lpMaximumComponentLength

Указатель на переменную, которая получает максимальную длину компонента имени файла в WCHAR, который поддерживает указанная файловая система.

Компонент имени файла — это часть имени файла между обратными косыми чертами.

Значение, хранящееся в переменной , на которую указывает *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
Указанный том поддерживает точки повторного анализа.
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 Vista и Windows Server 2008: Это значение не поддерживается.

FILE_SUPPORTS_EXTENDED_ATTRIBUTES
0x00800000
Указанный том поддерживает расширенные атрибуты. Расширенный атрибут — это часть метаданных конкретного приложения, которые приложение может связать с файлом и не является частью данных файла.

Windows Vista и Windows Server 2008: Это значение не поддерживается.

FILE_SUPPORTS_OPEN_BY_FILE_ID
0x01000000
Файловая система поддерживает открытие по FileID. Дополнительные сведения см. в разделе FILE_ID_BOTH_DIR_INFO.

Windows Vista и Windows Server 2008: Это значение не поддерживается.

FILE_SUPPORTS_USN_JOURNAL
0x02000000
Указанный том поддерживает журналы последовательности обновления (USN). Дополнительные сведения см. в разделе Изменение записей журнала.

Windows Vista и Windows Server 2008: Это значение не поддерживается.

FILE_SUPPORTS_BLOCK_REFCOUNTING
0x08000000
Указанный том поддерживает совместное использование логических кластеров между файлами на одном томе. Файловая система перераспределяет операции записи в общие кластеры. Указывает, что FSCTL_DUPLICATE_EXTENTS_TO_FILE является поддерживаемой операцией.

[out, optional] lpFileSystemNameBuffer

Указатель на буфер, который получает имя файловой системы, например файловую систему FAT или файловую систему NTFS. Размер буфера определяется параметром nFileSystemNameSize .

[in] nFileSystemNameSize

Длина буфера имен файловой системы в WCHAR. Максимальный размер буфера — MAX_PATH+1.

Этот параметр игнорируется, если буфер имен файловой системы не указан.

Возвращаемое значение

Если извлекаются все запрошенные сведения, возвращаемое значение не равно нулю.

Если не все запрошенные сведения извлекаются, возвращаемое значение равно нулю. Дополнительные сведения об ошибке можно получить, вызвав GetLastError.

Комментарии

В Windows 8 и Windows Server 2012 эта функция поддерживается следующими технологиями.

Технология Поддерживается
Протокол SMB 3.0 Нет
SMB 3.0 Transparent Failover (TFO) Нет
SMB 3.0 с масштабируемыми общими папками (SO) Нет
Файловая система общего тома кластера (CSVFS) Да
Восстанавливаемая файловая система (ReFS) Да

SMB не поддерживает функции управления томами.

Требования

   
Минимальная версия клиента Windows Vista [только классические приложения]
Минимальная версия сервера Windows Server 2008 [только классические приложения]
Целевая платформа Windows
Header fileapi.h (включая Windows.h)
Библиотека Kernel32.lib
DLL Kernel32.dll

См. также

Сведения о KTM

Шифрование файлов

GetCompressedFileSize

GetFileAttributes

GetVolumeInformation

SetErrorMode

SetVolumeLabel

Функции управления томами