Bagikan melalui


Fungsi SetupInstallFileExA (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 SetupInstallFileEx menginstal file seperti yang ditentukan baik oleh INFCONTEXT yang dikembalikan oleh SetupFindXXXLine atau secara eksplisit oleh informasi nama file dan jalur. Fungsi ini sama denganSetupInstallFile , kecuali bahwa BOOL dikembalikan yang menunjukkan apakah file sedang digunakan.

Jika file disalin, pemanggil fungsi ini diharuskan memiliki hak istimewa untuk menulis ke direktori target.

Sintaksis

WINSETUPAPI BOOL SetupInstallFileExA(
  [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,
  [out] PBOOL               FileWasInUse
);

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 digunakan. Jika InfContext tidak ditentukan dan CopyStyle menyertakan SP_COPY_SOURCE_ABSOLUTE atau SP_COPY_SOURCEPATH_ABSOLUTE, InfHandle diabaikan.

[in] InfContext

Penunjuk opsional ke konteks untuk baris di bagian Salin File dalam file INF. Rutinitas mencari file ini di bagian SourceDisksFiles InfHandle untuk mendapatkan informasi penyalinan file. Jika InfContext tidak ditentukan, SourceFile harus.

[in] SourceFile

Penunjuk opsional ke nama file (tidak ada jalur) dari file yang akan disalin. File dicari di bagian SourceDisksFiles. Parameter SourceFile harus ditentukan jika InfContext tidak. Namun, SourceFile diabaikan jika InfContext ditentukan.

[in] SourcePathRoot

Penunjuk opsional ke jalur akar agar file disalin (misalnya, A:\ atau F:). Jalur di bagian SourceDisksNames ditambahkan ke jalur ini. Parameter SourcePathRoot diabaikan jika CopyStyle menyertakan bendera SP_COPY_SOURCE_ABSOLUTE.

[in] DestinationName

Penunjuk opsional ke nama baru untuk file yang disalin. Jika InfContext ditentukan, DestinationName hanya menyediakan nama file (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 target lengkap dan nama file untuk target.

[in] CopyStyle

Bendera yang mengontrol perilaku operasi penyalinan file.

Bendera ini bisa menjadi kombinasi dari nilai berikut.

Nilai Arti
SP_COPY_DELETESOURCE
Hapus file sumber setelah salinan berhasil. Pemanggil tidak diberi tahu jika penghapusan gagal.
SP_COPY_REPLACEONLY
Salin file hanya jika melakukannya menimpa file di jalur tujuan.
SP_COPY_NEWER_OR_SAME
Periksa setiap file yang sedang 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 salinan. Jika CopyMsgHandler tidak ditentukan, file tidak disalin.

SP_COPY_NEWER_ONLY
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.
SP_COPY_NOOVERWRITE
Periksa apakah file target ada, dan jika demikian, beri tahu pemanggil yang mungkin mem-veto salinan. Jika copyMsgHandler tidak ditentukan, file tidak akan ditimpa.
SP_COPY_NODECOMP
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 "\\install\temp" menghasilkan file target "\\install\temp\cmd.ex_". Jika bendera SP_COPY_NODECOMP tidak ditentukan, file akan didekompresi dan target akan disebut "\\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.
SP_COPY_LANGUAGEAWARE
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.
SP_COPY_SOURCE_ABSOLUTE
SourceFile adalah jalur sumber lengkap. Jangan mencarinya di bagian SourceDisksNames dari file INF.
SP_COPY_SOURCEPATH_ABSOLUTE
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.
SP_COPY_FORCE_IN_USE
Jika target ada, berulah seolah-olah sedang digunakan dan antrekan file untuk disalin pada boot ulang sistem berikutnya.
SP_COPY_IN_USE_NEEDS_REBOOT
Jika file sedang digunakan selama operasi salin, beri tahu pengguna bahwa sistem memerlukan boot ulang.
SP_COPY_NOSKIP
Jangan beri pengguna opsi untuk melewati file.
SP_COPY_FORCE_NOOVERWRITE
Periksa apakah file target ada, dan jika demikian, file tidak ditimpa. Pemanggil tidak diberi tahu.
SP_COPY_FORCE_NEWER
Periksa setiap file yang sedang 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.
SP_COPY_WARNIFSKIP
Jika pengguna mencoba melewati file, peringatkan mereka bahwa melompati file dapat memengaruhi penginstalan. (Digunakan untuk file penting sistem.)

[in] CopyMsgHandler

Penunjuk opsional ke fungsi panggilan balik untuk diberi tahu tentang berbagai kondisi yang mungkin muncul selama salinan file.

[in] Context

Penunjuk ke nilai yang ditentukan pemanggil yang diteruskan sebagai parameter pertama fungsi panggilan balik.

[out] FileWasInUse

Penunjuk ke variabel di mana fungsi ini mengembalikan bendera yang menunjukkan apakah file sedang digunakan. Parameter ini diperlukan.

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

API ini biasanya digunakan saat menginstal versi baru file sistem yang kemungkinan akan digunakan. Ini memperbarui nilai BOOL yang menunjukkan apakah file sedang digunakan. Jika file sedang digunakan, maka operasi penyalinan file ditunda hingga sistem di-boot ulang.

Jika direktori UNC ditentukan sebagai direktori target penginstalan file, Anda harus memastikannya ada sebelum Anda memanggil SetupInstallFileEx. Fungsi penyiapan tidak memeriksa keberadaan dan tidak membuat direktori UNC. Jika direktori UNC target tidak ada, penginstalan file gagal.

Nota

Header setupapi.h mendefinisikan SetupInstallFileEx 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

SetupCloseFileQueue

SetupCommitFileQueue

SetupInstallFile

SetupOpenFileQueue

SetupPromptReboot

SetupQueueCopy