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 SetupInstallFile
Jika file disalin, pemanggil fungsi ini harus memiliki hak tulis ke direktori target.
Sintaksis
WINSETUPAPI BOOL SetupInstallFileA(
[in] HINF InfHandle,
[in] PINFCONTEXT InfContext,
[in] PCSTR SourceFile,
[in] PCSTR SourcePathRoot,
[in] PCSTR DestinationName,
[in] DWORD CopyStyle,
[in] PSP_FILE_CALLBACK_A CopyMsgHandler,
[in] PVOID Context
);
Parameter
[in] InfHandle
Penunjuk opsional ke handel ke file INF yang berisi bagian SourceDisksNames dan SourceDisksFiles. Jika bagian khusus platform ada untuk sistem pengguna (misalnya, SourceDisksNames.x86 dan SourceDisksFiles.x86), bagian khusus platform akan digunakan. Jika
[in] InfContext
Penunjuk opsional ke konteks baris di bagian Salin File dalam file INF. Rutinitas mencari file ini di bagian SourceDisksFiles InfHandle untuk mendapatkan informasi penyalinan file. Jika
[in] SourceFile
Penunjuk opsional ke nama file (tidak ada jalur) dari file yang akan disalin. File dicari di bagian SourceDisksFiles. Parameter
[in] SourcePathRoot
Penunjuk opsional ke jalur akar agar file disalin (misalnya, A:\ atau F:). Jalur di bagian SourceDisksNames ditambahkan ke jalur ini. Parameter
[in] DestinationName
Penunjuk opsional ke nama file saja (tidak ada jalur) dari file target. Parameter ini dapat null untuk menunjukkan bahwa file target harus memiliki nama yang sama dengan file sumber. Jika infContext tidak ditentukan, DestinationName menyediakan jalur lengkap dan nama file untuk target.
[in] CopyStyle
Bendera yang mengontrol perilaku operasi penyalinan file. Bendera ini mungkin merupakan kombinasi dari nilai berikut.
| Nilai | Arti |
|---|---|
|
Menghapus file sumber setelah salinan berhasil. Pemanggil tidak diberi tahu jika operasi penghapusan gagal. |
|
Menyalin file hanya jika melakukannya akan menimpa file di jalur tujuan. Jika target tidak ada, fungsi mengembalikan FALSE dan GetLastError mengembalikan NO_ERROR. |
|
Memeriksa setiap file yang disalin untuk melihat apakah sumber daya versinya menunjukkan bahwa file tersebut adalah versi yang sama atau tidak lebih baru dari salinan yang ada pada target.
Informasi versi file yang digunakan selama pemeriksaan versi adalah yang ditentukan dalam dwFileVersionMS dan dwFileVersionLS anggota struktur VS_FIXEDFILEINFO, seperti yang diisi oleh fungsi versi. Jika salah satu file tidak memiliki sumber daya versi, atau jika memiliki informasi versi yang identik, file sumber dianggap lebih baru. Jika file sumber tidak lebih baru atau sama dalam versi, dan CopyMsgHandler ditentukan, pemanggil akan diberi tahu dan dapat membatalkan operasi salin. Jika CopyMsgHandler tidak ditentukan, file tidak disalin. |
|
Periksa setiap file yang sedang disalin untuk melihat apakah sumber daya versinya menunjukkan bahwa file tersebut tidak lebih baru dari salinan yang ada pada target. Jika file sumber lebih baru tetapi tidak sama dalam versi dengan target yang ada, file akan disalin. |
|
Periksa apakah file target ada, dan, jika demikian, beri tahu pemanggil yang mungkin mem-veto salinan. Jika copyMsgHandler tidak ditentukan, file tidak akan ditimpa. |
|
Jangan dekompresi file. Ketika bendera ini diatur, file target tidak diberi bentuk nama sumber yang tidak dikompresi (jika sesuai). Misalnya, menyalin F:\x86\cmd.ex_ ke \\menginstal\sementara menghasilkan file target \\install\temp\cmd.ex_. Jika bendera SP_COPY_NODECOMP tidak ditentukan, file akan didekompresi dan target akan dipanggil \\install\temp\cmd.exe. Bagian nama file dari DestinationName, jika ditentukan, dilucuti dan diganti dengan nama file file sumber. Ketika SP_COPY_NODECOMP ditentukan, tidak ada informasi bahasa atau versi yang dapat diperiksa. |
|
Periksa setiap file yang disalin untuk melihat apakah bahasanya berbeda dari bahasa file yang ada yang sudah ada pada target. Jika demikian, dan CopyMsgHandler ditentukan, pemanggil akan diberi tahu dan dapat membatalkan salinan. Jika CopyMsgHandler tidak ditentukan, file tidak disalin. |
|
SourceFile adalah jalur sumber lengkap. Jangan mencarinya di bagian SourceDisksNames dari file INF. |
|
SourcePathRoot adalah bagian jalur lengkap dari file sumber. Abaikan sumber relatif yang ditentukan di bagian SourceDisksNames dari file INF untuk media sumber tempat file berada. Bendera ini diabaikan jika SP_COPY_SOURCE_ABSOLUTE ditentukan. |
|
Jika target ada, bereaksi seolah-olah sedang digunakan dan mengantre file untuk disalin pada mulai ulang sistem berikutnya. |
|
Memeriksa apakah file target ada, dan, jika demikian, file tidak ditimpa. Pemanggil tidak diberi tahu. |
|
Memeriksa setiap file yang disalin untuk melihat apakah sumber daya versinya (atau stempel waktu untuk file non-gambar) menunjukkan bahwa file tersebut tidak lebih baru dari salinan yang ada pada target. Jika file yang disalin bukan yang lebih baru, file tidak disalin. Pemanggil tidak diberi tahu. Fungsi mengembalikan FALSE, dan GetLastError mengembalikan NO_ERROR. |
[in] CopyMsgHandler
Penunjuk opsional ke fungsi panggilan balik untuk diberi tahu tentang berbagai kondisi yang mungkin muncul selama operasi penyalinan file.
[in] Context
Penunjuk opsional ke nilai yang ditentukan pemanggil yang diteruskan sebagai parameter pertama fungsi panggilan balik.
Mengembalikan nilai
Jika fungsi berhasil, nilai yang dikembalikan adalah nilai bukan nol.
Jika fungsi gagal, nilai yang dikembalikan adalah nol. Untuk mendapatkan informasi kesalahan yang diperluas, panggil GetLastError.
Jika GetLastError mengembalikan NO_ERROR, operasi penyalinan file tidak selesai. File mungkin belum disalin karena operasi penyalinan file tidak perlu atau karena fungsi panggilan balik file dikembalikan FALSE.
Komentar
Jika direktori UNC ditentukan sebagai direktori target penginstalan file, Anda harus memastikannya ada sebelum Anda memanggil SetupInstallFile. Fungsi penyiapan tidak memeriksa keberadaan direktori UNC. Jika direktori UNC target tidak ada, penginstalan file akan gagal.
Nota
Header setupapi.h mendefinisikan SetupInstallFile 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