Bagikan melalui


DIF_SELECTBESTCOMPATDRV

Catatan

Permintaan ini tidak digunakan lagi dalam Windows 10 versi 1703 (Redstone 2). Dalam versi Windows yang lebih baru, panggilan balik ini tidak lagi dipanggil.

Permintaan DIF_SELECTBESTCOMPATDRV memungkinkan alat penginstal untuk memilih driver terbaik dari daftar driver yang kompatibel dengan elemen informasi perangkat.

Ketika Dikirim

Ketika sistem operasi bersiap untuk menginstal perangkat PnP baru atau melakukan operasi change-driver pada perangkat PnP.

Permintaan DIF ini biasanya digunakan selama konfigurasi PnP. Jika perangkat sedang diinstal secara manual, Windows akan mengirimkan permintaan DIF_SELECTDEVICE .

Siapa yang Menangani

Penginstal Bersama Kelas

Dapat menangani

Penginstal Bersama Perangkat

Tidak menangani

Penginstal Kelas

Dapat menangani

Input Alat Penginstal

DeviceInfoSet
Menyediakan handel ke set informasi perangkat yang berisi perangkat.

DeviceInfoData
Memasok pointer ke struktur SP_DEVINFO_DATA yang mengidentifikasi perangkat dalam set 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 mengubah parameter penginstalan perangkat. Namun, mereka biasanya tidak saat menangani permintaan DIF ini.

DeviceInfoData
Sebagai efek samping, alat penginstal dapat memodifikasi daftar driver yang terkait dengan DeviceInfoData, khususnya, SP_DRVINSTALL_PARAMS.

Nilai Pengembalian Alat Penginstal

Penginstal bersama dapat mengembalikan kode kesalahan NO_ERROR, ERROR_DI_POSTPROCESSING_REQUIRED, atau 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 handler 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

SetupDiSelectBestCompatDrv

Operasi Alat Penginstal

Alat penginstal menangani permintaan DIF ini untuk berpartisipasi dalam memilih driver untuk perangkat PnP. Alat penginstal biasanya menanggapi permintaan DIF ini dengan salah satu cara berikut:

  • Tidak melakukan apa pun.

    Jika alat penginstal tidak memiliki persyaratan pemilihan khusus, alat ini tidak melakukan apa pun sebagai respons terhadap permintaan DIF ini. Alat penginstal kelas mengembalikan ERROR_DI_DO_DEFAULT dan penginstal bersama mengembalikan NO_ERROR.

  • Ubah parameter satu atau beberapa driver dalam daftar driver.

    Misalnya, alat penginstal dapat menghapus driver dari pertimbangan untuk perangkat dengan menandainya DNF_BAD_DRIVER. Alat penginstal memodifikasi parameter driver dengan mengikuti langkah-langkah berikut:

    1. Dapatkan informasi tentang driver pertama dalam daftar dengan memanggil SetupDiEnumDriverInfo dan SetupDiGetDriverInstallParams. Jika sesuai, ubah parameter driver dan terapkan perubahan dengan memanggil SetupDiSetDriverInstallParams.

      Jika driver adalah pilihan terburuk, atur peringkat driver ke 0xFFFF atau lebih tinggi dalam parameter penginstalan driver. Lihat Cara Windows Memilih Driver untuk informasi selengkapnya.

    2. Ulangi langkah sebelumnya hingga Anda memproses semua driver dalam daftar. Pastikan Anda menambah parameter MemberIndex ke SetupDiEnumDriverInfo seperti yang dijelaskan di halaman referensi untuk fungsi tersebut.

    Setelah penginstal kelas memodifikasi daftar driver, penginstal akan mengembalikan ERROR_DI_DO_DEFAULT. Jika penginstal bersama memodifikasi daftar driver, penginstal harus melakukannya dalam pra-pemrosesan dan mengembalikan NO_ERROR.

  • Pilih driver terbaik untuk perangkat.

    Tindakan ini kurang umum, tetapi alat penginstal mungkin memilih driver terbaik untuk perangkat. Alat penginstal seperti itu akan memeriksa data untuk setiap driver, memilih driver, dan memanggil SetupDiSetSelectedDriver untuk mengatur driver. Setelah penginstal mengatur driver yang dipilih, pengandar akan kembali NO_ERROR.

    Jika penginstal bersama memilih driver, penginstal harus melakukannya dalam pascaproscessing.

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

Persyaratan

Versi

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

Header

Setupapi.h (termasuk Setupapi.h)

Lihat juga

SetupDiSelectBestCompatDrv

SetupDiSetSelectedDriver

SP_DEVINFO_DATA

SP_DEVINSTALL_PARAMS