DIF_REMOVE
Permintaan DIF_REMOVE memberi tahu alat penginstal bahwa Windows akan menghapus perangkat dan memberi pemasang kesempatan untuk mempersiapkan penghapusan.
Ketika Dikirim
Saat pengguna menghapus perangkat di Manajer Perangkat.
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 dihapus.
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
Struktur SP_REMOVEDEVICE_PARAMS mungkin dikaitkan dengan DeviceInfoData.
Tidak ada parameter penginstalan kelas untuk permintaan jika bendera DI_CLASSINSTALLPARAMS jelas dalam SP_DEVINSTALL_PARAMS. Dalam hal ini, tidak ada profil perangkat keras yang ditentukan dan perangkat akan dihapus dari sistem secara keseluruhan.
Output Alat Penginstal
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
Operasi Alat Penginstal
Menanggapi permintaan DIF_REMOVE, alat penginstal biasanya melakukan beberapa operasi pembersihan. Dalam hal ini, penginstal bersama mengembalikan NO_ERROR dan penginstal kelas mengembalikan ERROR_DI_DO_DEFAULT.
Jika alat penginstal menentukan bahwa perangkat tidak boleh dihapus, alat penginstal gagal pada permintaan DIF dengan mengembalikan kode kesalahan Win32. Jika bendera DI_QUIETINSTALL jelas, alat penginstal harus menampilkan pesan kepada pengguna yang menjelaskan mengapa perangkat tidak dihapus.
Penginstal bersama tidak boleh mencoba menghapus perangkat itu sendiri dengan memanggil SetupDiRemoveDevice. Penginstal bersama biasanya menangani permintaan ini dalam pascaproscessing, setelah perangkat berhasil dihapus.
Jika penginstal bersama harus menghapus informasi dalam registri, misalnya, penginstal bersama harus melakukannya dalam pascaproses dan hanya jika penginstal sebelumnya berhasil melakukan permintaan penghapusan. Dalam pass pra-pemrosesannya, penginstal bersama harus menyimpan informasi registri dalam parameter konteksnya dan mengembalikan ERROR_DI_POSTPROCESSING_REQUIRED untuk meminta postprocessing. Ketika Windows memanggil penginstal bersama untuk pascaproscesing permintaan DIF ini, penginstal bersama harus memeriksa apakah status DIF NO_ERROR dan kemudian menghapus informasi registri. Jika penginstal bersama menghapus informasi registri dalam pass pra-pemrosesannya dan penginstal kelas (atau penginstal bersama lainnya) gagal DIF_REMOVE, penginstal bersama dapat meninggalkan perangkat dalam keadaan yang tidak dapat diprediksi.
Alat penginstal tidak boleh menghapus file saat menangani permintaan DIF ini, jika file sedang digunakan oleh perangkat lain.
Windows mengirimkan permintaan DIF ini sebelum memulai penghapusan kueri PnP dan menghapus pemrosesan.
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) |