Fungsi SetupDiInstallDevice (setupapi.h)

Fungsi SetupDiInstallDevice adalah handler default untuk permintaan penginstalan DIF_INSTALLDEVICE .

Sintaks

WINSETUPAPI BOOL SetupDiInstallDevice(
  [in]      HDEVINFO         DeviceInfoSet,
  [in, out] PSP_DEVINFO_DATA DeviceInfoData
);

Parameter

[in] DeviceInfoSet

Handel ke informasi perangkat yang ditetapkan untuk sistem lokal yang berisi elemen informasi perangkat yang mewakili perangkat yang akan diinstal.

[in, out] DeviceInfoData

Penunjuk ke struktur SP_DEVINFO_DATA yang menentukan elemen informasi perangkat di DeviceInfoSet. Ini adalah parameter IN-OUT karena DeviceInfoData.DevInst mungkin diperbarui dengan nilai handel baru saat dikembalikan.

Nilai kembali

Fungsi mengembalikan TRUE jika berhasil. Jika tidak, ia mengembalikan FALSE dan kesalahan yang dicatat dapat diambil dengan panggilan ke GetLastError.

Keterangan

SetupDiInstallDevice menginstal driver dari file INF. Definisi SetupAPI dari "driver" benar-benar adalah "node driver." Oleh karena itu, ketika fungsi ini menginstal driver, fungsi ini juga menginstal item dalam daftar berikut:

  • Layanan untuk perangkat.
  • File driver.
  • Penginstal bersama khusus perangkat (jika ada).
  • Penyedia halaman properti (jika ada).
  • Applet panel kontrol (jika ada).
Fungsi ini juga mendaftarkan antarmuka perangkat yang diperlukan.

Penginstalan yang berhasil mencakup, tetapi tidak terbatas pada, langkah-langkah berikut:

  • Buat kunci driver di registri dan tulis entri yang sesuai (seperti InfPath dan ProviderName).
  • Temukan dan proses bagian INF DDInstall untuk perangkat. Bagian ini mungkin khusus OS/arsitektur. Entri AddReg dan DelReg bagian DDInstall diarahkan ke kunci perangkat lunak perangkat. Temukan dan proses DDInstall. Bagian HW yang entri AddReg dan DelReg-nya diarahkan ke kunci perangkat keras perangkat. Temukan dan proses bagian INF DDInstall.LogConfigOverride, jika ada, untuk menyediakan konfigurasi penimpaan untuk perangkat. Temukan dan proses bagian INF DDInstall.Services untuk menambahkan layanan untuk perangkat (dan berpotensi menghapus layanan lama yang tidak lagi diperlukan).
  • Salin file INF ke direktori INF sistem.
  • Mungkin melakukan operasi file lainnya, berdasarkan pengaturan bendera dalam parameter penginstalan perangkat.

    Jika bendera DI_NOFILECOPY dan bendera DI_NOVCP jelas, lakukan operasi file apa pun yang ditentukan di bagian DDInstall . Jika bendera DI_NOVCP diatur, antrekan operasi file apa pun.

    Jika bendera DI_NOFILECOPY diatur, jangan salin file. Bendera ini mungkin diatur jika, misalnya, operasi DIF_INSTALLDEVICEFILES sudah dilakukan untuk penginstalan perangkat ini.

  • Muat driver untuk perangkat. Ini termasuk driver fungsi dan driver filter atas atau bawah.
  • Panggil rutinitas AddDevice driver.
  • Mulai perangkat dengan mengirim paket permintaan I/O (IRP) IRP_MN_START_DEVICE .
Windows tidak memulai perangkat jika bendera DI_NEEDRESTART, DI_NEEDREBOOT, atau DI_DONOTCALLCONFIGMG diatur dalam struktur SP_DEVINSTALL_PARAMS .

Penginstal kelas harus mengembalikan ERROR_DI_DO_DEFAULT atau memanggil fungsi ini saat menangani permintaan DIF_INSTALLDEVICE . Fungsi ini melakukan banyak tugas untuk penginstalan perangkat dan daftar tugas tersebut mungkin diperluas dalam rilis mendatang. Jika penginstal kelas melakukan penginstalan perangkat tanpa memanggil fungsi ini, penginstal kelas mungkin tidak berfungsi dengan benar pada versi sistem operasi yang akan datang.

Jika Windows tidak dapat menemukan berkas INF untuk perangkat tersebut, maka ia akan mengirim DIF_INSTALLDEVICE dalam upaya menginstal pengandar null. SetupDiInstallDevice menginstal driver null hanya jika perangkat mendukung mode mentah atau merupakan perangkat non-PnP (dilaporkan oleh IoReportDetectedDevice). Untuk informasi selengkapnya, lihat DIF_INSTALLDEVICE.

Jika bendera DI_FLAGSEX_SETFAILEDINSTALL diatur dalam struktur SP_DEVINSTALL_PARAMS , SetupDiInstallDevice hanya mengatur bendera FAILEDINSTALL di nilai registri ConfigFlags perangkat.

Catatan Hanya penginstal kelas yang harus memanggil SetupDiInstallDevice dan hanya dalam situasi di mana penginstal kelas harus melakukan operasi penginstalan perangkat setelah SetupDiInstallDevice menyelesaikan operasi penginstalan perangkat default. Dalam situasi seperti itu, penginstal kelas harus langsung memanggil SetupDiInstallDevice ketika alat penginstal memproses permintaan DIF_INSTALLDEVICE. Untuk informasi selengkapnya tentang memanggil handler default, lihat Memanggil Penangan Kode DIF Default.
 
Pemanggil SetupDiInstallDevice harus menjadi anggota grup Administrator.

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung Tersedia di Microsoft Windows 2000 dan versi Windows yang lebih baru.
Target Platform Desktop
Header setupapi.h (termasuk Setupapi.h)
Pustaka Setupapi.lib
DLL Setupapi.dll

Lihat juga

DIF_INSTALLDEVICE

SetupDiCallClassInstaller

SetupDiInstallDriverFiles