Bagikan melalui


Panduan Untuk Aplikasi

Aplikasi yang berjalan di Windows Vista dan Windows Server 2008 harus mematuhi panduan ini untuk memastikan bahwa Restart Manager dapat mematikan dan memulai ulang aplikasi jika perlu menginstal pembaruan. Layanan dapat menggunakan panduan yang dijelaskan dalam Panduan untuk Layanan.

  • Restart Manager meminta aplikasi GUI untuk dimatikan dengan mengirim pemberitahuan WM_QUERYENDSESSION yang memiliki parameter lParam yang diatur ke ENDSESSION_CLOSEAPP (0x1). Aplikasi tidak boleh dimatikan ketika menerima pesan WM_QUERYENDSESSION karena aplikasi lain mungkin belum siap dimatikan. Aplikasi GUI harus mendengarkan pesan WM_QUERYENDSESSION dan mengembalikan nilai TRUE jika aplikasi siap untuk dimatikan dan dimulai ulang. Jika tidak ada aplikasi yang mengembalikan nilai FALSE, Restart Manager mengirimkan pesan WM_ENDSESSION dengan parameter lParam yang diatur ke ENDSESSION_CLOSEAPP (0x1) dan parameter wparam diatur ke TRUE. Aplikasi harus dimatikan hanya ketika mereka menerima pesan WM_ENDSESSION . Restart Manager juga mengirim pesan WM_CLOSE untuk aplikasi GUI yang tidak dimatikan saat menerima WM_ENDSESSION. Jika ada aplikasi GUI yang merespons pesan WM_QUERYENDSESSION dengan mengembalikan nilai FALSE, pematian dibatalkan. Namun, jika pematian dipaksakan, aplikasi dihentikan terlepas dari itu.

  • Ketika aplikasi GUI menerima pesan WM_ENDSESSION , aplikasi harus mempersiapkan dirinya untuk dimatikan dalam periode batas waktu yang ditentukan. Minimal, aplikasi harus mempersiapkan dengan menyimpan data pengguna dan informasi status apa pun yang diperlukan setelah restart. Disarankan agar aplikasi secara berkala menyimpan data dan status pengguna.

  • Restart Manager mengirimkan pemberitahuan CTRL_C_EVENT ke aplikasi konsol yang harus dimatikan dan dimulai ulang. Ketika aplikasi konsol menerima pemberitahuan CTRL_C_EVENT , aplikasi harus mengambil tindakan yang diperlukan untuk mempersiapkan pematian dalam periode batas waktu yang ditentukan. Minimal, aplikasi konsol harus menentukan fungsi HandlerRoutine untuk menangani pemberitahuan CTRL_C_EVENT dan harus menyimpan data pengguna dan informasi status apa pun yang akan diperlukan setelah restart. Disarankan agar aplikasi secara berkala menyimpan data dan status pengguna.

  • Jika ada aplikasi yang tidak dimatikan sebagai respons terhadap pesan matikan, penginstal dapat menggunakan opsi RmForceShutdown dari fungsi RmShutdown untuk memaksa aplikasi dimatikan. Ketika alat penginstal menentukan pematian paksa, Restart Manager mencoba mematikan aplikasi dengan bersih dengan mengirim pesan matikan, tetapi akan memaksanya dimatikan jika ini gagal. Aplikasi GUI dan aplikasi konsol dapat dimatikan paksa untuk mengaktifkan penginstalan pembaruan keamanan penting. Karena ini dapat mengakibatkan kehilangan data, aplikasi harus menangani pesan matikan dan dimatikan dengan bersih saat diperlukan.

  • Aplikasi harus mendaftar untuk memulai ulang dengan menggunakan fungsi RegisterApplicationRestart . Restart Manager hanya dapat memulai ulang aplikasi yang telah didaftarkan untuk memulai ulang. Ini adalah satu-satunya cara agar Restart Manager dapat menentukan perintah baris perintah yang akan digunakan saat memulai ulang aplikasi. Jika aplikasi harus membuka kembali dengan beberapa status atau data yang disimpan, informasi tersebut harus disertakan dalam perintah baris perintah yang terdaftar untuk aplikasi.

    Catatan

    Jika aplikasi yang dimulai ulang harus berjalan di direktori yang sama dengan yang dijalankannya sebelum dimatikan, aplikasi harus menyimpan informasi direktori dan kemudian mengubah ke direktori setelah memulai ulang.

     

    Catatan

    Fungsi RmRestart tidak memulai ulang aplikasi yang tidak berjalan sebagai pengguna yang saat ini masuk. Misalnya, fungsi RmRestart tidak memulai ulang aplikasi yang dimulai dengan perintah Jalankan Sebagai yang tidak berjalan sebagai pengguna yang saat ini masuk. Aplikasi ini harus dimulai ulang secara manual.

     

  • Ketika Restart Manager menentukan bahwa hidupkan ulang sistem diperlukan untuk menginstal pembaruan, itu tidak mematikan aplikasi dan layanan apa pun. Sebaliknya, ia meninggalkan ini ke alat penginstal untuk memutuskan kapan harus menjadwalkan hidupkan ulang sistem dan menginstal pembaruan. Penginstal dapat mengurangi gangguan pada pengguna yang disebabkan oleh pembaruan yang memerlukan mulai ulang sistem dengan menggunakan fungsi ExitWindowsEx dengan bendera EWX_RESTARTAPPS atau fungsi InitiateShutdown dengan bendera SHUTDOWN_RESTARTAPPS . Menggunakan bendera ini memastikan bahwa aplikasi yang terdaftar untuk memulai ulang dimulai ulang setelah reboot sistem, yang meminimalkan dampak pada pengguna.