Bagikan melalui


SetupGetFileCompressionInfoW (setupapi.h)

[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 SetupGetFileCompressionInfoW(
  [in]      PCWSTR SourceFileName,
  [in, out] PWSTR  *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 MyFree dari SetupAPI.dll:

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

Functions

Gambaran Umum

SetupDecompressOrCopyFile