Menangani Kode DIF
Catatan
Fitur yang dijelaskan di bagian ini tidak didukung dan paket driver yang berisinya tidak akan lagi menerima tanda tangan Microsoft. Lihat Menggunakan File INF Universal.
Aplikasi penginstalanperangkat mengirim kode fungsi penginstalan perangkat (kode DIF) ke penginstal dengan memanggil SetupDiCallClassInstaller. Fungsi ini, pada gilirannya, memanggil fungsi titik masuk penginstal. Untuk deskripsi titik masuk alat penginstal, lihat:
Halaman referensi untuk setiap kode DIF berisi bagian berikut:
Ketika Dikirim
Menjelaskan waktu-waktu umum kapan, dan alasan mengapa, aplikasi penginstalan perangkat mengirimkan permintaan DIF ini.
Siapa yang Menangani
Menentukan alat penginstal mana yang diizinkan untuk menangani permintaan ini. Alat penginstal termasuk alat penginstal kelas, penginstal bersama kelas (penginstal bersama di seluruh kelas penyiapan), dan penginstal bersama perangkat (penginstal bersama khusus perangkat).
Input Alat Penginstal
Selain kode DIF, SetupDiCallClassInstaller menyediakan informasi tambahan yang relevan dengan permintaan tertentu. Lihat halaman referensi untuk setiap kode DIF untuk detail tentang informasi yang disediakan dengan setiap permintaan. Daftar berikut berisi deskripsi umum parameter input tambahan, dan mencantumkan fungsi penginstalan perangkat (fungsiSetupDiXxx ) yang dapat dipanggil penginstal untuk menangani parameter:
DeviceInfoSet
Menyediakan handel ke set informasi perangkat.
Handelnya buram. Gunakan handel, misalnya, untuk mengidentifikasi informasi perangkat yang diatur dalam panggilan ke fungsi SetupDiXxx .
DeviceInfoSet mungkin memiliki kelas penyiapan perangkat terkait. Jika demikian, panggil SetupDiGetDeviceInfoListClass untuk mendapatkan GUID kelas.
DeviceInfoData
Secara opsional memasok pointer ke struktur SP_DEVINFO_DATA yang mengidentifikasi perangkat dalam set informasi perangkat.
Parameter Penginstalan Perangkat
Parameter tidak langsung ini menyediakan informasi untuk penginstalan perangkat dalam struktur SP_DEVINSTALL_PARAMS . Jika DeviceInfoData bukan NULL, ada parameter penginstalan perangkat yang terkait dengan DeviceInfoData. Jika DeviceInfoDataADALAH NULL, parameter penginstalan perangkat dikaitkan dengan DeviceInfoSet.
Panggil SetupDiGetDeviceInstallParams untuk mendapatkan parameter penginstalan perangkat.
Parameter Penginstalan Kelas
Parameter tidak langsung opsional khusus untuk permintaan DIF tertentu. Ini pada dasarnya adalah "parameter permintaan DIF." Misalnya, parameter penginstalan kelas untuk permintaan penginstalan DIF_REMOVE terkandung dalam struktur SP_REMOVEDEVICE_PARAMS.
Setiap struktur SP_XXX_PARAMS dimulai dengan struktur SP_CLASSINSTALL_HEADER berukuran tetap.
Panggil SetupDiGetClassInstallParams untuk mendapatkan parameter penginstalan kelas.
Jika permintaan DIF memiliki parameter penginstalan kelas, ada sekumpulan parameter yang terkait dengan DeviceInfoSet dan sekumpulan parameter lain yang terkait dengan DeviceInfoData (jika permintaan DIF menentukan DeviceInfoData). SetupDiGetClassInstallParams mengembalikan parameter paling spesifik yang tersedia.
Konteks
Penginstal bersama memiliki parameter konteks opsional.
Output Alat Penginstal
Menjelaskan output yang diharapkan untuk kode DIF ini.
Jika alat penginstal memodifikasi parameter penginstalan perangkat, alat penginstal harus memanggil SetupDiSetDeviceInstallParams untuk menerapkan perubahan sebelum kembali. Demikian pula, jika alat penginstal memodifikasi parameter penginstalan kelas untuk kode DIF, alat penginstal harus memanggil SetupDiSetClassInstallParams.
Nilai Pengembalian Alat Penginstal
Menentukan nilai pengembalian yang sesuai untuk kode DIF. Lihat gambar berikut untuk informasi selengkapnya tentang nilai yang dikembalikan.
Handler Kode DIF Default
Menentukan fungsi SetupDiXxx yang melakukan operasi default yang ditentukan sistem untuk kode DIF. Tidak semua kode DIF memiliki handler default. Kecuali penginstal bersama atau penginstal kelas mengambil langkah-langkah untuk mencegah handler default dipanggil, SetupDiCallClassInstaller memanggil handler default untuk kode DIF setelah memanggil penginstal kelas (tetapi sebelum memanggil penginstal bersama yang terdaftar untuk pascaproscessing).
Jika penginstal kelas berhasil menangani kode DIF dan SetupDiCallClassInstaller kemudian harus memanggil handler default, penginstal kelas mengembalikan ERROR_DI_DO_DEFAULT.
Jika penginstal kelas berhasil menangani kode DIF, termasuk langsung memanggil handler default, penginstal kelas harus mengembalikan NO_ERROR dan SetupDiCallClassInstaller tidak kemudian akan memanggil handler default lagi. Perhatikan bahwa penginstal kelas dapat langsung memanggil handler default, tetapi penginstal kelas tidak boleh mencoba menggantikan operasi handler default.
Jika penginstal kelas mengalami kesalahan, penginstal harus mengembalikan kode kesalahan Win32 yang sesuai dan SetupDiCallClassInstaller tidak akan kemudian memanggil handler default.
Penginstal bersama tidak boleh memanggil penangan kode DIF default.
Operasi Alat Penginstal
Menjelaskan langkah-langkah umum yang mungkin dilakukan alat penginstal untuk menangani permintaan DIF.
Lihat Juga
Mencantumkan sumber informasi terkait.
Gambar berikut menunjukkan urutan peristiwa di SetupDiCallClassInstaller untuk memproses kode DIF.
Sistem operasi melakukan beberapa operasi untuk setiap kode DIF. Penginstal bersama dan penginstal kelas yang disediakan vendor dapat berpartisipasi dalam aktivitas penginstalan. Perhatikan bahwa SetupDiCallClassInstaller memanggil penginstal bersama yang terdaftar untuk postprocessing meskipun kode DIF gagal.