Bagikan melalui


Fungsi SetupInstallFromInfSectionA (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 SetupInstallFromInfSection menjalankan semua arahan dalam file INF bagian Instal.

Jika registri atau file dimodifikasi, pemanggil fungsi ini diperlukan memiliki hak istimewa untuk menulis ke dalam sistem atau direktori target.

Sintaksis

WINSETUPAPI BOOL SetupInstallFromInfSectionA(
  HWND                Owner,
  HINF                InfHandle,
  PCSTR               SectionName,
  UINT                Flags,
  HKEY                RelativeKeyRoot,
  PCSTR               SourceRootPath,
  UINT                CopyFlags,
  PSP_FILE_CALLBACK_A MsgHandler,
  PVOID               Context,
  HDEVINFO            DeviceInfoSet,
  PSP_DEVINFO_DATA    DeviceInfoData
);

Parameter

Owner

Penunjuk opsional ke handel jendela ke jendela yang memiliki kotak dialog apa pun yang dihasilkan selama penginstalan, seperti untuk permintaan disk atau penyalinan file. Jika Pemilik tidak ditentukan, kotak dialog ini menjadi jendela tingkat atas.

InfHandle

Tangani ke file INF yang berisi bagian yang akan diproses.

SectionName

Nama bagian Instal dalam file INF untuk diproses.

Flags

Mengontrol tindakan apa yang harus dilakukan. Bendera bisa menjadi kombinasi dari nilai berikut.

SPINST_INIFILES

Lakukan operasi file INI (UpdateInis, baris UpdateIniFields di bagian Instal yang sedang diproses).

SPINST_REGISTRY

Lakukan operasi registri (AddReg, baris DelReg di bagian Instal sedang diproses).

SPINST_INI2REG

Lakukan ini-file ke operasi registri (ini2Reg baris di bagian Instal sedang diproses).

SPINST_LOGCONFIG

Bendera ini hanya digunakan saat menginstal driver perangkat.

Lakukan operasi konfigurasi logis (baris LogConf di bagian Instal sedang diproses). Bendera ini hanya digunakan jika DeviceInfoSet dan DeviceInfoData ditentukan.

Untuk informasi selengkapnya tentang menginstal driver perangkat, LogConf, DeviceInfoSet, atau DeviceInfoData, lihat Panduan DDK Programmer.

SPINST_FILES

Lakukan operasi file (copyFiles, DelFiles, baris RenFiles di bagian Instal sedang diproses).

SPINST_ALL

Lakukan semua operasi penginstalan.

SPINST_REGISTERCALLBACKAWARE

Saat menggunakan RegisterDlls direktif INF untuk mendaftarkan sendiri DLL pada Windows 2000, pemanggil SetupInstallFromInfSection mungkin menerima pemberitahuan pada setiap file karena terdaftar atau tidak terdaftar. Untuk mengirim pemberitahuan SPFILENOTIFY_STARTREGISTRATION atau SPFILENOTIFY_ENDREGISTRATION ke rutinitas panggilan balik, sertakan SPINST_REGISTERCALLBACKAWARE ditambah SPINST_REGSVR atau SPINST_UNREGSVR. Pemanggil juga harus mengatur parameter MsgHandler.

SPINST_REGSVR

Untuk mengirim pemberitahuan ke rutinitas panggilan balik saat mendaftarkan file, sertakan SPINST_REGISTERCALLBACKAWARE plus SPINST_REGSVR di Flags. Pemanggil juga harus menentukan parameter MsgHandler.

SPINST_UNREGSVR

Untuk mengirim pemberitahuan ke rutinitas panggilan balik saat membatalkan pendaftaran file, sertakan SPINST_REGISTERCALLBACKAWARE plus SPINST_UNREGSVR diBendera . Pemanggil juga harus menentukan parameter MsgHandler.

RelativeKeyRoot

Parameter opsional yang harus ditentukan jika Bendera menyertakan SPINST_REGISTRY atau SPINST_INI2REG. Tangani ke kunci registri yang akan digunakan sebagai akar ketika file INF menentukan HKR sebagai kunci. Perhatikan bahwa parameter ini diabaikan jika SetupInstallFromInfSection dipanggil dengan DeviceInfoSet opsional dan set DeviceInfoData .

SourceRootPath

Akar sumber untuk salinan file. Contohnya adalah A:\ atau \pegasus\win\install. Jika Flags menyertakan SPINST_FILES, dan SourceRootPath adalah NULL, sistem menyediakan jalur akar default.

CopyFlags

Parameter opsional yang harus ditentukan jika bendera menyertakan SPINST_FILES. Menentukan bendera yang akan diteruskan ke fungsi SetupQueueCopySection saat file diantrekan untuk disalin. Bendera ini mungkin merupakan kombinasi dari nilai berikut.

SP_COPY_DELETESOURCE

Hapus file sumber setelah salinan berhasil. Pemanggil tidak diberi tahu jika penghapusan gagal.

SP_COPY_REPLACEONLY

Salin file hanya jika melakukannya akan 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 sama dalam versi atau yang lebih baru, 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 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 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 perlu di-boot ulang. Bendera ini hanya digunakan saat nanti memanggil SetupPromptReboot atau SetupScanFileQueue.

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.)

MsgHandler

Arahkan ke rutinitas panggilan balik. Rutinitas panggilan balik harus dalam format FileCallback. Lihat Pemberitahuan untuk informasi selengkapnya.

Parameter ini bersifat opsional hanya jika parameter Bendera tidak menyertakan SPINST_FILES, SPINST_REGISTERCALLBACKAWARE plus SPINST_REGSVR, atau SPINST_UNREGSVR.

MsgHandler harus diatur jika Flags menyertakan SPINST_FILES. Dalam hal ini, pemberitahuan dikirim ke rutinitas panggilan balik ketika antrean file diterapkan dengan SetupCommitFileQueue.

MsgHandler harus diatur jika Bendera mencakup SPINST_REGISTERCALLBACKAWARE plus SPINST_REGSVR atau SPINST_UNREGSVR. Dalam hal ini SPFILENOTIFY_STARTREGISTRATION atau SPFILENOTIFY_ENDREGISTRATION dikirim ke rutinitas panggilan balik setiap kali file didaftarkan atau tidak terdaftar menggunakan RegisterDlls arahan INF pada Windows 2000.

Context

Nilai yang akan diteruskan ke fungsi panggilan balik ketika antrean file yang dibangun oleh rutinitas ini secara internal dilakukan melalui SetupCommitFileQueue. Parameter Konteks bersifat opsional hanya jika parameter Bendera tidak menyertakan SPINST_FILES. Parameter ini harus ditentukan jika bendera menyertakan SPINST_FILES.

DeviceInfoSet

Penunjuk opsional ke handel ke kumpulan informasi perangkat. Untuk informasi selengkapnya tentang fungsi penyiapan Penginstal Perangkat, lihatPanduan DDK Programmer.

DeviceInfoData

Penunjuk opsional ke penunjuk ke struktur SP_DEVINFO_DATA yang menyediakan konteks ke elemen tertentu dalam set yang ditentukan oleh DeviceInfoSet. Untuk informasi selengkapnya tentang fungsi penyiapan Penginstal Perangkat, lihat Panduan DDK Programmer.

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.

Komentar

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

Fungsi ini memerlukan file INF Windows. Beberapa format file INF yang lebih lama mungkin tidak didukung.

Nota

Header setupapi.h mendefinisikan SetupInstallFromInfSection sebagai alias yang secara otomatis memilih versi ANSI atau Unicode dari fungsi ini berdasarkan definisi konstanta preprosektor 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.

SetupInstallFromInfSection akan mencatat informasi diagnostik ke log teks penginstalan aplikasi SetupAPI. File log ini umumnya nonaktif secara default. Ini dapat diaktifkan dengan memodifikasi tingkat pengelogan umum bagian dari nilai LogLevel SetupAPI seperti yang dijelaskan di Mengatur Tingkat Pengelogan SETUPAPI. Untuk alasan performa, Anda hanya boleh mengaktifkan file log ini saat memecahkan masalah. Ketika file log diaktifkan, Anda dapat menemukannya di %windir%\inf\setupapi.app.log.

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
set API ext-ms-win-setupapi-classinstallers-l1-1-2 (diperkenalkan di Windows 10, versi 10.0.14393)

Lihat juga

Functions

Gambaran Umum

SPFILENOTIFY_ENDREGISTRATION

SPFILENOTIFY_STARTREGISTRATION

SetupInstallServicesFromInfSection