Bagikan melalui


DIF_INSTALLDEVICE

Permintaan DIF_INSTALLDEVICE memungkinkan alat penginstal untuk melakukan tugas sebelum dan/atau setelah perangkat diinstal.

Ketika Dikirim

Setelah memilih driver, daftarkan penginstal bersama perangkat apa pun, dan daftarkan antarmuka perangkat apa pun.

Siapa yang Menangani

Penginstal Bersama Kelas

Dapat menangani

Penginstal Bersama Perangkat

Dapat menangani

Penginstal Kelas

Dapat menangani

Input Alat Penginstal

DeviceInfoSet
Menyediakan handel ke set informasi perangkat yang berisi perangkat yang akan diinstal.

DeviceInfoData
Menyediakan pointer ke struktur SP_DEVINFO_DATA untuk perangkat dalam kumpulan informasi perangkat.

Parameter Penginstalan Perangkat
Ada parameter penginstalan perangkat (SP_DEVINSTALL_PARAMS) yang terkait dengan DeviceInfoData.

Parameter Penginstalan Kelas
Tidak ada

Output Alat Penginstal

Parameter Penginstalan Perangkat
Alat penginstal dapat memodifikasi parameter penginstalan perangkat untuk DeviceInfoData. Misalnya, alat penginstal mungkin mengatur bendera DI_NEEDREBOOT atau mungkin mengatur bendera DI_DONOTCALLCONFIGMG untuk mencegah Windows online perangkat secara dinamis dengan driver dan pengaturan yang baru diinstal.

Nilai Pengembalian Alat Penginstal

Penginstal bersama biasanya mengembalikan NO_ERROR atau ERROR_DI_POSTPROCESSING_REQUIRED. Penginstal bersama mungkin juga mengembalikan kode kesalahan Win32.

Jika penginstal kelas berhasil menangani permintaan ini dan SetupDiCallClassInstaller kemudian harus memanggil handler default, penginstal kelas mengembalikan ERROR_DI_DO_DEFAULT.

Jika penginstal kelas berhasil menangani permintaan ini, termasuk langsung memanggil handler default, penginstal kelas harus mengembalikan NO_ERROR dan SetupDiCallClassInstaller kemudian tidak akan memanggil handler default lagi.

Catatan Penginstal kelas dapat langsung memanggil handler default, tetapi penginstal kelas tidak boleh mencoba menggantikan operasi handler default. Untuk informasi selengkapnya tentang memanggil penangan kode DIF default, lihat Memanggil Penangan Kode DIF Default.

Jika penginstal kelas mengalami kesalahan, penginstal harus mengembalikan kode kesalahan Win32 yang sesuai dan SetupDiCallClassInstaller tidak akan kemudian memanggil handler default.

Handler Kode DIF Default

SetupDiInstallDevice

Operasi Alat Penginstal

Menanggapi permintaan DIF_INSTALLDEVICE alat penginstal biasanya melakukan operasi penginstalan akhir sebelum handler default menginstal perangkat. Misalnya, alat penginstal dapat memeriksa, dan mungkin memodifikasi, driver filter atas dan driver filter bawah untuk perangkat yang tercantum dalam registri.

Kecuali bendera DI_NOFILECOPY diatur dalam parameter penginstalan perangkat, alat penginstal yang menangani permintaan DIF ini harus menyalin file yang diperlukan untuk perangkat, seperti file driver dan file panel kontrol.

Jika bendera DI_NOFILECOPY jelas tetapi bendera DI_NOVCP diatur, alat penginstal harus mengantrekan operasi file apa pun ke antrean file yang disediakan tetapi tidak boleh melakukan antrean.

Penginstal bersama dapat menangani permintaan DIF ini dalam pass pra-pemrosesannya dan/atau dalam pass pascaproscessing-nya. Dalam pass pra-pemrosesannya, penginstal bersama melakukan operasi apa pun yang harus terjadi sebelum Windows memuat driver dan memulai perangkat.

Dalam pass pasca-pemrosesannya, perangkat aktif dan berjalan kecuali bendera DI_NEEDREBOOT diatur. Jika bendera ini disetel, Windows tidak dapat membawa perangkat online secara dinamis.

Jika alat penginstal mengembalikan kode kesalahan Win32, Windows akan meninggalkan penginstalan.

Jika Windows tidak dapat menemukan berkas INF untuk perangkat baru, maka akan mengirim DIF_INSTALLDEVICE dalam upaya menginstal pengandar null. Handler default (SetupDiInstallDevice) memeriksa apakah perangkat mendukung mode mentah atau merupakan perangkat non-PnP (dilaporkan oleh IoReportDetectedDevice), Dalam kasus terakhir, Windows menginstal driver null untuk perangkat.

Jika upaya ini gagal, Windows mengirim DIF_INSTALLDEVICE lagi, kali ini dengan bendera DI_FLAGSEX_SETFAILEDINSTALL diatur dalam struktur SP_DEVINSTALL_PARAMS . Dalam hal ini, handler default hanya mengatur bendera FAILEDINSTALL di nilai registri ConfigFlags perangkat. Jika bendera DI_FLAGSEX_SETFAILEDINSTALL diatur, penginstal kelas harus mengembalikan NO_ERROR atau ERROR_DI_DO_DEFAULT dan penginstal bersama harus mengembalikan NO_ERROR.

Untuk informasi selengkapnya tentang kode DIF, lihat Menangani Kode DIF.

Memanggil Pengaturan Handler DefaultDiInstallDevice

Untuk informasi umum tentang kapan dan cara memanggil SetupDiInstallDevice, lihat Memanggil Penangan Kode DIF Default.

Dalam situasi yang jarang terjadi di mana penginstal kelas harus melakukan operasi setelah semua operasi SetupDiInstallDevice , kecuali untuk memulai perangkat, telah selesai, penginstal kelas harus:

  1. Lakukan operasi yang harus dilakukan sebelum memanggil SetupDiInstallDevice.

  2. Atur bendera DI_DONOTCALLCONFIGMGR di SP_DEVINSTALL_PARAMS. Menandai anggota untuk perangkat. Jika bendera ini diatur, SetupDiInstallDevice melakukan semua operasi penginstalan default kecuali untuk memulai perangkat.

  3. Panggil SetupDiInstallDevice untuk melakukan semua operasi penginstalan default kecuali untuk memulai perangkat.

  4. Lakukan operasi yang harus dilakukan setelah semua operasi penginstalan default, kecuali untuk memulai perangkat, telah selesai.

  5. Panggil SetupDiRestartDevices untuk memulai perangkat.

  6. Kembalikan NO_ERROR jika penginstal kelas berhasil menyelesaikan operasi penginstalan atau mengembalikan kesalahan Win32 jika operasi penginstalan gagal.

Persyaratan

Versi

Didukung di Microsoft Windows 2000 dan versi Windows yang lebih baru.

Header

Setupapi.h (termasuk Setupapi.h)

Lihat juga

DIF_INSTALLDEVICEFILES

SetupDiInstallDevice

SP_DEVINFO_DATA

SP_DEVINSTALL_PARAMS