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.
Perilaku tautan simbolis
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 |