Fungsi GetVolumeInformationA (fileapi.h)

Mengambil informasi tentang sistem file dan volume yang terkait dengan direktori akar yang ditentukan.

Untuk menentukan handel saat mengambil informasi ini, gunakan fungsi GetVolumeInformationByHandleW .

Untuk mengambil status kompresi file atau direktori saat ini, gunakan FSCTL_GET_COMPRESSION.

Sintaks

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
);

Parameter

[in, optional] lpRootPathName

Penunjuk ke string yang berisi direktori akar volume yang akan dijelaskan.

Jika parameter ini NULL, akar direktori saat ini digunakan. Garis miring terbelakang diperlukan. Misalnya, Anda menentukan \\MyServer\MyShare sebagai "\\MyServer\MyShare\", atau drive C sebagai "C:\".

[out, optional] lpVolumeNameBuffer

Penunjuk ke buffer yang menerima nama volume tertentu. Ukuran buffer ditentukan oleh parameter nVolumeNameSize .

[in] nVolumeNameSize

Panjang buffer nama volume, dalam TCHAR. Ukuran buffer maksimum adalah MAX_PATHs+1.

Parameter ini diabaikan jika buffer nama volume tidak disediakan.

[out, optional] lpVolumeSerialNumber

Pointer ke variabel yang menerima nomor seri volume.

Parameter ini bisa NULL jika nomor seri tidak diperlukan.

Fungsi ini mengembalikan nomor seri volume yang ditetapkan sistem operasi saat hard disk diformat. Untuk mendapatkan nomor seri hard disk yang ditetapkan produsen secara terprogram, gunakan properti Windows Management Instrumentation (WMI) Win32_PhysicalMediaSerialNumber.

[out, optional] lpMaximumComponentLength

Penunjuk ke variabel yang menerima panjang maksimum, dalam TCHAR, dari komponen nama file yang didukung sistem file tertentu.

Komponen nama file adalah bagian dari nama file di antara garis miring terbelakang.

Nilai yang disimpan dalam variabel yang ditunjukkan *lpMaximumComponentLength digunakan untuk menunjukkan bahwa sistem file tertentu mendukung nama panjang. Misalnya, untuk sistem file FAT yang mendukung nama panjang, fungsi menyimpan nilai 255, bukan indikator 8,3 sebelumnya. Nama panjang juga dapat didukung pada sistem yang menggunakan sistem file NTFS.

[out, optional] lpFileSystemFlags

Penunjuk ke variabel yang menerima bendera yang terkait dengan sistem file yang ditentukan.

Parameter ini bisa menjadi satu atau beberapa bendera berikut. Namun, FILE_FILE_COMPRESSION dan FILE_VOL_IS_COMPRESSED saling eksklusif.

Nilai Makna
FILE_CASE_SENSITIVE_SEARCH
0x00000001
Volume yang ditentukan mendukung nama file peka huruf besar/kecil.
FILE_CASE_PRESERVED_NAMES
0x00000002
Volume yang ditentukan mendukung kasus nama file yang dipertahankan ketika menempatkan nama pada disk.
FILE_UNICODE_ON_DISK
0x00000004
Volume yang ditentukan mendukung Unicode dalam nama file saat muncul di disk.
FILE_PERSISTENT_ACLS
0x00000008
Volume yang ditentukan mempertahankan dan memberlakukan daftar kontrol akses (ACL). Misalnya, sistem file NTFS mempertahankan dan memberlakukan ACL, dan sistem file FAT tidak.
FILE_FILE_COMPRESSION
0x00000010
Volume yang ditentukan mendukung kompresi berbasis file.
FILE_VOLUME_QUOTAS
0x00000020
Volume yang ditentukan mendukung kuota disk.
FILE_SUPPORTS_SPARSE_FILES
0x00000040
Volume yang ditentukan mendukung file jarang.
FILE_SUPPORTS_REPARSE_POINTS
0x00000080
Volume yang ditentukan mendukung titik pemilah ulang.

