Bagikan melalui


Fungsi SetupInstallFileA (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 SetupInstallFile menginstal file seperti yang ditentukan baik oleh INFCONTEXT yang dikembalikan oleh SetupFindXXXLine atau secara eksplisit dengan nama dan jalur file.

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 InfContext null dan CopyStyle menyertakan SP_COPY_SOURCE_ABSOLUTE atau SP_COPY_SOURCEPATH_ABSOLUTE, InfHandle diabaikan.

[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 InfHandle 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. 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 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
SP_COPY_DELETESOURCE
Menghapus file sumber setelah salinan berhasil. Pemanggil tidak diberi tahu jika operasi penghapusan gagal.
SP_COPY_REPLACEONLY
Menyalin file hanya jika melakukannya akan menimpa file di jalur tujuan. Jika target tidak ada, fungsi mengembalikan FALSE dan GetLastError mengembalikan NO_ERROR.
SP_COPY_NEWER_OR_SAME
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.

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 \\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.
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, bereaksi seolah-olah sedang digunakan dan mengantre file untuk disalin pada mulai ulang sistem berikutnya.
SP_COPY_FORCE_NOOVERWRITE
Memeriksa apakah file target ada, dan, jika demikian, file tidak ditimpa. Pemanggil tidak diberi tahu.
SP_COPY_FORCE_NEWER
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

Functions

Gambaran Umum

SetupCloseFileQueue

SetupCommitFileQueue

SetupOpenFileQueue

SetupQueueCopy