Fungsi DiRollbackDriver (newdev.h)
Fungsi DiRollbackDriver mengembalikan driver yang diinstal pada perangkat tertentu.
Sintaks
BOOL DiRollbackDriver(
[in] HDEVINFO DeviceInfoSet,
[in] PSP_DEVINFO_DATA DeviceInfoData,
[in, optional] HWND hwndParent,
[in] DWORD Flags,
[out, optional] PBOOL NeedReboot
);
Parameter
[in] DeviceInfoSet
Handel ke set informasi perangkat yang berisi elemen informasi perangkat yang mewakili perangkat tempat pembatalan pengandar dilakukan.
[in] DeviceInfoData
Penunjuk ke struktur SP_DEVINFO_DATA yang mewakili perangkat tertentu dalam set informasi perangkat yang ditentukan tempat pemutaran kembali driver dilakukan.
[in, optional] hwndParent
Handel ke jendela tingkat atas yang digunakan DiRollbackDriver untuk menampilkan komponen antarmuka pengguna apa pun yang terkait dengan putar kembali driver untuk perangkat yang ditentukan. Parameter ini bersifat opsional dan dapat diatur ke NULL.
[in] Flags
Nilai jenis DWORD yang dapat diatur ke nol atau ROLLBACK_FLAG_NO_UI.
Biasanya, bendera ini harus diatur ke nol, dalam hal ini DiRollbackDriver tidak menekan komponen antarmuka pengguna default yang terkait dengan putar kembali driver. Namun, jika bendera ini diatur ke ROLLBACK_FLAG_NO_UI, DiRollbackDriver menekan tampilan komponen antarmuka pengguna yang terkait dengan putar kembali driver.
[out, optional] NeedReboot
Penunjuk ke nilai jenis BOOL yang diatur DiRollbackDriver untuk menunjukkan apakah hidupkan ulang sistem diperlukan untuk menyelesaikan pemutaran kembali. Parameter ini bersifat opsional dan dapat berupa NULL.
Jika parameter disediakan dan menghidupkan ulang sistem diperlukan untuk menyelesaikan pemutaran kembali, DiRollbackDriver 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 penginstalan, DiRollbackDriver mengatur nilai ke FALSE.
Jika parameter adalah NULL dan sistem dimulai ulang diperlukan untuk menyelesaikan pemutaran kembali, DiRollbackDriver menampilkan kotak dialog hidupkan ulang sistem.
Untuk informasi selengkapnya tentang parameter ini, lihat bagian Keterangan berikut.
Nilai kembali
DiRollbackDriver mengembalikan TRUE jika fungsi berhasil mengembalikan driver untuk perangkat; jika tidak, DiRollbackDriver 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 |
---|---|
|
Pemanggil tidak memiliki hak istimewa Administrator. Secara default, Windows mengharuskan penelepon memiliki hak istimewa Administrator untuk mengembalikan paket driver. |
|
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. |
|
Nilai yang ditentukan untuk Bendera tidak sama dengan nol atau ROLLBACK_FLAG_NO_UI. |
|
Pengandar cadangan tidak disetel untuk perangkat. |
Keterangan
Jika driver cadangan yang diinstal sebelumnya diatur untuk perangkat, putar kembali driver untuk perangkat menggantikan driver yang saat ini diinstal pada perangkat dengan driver cadangan. Windows mempertahankan paling banyak satu pengandar cadangan untuk suatu perangkat. Windows menyetel pengandar sebagai pengandar cadangan untuk perangkat segera setelah pengandar berhasil diinstal pada perangkat dan Windows menentukan bahwa perangkat berfungsi dengan benar. Namun, jika pengandar tidak berhasil diinstal pada perangkat atau perangkat tidak berfungsi dengan benar setelah penginstalan, Windows tidak menyetel driver sebagai driver cadangan untuk perangkat tersebut. Untuk informasi selengkapnya tentang pemutaran kembali driver, lihat informasi tentang Manajer Perangkat di Pusat Bantuan dan Dukungan.
Jika perangkat yang ditentukan memiliki driver cadangan, DiRollbackDriver melakukan operasi berikut:
- Jika Bendera diatur ke nol, DiRollbackDriver meminta pengguna untuk mengonfirmasi apakah driver cadangan harus diinstal. Jika tidak, jika Bendera diatur ke ROLLBACK_FLAG_NO_UI, DiRollbackDriver menginstal driver cadangan tanpa meminta pengguna untuk mengonfirmasi penginstalan driver cadangan.
- DiRollbackDriver menginstal driver cadangan. Pengandar terinstal apakah pengandar cadangan lebih cocok untuk perangkat daripada pengandar yang saat ini terinstal pada perangkat.
- Jika driver yang digantikan oleh driver cadangan bukan driver kotak masuk dan tidak diinstal pada perangkat lain dalam sistem, DiRollbackDriver akan menghapus driver dari sistem. DiRollbackDriver menghapus driver dari sistem karena diasumsikan bahwa pengguna akan mengganti driver hanya jika ada masalah dengan driver.
Secara umum, aplikasi penginstalan harus mengatur NeedReboot ke NULL sehingga sistem akan secara otomatis memulai hidupkan ulang sistem jika menghidupkan ulang diperlukan untuk menyelesaikan pemutaran kembali. Aplikasi harus menyediakan pointer NeedReboot hanya dalam kasus berikut:
- Aplikasi harus memanggil DiRollbackDriver beberapa kali untuk menyelesaikan penginstalan. Dalam hal ini, aplikasi harus merekam apakah nilai TRUENeedReboot dikembalikan oleh salah satu panggilan ke DiRollbackDriver dan, jika demikian, meminta pengguna untuk memulai ulang sistem setelah panggilan akhir ke DiRollbackDriver kembali.
- Aplikasi harus melakukan operasi yang diperlukan, selain memanggil DiRollbackDriver, sebelum hidupkan 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 Vista dan versi Windows yang lebih baru. |
Target Platform | Desktop |
Header | newdev.h (termasuk Newdev.h) |
Pustaka | Newdev.lib |
DLL | Newdev.dll |
Lihat juga
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk