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