Fungsi GetCompressedFileSizeTransactedA (winbase.h)
[Microsoft sangat menyarankan pengembang menggunakan cara alternatif untuk mencapai kebutuhan aplikasi Anda. Banyak skenario yang dikembangkan TxF dapat dicapai melalui teknik yang lebih sederhana dan lebih tersedia. Selain itu, TxF mungkin tidak tersedia di versi Microsoft Windows yang akan datang. Untuk informasi lebih lanjut, dan alternatif TxF, silakan lihat Alternatif untuk menggunakan Transactional NTFS.]
Mengambil jumlah byte aktual penyimpanan disk yang digunakan untuk menyimpan file tertentu sebagai operasi yang ditransaksikan. Jika file terletak pada volume yang mendukung pemadatan dan file dikompresi, nilai yang diperoleh adalah ukuran terkompresi dari file yang ditentukan. Jika file terletak pada volume yang mendukung file jarang dan file adalah file jarang, nilai yang diperoleh adalah ukuran jarang dari file yang ditentukan.
Sintaks
DWORD GetCompressedFileSizeTransactedA(
[in] LPCSTR lpFileName,
[out, optional] LPDWORD lpFileSizeHigh,
[in] HANDLE hTransaction
);
Parameter
[in] lpFileName
Nama file.
Jangan tentukan nama file pada perangkat nonseeking, seperti pipa atau perangkat komunikasi, karena ukuran filenya tidak memiliki arti.
File harus berada di komputer lokal; jika tidak, fungsi gagal dan kode kesalahan terakhir diatur ke ERROR_TRANSACTIONS_UNSUPPORTED_REMOTE.
[out, optional] lpFileSizeHigh
Penunjuk ke variabel yang menerima DWORD urutan tinggi dari ukuran file terkompresi. Nilai pengembalian fungsi adalah DWORD urutan rendah dari ukuran file terkompresi.
Parameter ini dapat berupa NULL jika DWORD urutan tinggi dari ukuran file terkompresi tidak diperlukan. File berukuran kurang dari 4 gigabyte tidak memerlukan DWORD urutan tinggi.
[in] hTransaction
Handel ke transaksi. Handel ini dikembalikan oleh fungsi CreateTransaction .
Mengembalikan nilai
Jika fungsi berhasil, nilai yang dikembalikan adalah DWORD urutan rendah dari jumlah aktual byte penyimpanan disk yang digunakan untuk menyimpan file yang ditentukan, dan jika lpFileSizeHigh bukan NULL, fungsi menempatkan DWORD urutan tinggi dari nilai aktual tersebut ke dalam DWORD yang ditujukkan oleh parameter tersebut. Ini adalah ukuran file terkompresi untuk file terkompresi, ukuran file aktual untuk file yang tidak dikompresi.
Jika fungsi gagal, dan lpFileSizeHigh adalah NULL, nilai yang dikembalikan INVALID_FILE_SIZE. Untuk mendapatkan informasi kesalahan yang diperluas, hubungi GetLastError.
Jika nilai yang dikembalikan INVALID_FILE_SIZE dan lpFileSizeHighnon-NULL, aplikasi harus memanggil GetLastError untuk menentukan apakah fungsi telah berhasil ( nilainya NO_ERROR) atau gagal (nilai selain NO_ERROR).
Keterangan
Aplikasi dapat menentukan apakah volume dikompresi dengan memanggil GetVolumeInformation, lalu memeriksa status bendera FS_VOL_IS_COMPRESSED dalam nilai DWORD yang ditunjukkan oleh parameter lpFileSystemFlags fungsi tersebut.
Jika file tidak terletak pada volume yang mendukung kompresi atau file jarang, atau jika file tidak dikompresi atau file jarang, nilai yang diperoleh adalah ukuran file aktual, sama dengan nilai yang dikembalikan oleh panggilan ke GetFileSize.
Tautan simbolis: Jika jalur menunjuk ke tautan simbolis, fungsi mengembalikan ukuran file target.
Di 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 Scale-out File Shares (SO) | Tidak |
Sistem File Volume Bersama Kluster (CsvFS) | Tidak |
Sistem File Tangguh (ReFS) | Tidak |
SMB 3.0 tidak mendukung TxF.
Catatan
Header winbase.h mendefinisikan GetCompressedFileSizeTransacted sebagai alias yang secara otomatis memilih versi ANSI atau Unicode dari fungsi ini berdasarkan definisi konstanta praprosesor 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 Vista [hanya aplikasi desktop] |
Server minimum yang didukung | Windows Server 2008 [hanya aplikasi desktop] |
Target Platform | Windows |
Header | winbase.h (termasuk Windows.h) |
Pustaka | Kernel32.lib |
DLL | Kernel32.dll |