Fungsi DiUninstallDriverW (newdev.h)

Fungsi DiUninstallDriver menghapus paket driver dari perangkat apa pun yang diinstal dengan menginstal perangkat tersebut dengan paket driver lain yang cocok, jika tersedia, atau driver null jika tidak ada paket driver lain yang cocok yang tersedia. Kemudian paket driver yang ditentukan dihapus dari penyimpanan driver.

Sintaks

BOOL DiUninstallDriverW(
  [in, optional]  HWND    hwndParent,
  [in]            LPCWSTR InfPath,
  [in]            DWORD   Flags,
  [out, optional] PBOOL   NeedReboot
);

Parameter

[in, optional] hwndParent

Handel ke jendela tingkat atas yang harus digunakan DiUninstallDriver untuk menampilkan komponen antarmuka pengguna apa pun yang terkait dengan penghapusan instalasi driver. Parameter ini bersifat opsional dan dapat diatur ke NULL.

[in] InfPath

Penunjuk ke string yang dihentikan NULL yang menyediakan jalur file INF yang sepenuhnya memenuhi syarat untuk paket driver.

[in] Flags

Nilai jenis DWORD yang menentukan nol atau satu atau beberapa bendera berikut: DIURFLAG_NO_REMOVE_INF. Biasanya, bendera ini harus diatur ke nol.

Jika bendera ini nol, DiUninstallDriver menghapus paket driver dari perangkat apa pun yang diinstal dengan menginstal perangkat tersebut dengan paket driver lain yang cocok, jika tersedia, atau driver null jika tidak ada paket driver lain yang cocok yang tersedia. Namun, jika bendera ini diatur ke DIURFLAG_NO_REMOVE_INF, DiUninstallDriver menghapus paket driver dari perangkat apa pun yang diinstal, tetapi tidak menghapus paket driver dari Driver Store.

Hati: Memaksa penghapusan instalan paket driver dapat mengakibatkan penggantian paket driver yang lebih kompatibel atau lebih baru dengan driver yang kurang kompatibel atau lebih lama.
 
Untuk informasi tentang bagaimana Windows memilih paket pengandar untuk perangkat, lihat Cara Windows Memilih Driver.

[out, optional] NeedReboot

Penunjuk ke nilai jenis BOOL yang diatur DiUninstallDriver untuk menunjukkan apakah sistem memulai ulang diperlukan untuk menyelesaikan penghapusan instalasi. Parameter ini bersifat opsional dan dapat berupa NULL. Jika parameter disediakan dan hidupkan ulang sistem diperlukan untuk menyelesaikan penghapusan instalasi, DiUninstallDriver mengatur nilai ke TRUE. Dalam hal ini, pemanggil harus meminta pengguna untuk memulai ulang sistem. Jika parameter ini disediakan dan hidupkan ulang sistem tidak diperlukan untuk menyelesaikan penghapusan instalasi, DiUninstallDriver mengatur nilai ke FALSE. Jika parameter NULL dan sistem dimulai ulang diperlukan untuk menyelesaikan penghapusan instalasi, DiUninstallDriver menampilkan kotak dialog hidupkan ulang sistem. Untuk informasi selengkapnya tentang parameter ini, lihat bagian Keterangan berikut.

Nilai kembali

DiUninstallDriver mengembalikan TRUE jika fungsi berhasil menghapus paket driver dari perangkat apa pun yang diinstal dan berhasil dihapus dari penyimpanan driver sistem. Jika paket driver tidak berhasil dihapus dari penyimpanan driver, DiUninstallDriver mengembalikan FALSE dan kesalahan yang dicatat dapat diambil dengan melakukan panggilan ke GetLastError. Beberapa nilai kesalahan yang lebih umum yang mungkin dikembalikan GetLastError adalah sebagai berikut:

Menampilkan kode Deskripsi
ERROR_ACCESS_DENIED
Pemanggil tidak memiliki hak istimewa Administrator. Secara default, Windows mengharuskan penelepon memiliki hak istimewa Administrator untuk menghapus instalan paket pengandar dari penyimpanan driver.
ERROR_FILE_NOT_FOUND
Jalur file INF yang ditentukan tidak ada.
ERROR_INVALID_FLAGS
Nilai yang ditentukan untuk Bendera tidak sama dengan nol atau DIURFLAG_NO_REMOVE_INF.
ERROR_IN_WOW64
Aplikasi panggilan adalah aplikasi 32-bit yang mencoba mengeksekusi di lingkungan 64-bit, yang tidak diizinkan. Untuk informasi selengkapnya, lihat Menginstal Perangkat pada Sistem 64-Bit.

Keterangan

Secara umum, aplikasi penghapusan instalasi harus mengatur NeedReboot ke NULL untuk mengarahkan DiUninstallDriver untuk meminta pengguna untuk memulai ulang sistem jika hidupkan ulang diperlukan untuk menyelesaikan penghapusan. Aplikasi harus menyediakan pointer NeedReboot hanya dalam kasus berikut:

  • Aplikasi harus memanggil DiUninstallDriver beberapa kali untuk menyelesaikan penghapusan instalasi. Dalam hal ini, aplikasi harus merekam apakah nilai TRUENeedReboot dikembalikan oleh salah satu panggilan ke DiUninstallDriver dan, jika demikian, meminta pengguna untuk memulai ulang sistem setelah panggilan akhir ke DiUninstallDriver kembali.
  • Aplikasi harus melakukan operasi yang diperlukan, selain memanggil DiUninstallDriver, sebelum menghidupkan ulang sistem harus terjadi. Jika sistem menghidupkan ulang diperlukan, aplikasi harus menyelesaikan operasi yang diperlukan lalu meminta pengguna untuk menghidupkan ulang sistem.

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung Tersedia di Windows versi Windows 10 1703 dan yang lebih baru.
Target Platform Desktop
Header newdev.h (termasuk Newdev.h)
Pustaka Newdev.lib

Lihat juga

DiUninstallDevice