Refs: ReFS mendukung titik reparse tetapi tidak mengindeksnya sehingga FindFirstVolumeMountPoint dan FindNextVolumeMountPoint tidak akan berfungsi seperti yang diharapkan.
FILE_SUPPORTS_REMOTE_STORAGE
0x00000100
Sistem file mendukung penyimpanan jarak jauh.
FILE_RETURNS_CLEANUP_RESULT_INFO
0x00000200
Pada operasi pembersihan yang berhasil, sistem file mengembalikan informasi yang menjelaskan tindakan tambahan yang diambil selama pembersihan, seperti menghapus file. Filter sistem file dapat memeriksa informasi ini dalam panggilan balik pasca-pembersihannya.
FILE_SUPPORTS_POSIX_UNLINK_RENAME
0x00000400
Sistem file mendukung operasi hapus dan ganti nama gaya POSIX.
FILE_VOLUME_IS_COMPRESSED
0x00008000
Volume yang ditentukan adalah volume terkompresi, misalnya, volume DoubleSpace.
FILE_SUPPORTS_OBJECT_IDS
0x00010000
Volume yang ditentukan mendukung pengidentifikasi objek.
FILE_SUPPORTS_ENCRYPTION
0x00020000
Volume yang ditentukan mendukung Sistem File Terenkripsi (EFS). Untuk informasi selengkapnya, lihat Enkripsi File.
FILE_NAMED_STREAMS
0x00040000
Volume yang ditentukan mendukung aliran bernama.
FILE_READ_ONLY_VOLUME
0x00080000
Volume yang ditentukan bersifat baca-saja.
FILE_SEQUENTIAL_WRITE_ONCE
0x00100000
Volume yang ditentukan mendukung satu tulisan berurutan.
FILE_SUPPORTS_TRANSACTIONS
0x00200000
Volume yang ditentukan mendukung transaksi. Untuk informasi selengkapnya, lihat Tentang KTM.
FILE_SUPPORTS_HARD_LINKS
0x00400000
Volume yang ditentukan mendukung tautan keras. Untuk informasi selengkapnya, lihat Hard Link dan Junctions.

Windows Server 2008, Windows Vista, Windows Server 2003 dan Windows XP: Nilai ini tidak didukung sampai Windows Server 2008 R2 dan Windows 7.
FILE_SUPPORTS_EXTENDED_ATTRIBUTES
0x00800000
Volume yang ditentukan mendukung atribut yang diperluas. Atribut yang diperluas adalah bagian dari metadata khusus aplikasi yang dapat dikaitkan dengan file dan bukan bagian dari data file.

Windows Server 2008, Windows Vista, Windows Server 2003 dan Windows XP: Nilai ini tidak didukung sampai Windows Server 2008 R2 dan Windows 7.
FILE_SUPPORTS_OPEN_BY_FILE_ID
0x01000000
Sistem file mendukung pembukaan oleh FileID. Untuk informasi selengkapnya, lihat FILE_ID_BOTH_DIR_INFO.

Windows Server 2008, Windows Vista, Windows Server 2003 dan Windows XP: Nilai ini tidak didukung sampai Windows Server 2008 R2 dan Windows 7.
FILE_SUPPORTS_USN_JOURNAL
0x02000000
Volume yang ditentukan mendukung jurnal nomor urutan pembaruan (USN). Untuk informasi selengkapnya, lihat Mengubah Rekaman Journal.

Windows Server 2008, Windows Vista, Windows Server 2003 dan Windows XP: Nilai ini tidak didukung sampai Windows Server 2008 R2 dan Windows 7.
FILE_SUPPORTS_INTEGRITY_STREAMS
0x04000000
Sistem file mendukung aliran integritas.
FILE_SUPPORTS_BLOCK_REFCOUNTING
0x08000000
Volume yang ditentukan mendukung berbagi kluster logis antar file pada volume yang sama. Sistem file merealokasi pada penulisan ke kluster bersama. Menunjukkan bahwa FSCTL_DUPLICATE_EXTENTS_TO_FILE adalah operasi yang didukung.
FILE_SUPPORTS_SPARSE_VDL
0x10000000
Sistem file melacak apakah setiap kluster file berisi data yang valid (baik dari penulisan file eksplisit atau nol otomatis) atau data yang tidak valid (belum ditulis ke atau nol). Sistem file yang menggunakan panjang data yang valid (VDL) jarang tidak menyimpan panjang data yang valid dan tidak mengharuskan data yang valid berdampingan dalam file.
FILE_DAX_VOLUME
0x20000000
Volume yang ditentukan adalah volume akses langsung (DAX).

Catatan:
Bendera ini diperkenalkan di Windows 10, versi 1607.
FILE_SUPPORTS_GHOSTING
0x40000000
Sistem file mendukung ghosting.

