Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
[Fungsi ini tersedia untuk digunakan dalam sistem operasi yang ditunjukkan di bagian Persyaratan. Ini mungkin diubah atau tidak tersedia dalam versi berikutnya. SetupAPI tidak boleh lagi digunakan untuk menginstal aplikasi. Sebagai gantinya, gunakan Penginstal Windows untuk mengembangkan penginstal aplikasi. PenyetelanAPI terus digunakan untuk menginstal pengandar perangkat.]
Fungsi SetupGetFileCompressionInfo memeriksa file fisik untuk menentukan apakah file dikompresi dan mendapatkan jalur lengkap, ukuran, dan ukuran file target yang tidak dikompresi.
Perhatikan bahwa fungsi ini kedaluwarsa dan telah digantikan oleh SetupGetFileCompressionInfoEx. Jangan gunakan SetupGetFileCompressionInfo, sebagai gantinya selalu gunakan SetupGetFileCompressionInfoEx.
Sintaksis
WINSETUPAPI DWORD SetupGetFileCompressionInfoA(
[in] PCSTR SourceFileName,
[in, out] PSTR *ActualSourceFileName,
[in, out] PDWORD SourceFileSize,
[in, out] PDWORD TargetFileSize,
[in, out] PUINT CompressionType
);
Parameter
[in] SourceFileName
Nama file file tentang informasi mana yang diperlukan. Jika file tidak ditemukan di media sumber persis seperti bernama, file dicari dengan hingga dua nama "bentuk terkompresi" alternatif. Misalnya, jika file F:\x86\cmd.exe dan tidak ditemukan, F:\mpis\cmd.ex_ dicari dan, jika tidak ditemukan, pencarian dilakukan untuk F:\x86\cmd.ex$. Anda harus menggunakan string null-terminated.
[in, out] ActualSourceFileName
Pointer ke variabel yang menerima jalur lengkap file yang telah dapat ditemukan. Pemanggil dapat membebaskan pointer dengan panggilan ke LocalFree. Jalur hanya valid jika fungsi mengembalikan NO_ERROR. Perhatikan bahwa jika versi SetupAPI.dll kurang dari 5.0.2195, pemanggil perlu menggunakan fungsi yang diekspor MyFree dari SetupAPI untuk membebaskan memori yang dialokasikan oleh fungsi ini, daripada menggunakan LocalFree. Lihat bagian Komentar.
[in, out] SourceFileSize
Penunjuk ke variabel di mana fungsi ini mengembalikan ukuran file dalam bentuknya saat ini yang merupakan ukuran file saat ini yang dinamai oleh ActualSourceFileName. Ukuran ditentukan dengan memeriksa file sumber; ini tidak diambil dari file INF. Ukuran file sumber hanya valid jika fungsi mengembalikan NO_ERROR.
[in, out] TargetFileSize
Penunjuk ke variabel di mana fungsi ini mengembalikan ukuran yang akan ditempati file ketika tidak dikompresi atau disalin. Jika file tidak dikompresi, nilai ini akan sama dengan SourceFileSize. Ukuran ditentukan dengan memeriksa file; ini tidak diambil dari file INF. Ukuran file target hanya valid jika fungsi mengembalikan NO_ERROR.
[in, out] CompressionType
Penunjuk ke variabel di mana fungsi ini mengembalikan nilai yang menunjukkan jenis pemadatan yang digunakan pada ActualSourceFileName. Jenis pemadatan hanya valid jika fungsi mengembalikan NO_ERROR. Nilainya bisa menjadi salah satu bendera berikut.
FILE_COMPRESSION_NONE
File sumber tidak dikompresi dengan algoritma kompresi yang dikenali.
FILE_COMPRESSION_WINLZA
File sumber dikompresi dengan kompresi LZ.
FILE_COMPRESSION_MSZIP
File sumber dikompresi dengan kompresi MSZIP.
Mengembalikan nilai
Fungsi mengembalikan kode kesalahan sistem yang menunjukkan hasil pencarian file. Kode kesalahan bisa menjadi salah satu nilai berikut.
Untuk mendapatkan informasi kesalahan yang diperluas, panggil GetLastError.
Komentar
Jangan gunakan SetupGetFileCompressionInfo, sebagai gantinya selalu gunakan SetupGetFileCompressionInfoEx.
Karena SetupGetFileCompressionInfo menentukan kompresi dengan mereferensikan file fisik, aplikasi penyiapan Anda harus memastikan bahwa file ada sebelum memanggil SetupGetFileCompressionInfo.
Perhatikan bahwa jika versi SetupAPI.dll kurang dari 5.0.2195, pemanggil perlu menggunakan fungsi yang diekspor MyFree dari SetupAPI untuk membebaskan memori yang dialokasikan oleh fungsi ini, daripada menggunakan LocalFree. Jika panggilan ke LocalFree menyebabkan Pelanggaran Akses, Anda harus menyelesaikan masalah dengan menggunakan MyFree.
Berikut ini adalah contoh cara mendapatkan fungsi
typedef VOID (WINAPI* MYFREEFUNC)(LPVOID lpBuff);
MYFREEFUNC MyFree;
HMODULE hDll=NULL;
hDll = GetModuleHandle("SETUPAPI.DLL");
MyFree = (MYFREEFUNC)GetProcAddress(hDll, "MyFree");
...
other code here to prepare file queue
...
PTSTR lpActualSourceFileName;
SetupGetFileCompressionInfo(...,&lpActualSourceFileName,...,...,...);
...
MyFree(lpActualSourceFileName);
Nota
Header setupapi.h mendefinisikan SetupGetFileCompressionInfo 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
| Syarat | Nilai |
|---|---|
| klien minimum yang didukung | Windows XP [hanya aplikasi desktop] |
| server minimum yang didukung |
Windows Server 2003 [hanya aplikasi desktop] |
| Platform Target |
Windows |
| Header |
setupapi.h |
| Pustaka |
Setupapi.lib |
| DLL |
Setupapi.dll |
Lihat juga
Gambaran Umum