[out, optional] lpFileSystemNameBuffer

Penunjuk ke buffer yang menerima nama sistem file, misalnya, sistem file FAT atau sistem file NTFS. Ukuran buffer ditentukan oleh parameter nFileSystemNameSize .

[in] nFileSystemNameSize

Panjang buffer nama sistem file, dalam TCHAR. Ukuran buffer maksimum adalah MAX_PATH+1.

Parameter ini diabaikan jika buffer nama sistem file tidak disediakan.

Mengembalikan nilai

Jika semua informasi yang diminta diambil, nilai yang dikembalikan bukan nol.

Jika tidak semua informasi yang diminta diambil, nilai yang dikembalikan adalah nol. Untuk mendapatkan informasi kesalahan yang diperluas, hubungi GetLastError.

Keterangan

Ketika pengguna mencoba untuk mendapatkan informasi tentang drive floppy yang tidak memiliki disket, atau drive CD-ROM yang tidak memiliki cakram ringkas, sistem menampilkan kotak pesan bagi pengguna untuk menyisipkan disket atau cakram ringkas, masing-masing. Untuk mencegah sistem menampilkan kotak pesan ini, panggil fungsi SetErrorMode dengan SEM_FAILCRITICALERRORS.

Bendera FILE_VOL_IS_COMPRESSED adalah satu-satunya indikator kompresi berbasis volume. Nama sistem file tidak diubah untuk menunjukkan pemadatan, misalnya, bendera ini dikembalikan yang diatur pada volume DoubleSpace. Ketika kompresi berbasis volume, seluruh volume dikompresi atau tidak dikompresi.

Bendera FILE_FILE_COMPRESSION menunjukkan apakah sistem file mendukung kompresi berbasis file. Ketika pemadatan berbasis file, file individual dapat dikompresi atau tidak dikompresi.

Bendera FILE_FILE_COMPRESSION dan FILE_VOL_IS_COMPRESSED saling eksklusif. Kedua bit tidak dapat dikembalikan.

Nilai panjang komponen maksimum yang disimpan dalam lpMaximumComponentLength adalah satu-satunya indikator bahwa volume mendukung nama file sistem file FAT yang lebih panjang dari normal (atau sistem file lainnya). Nama sistem file tidak diubah untuk menunjukkan dukungan untuk nama file panjang.

Fungsi GetCompressedFileSize mendapatkan ukuran file yang dikompresi. Fungsi GetFileAttributes dapat menentukan apakah file individual dikompresi.

Jika jalur menunjuk ke tautan simbolis, fungsi mengembalikan informasi volume untuk target.

Dimulai dengan Windows 8 dan Windows Server 2012, fungsi ini didukung oleh teknologi berikut.

Teknologi Didukung
Protokol Server Message Block (SMB) 3.0 Tidak
SMB 3.0 Transparent Failover (TFO) Tidak
SMB 3.0 dengan Berbagi File Peluasan Skala (SO) Tidak
Sistem File Volume Bersama Kluster (CsvFS) Ya
Sistem File Tangguh (ReFS) Ya

SMB tidak mendukung fungsi manajemen volume.

Operasi Yang Ditransaksikan

Jika volume mendukung transaksi sistem file, fungsi mengembalikan FILE_SUPPORTS_TRANSACTIONS di lpFileSystemFlags.

Catatan

Header fileapi.h mendefinisikan GetVolumeInformation sebagai alias yang secara otomatis memilih versi ANSI atau Unicode dari fungsi ini berdasarkan definisi konstanta praprosedur UNICODE. Mencampur penggunaan alias encoding-netral dengan kode yang tidak mengodekan-netral dapat menyebabkan ketidakcocokan yang mengakibatkan kesalahan kompilasi atau runtime. Untuk informasi selengkapnya, lihat Konvensi untuk Prototipe Fungsi.

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung Windows XP [aplikasi desktop | Aplikasi UWP]
Server minimum yang didukung Windows Server 2003 [aplikasi desktop | Aplikasi UWP]
Target Platform Windows
Header fileapi.h (sertakan Windows.h)
Pustaka Kernel32.lib
DLL Kernel32.dll

Lihat juga

Tentang KTM

Enkripsi File

GetCompressedFileSize

GetFileAttributes

GetVolumeInformationByHandleW

SetErrorMode

SetVolumeLabel

Fungsi Manajemen Volume