Bagikan melalui


Fungsi RmRestart (restartmanager.h)

Memulai ulang aplikasi dan layanan yang telah dimatikan oleh fungsi RmShutdown dan yang telah didaftarkan untuk dimulai ulang menggunakan fungsi RegisterApplicationRestart . Fungsi ini hanya dapat dipanggil oleh alat penginstal utama yang disebut fungsi RmStartSession untuk memulai sesi Restart Manager.

Sintaks

DWORD RmRestart(
  [in]           DWORD                    dwSessionHandle,
                 DWORD                    dwRestartFlags,
  [in, optional] RM_WRITE_STATUS_CALLBACK fnStatus
);

Parameter

[in] dwSessionHandle

Handel ke sesi Restart Manager yang ada.

dwRestartFlags

Dicadangkan. Parameter ini harus 0.

[in, optional] fnStatus

Penunjuk ke fungsi panggilan balik pesan status yang digunakan untuk mengomunikasikan status saat fungsi RmRestart sedang berjalan. Jika NULL, tidak ada status yang disediakan.

Nilai kembali

Ini adalah kesalahan terbaru yang diterima. Fungsi ini dapat mengembalikan salah satu kode kesalahan sistem yang didefinisikan dalam Winerror.h.

Nilai Makna
ERROR_REQUEST_OUT_OF_SEQUENCE
776
Nilai kesalahan ini dikembalikan jika fungsi RmRestart dipanggil dengan handel sesi yang valid sebelum memanggil fungsi RmShutdown .
ERROR_FAIL_RESTART
352
Satu atau beberapa aplikasi tidak dapat dimulai ulang. Struktur RM_PROCESS_INFO yang dikembalikan oleh fungsi RmGetList berisi informasi status yang diperbarui.
ERROR_SEM_TIMEOUT
121
Fungsi Restart Manager tidak dapat memperoleh mutex tulis registri dalam waktu yang dialokasikan. Mulai ulang sistem disarankan karena penggunaan Restart Manager lebih lanjut kemungkinan akan gagal.
ERROR_CANCELLED
1223
Nilai kesalahan ini dikembalikan oleh fungsi RmRestart ketika permintaan untuk membatalkan operasi berhasil.
ERROR_BAD_ARGUMENTS
160
Satu atau beberapa argumen tidak benar. Nilai kesalahan ini dikembalikan oleh fungsi Restart Manager jika pointer NULL atau 0 diteruskan dalam parameter yang memerlukan nilai non-null dan bukan nol.
ERROR_WRITE_FAULT
29
Operasi tidak dapat membaca atau menulis ke registri.
ERROR_OUTOFMEMORY
14
Operasi Restart Manager tidak dapat diselesaikan karena memori tidak cukup tersedia.
ERROR_INVALID_HANDLE
6
Tidak ada sesi Restart Manager untuk handel yang disediakan.
ERROR_SUCCESS
0
Fungsi berhasil dan kembali.

Keterangan

Setelah memanggil fungsi RmRestart , struktur RM_PROCESS_INFO yang dikembalikan oleh fungsi RmGetList berisi informasi status yang diperbarui.

Restart Manager menghormati hak istimewa yang memisahkan sesi pengguna atau terminal yang berbeda. Alat penginstal yang berjalan sebagai layanan dengan hak istimewa LocalSystem tidak dapat mematikan atau memulai ulang aplikasi apa pun di sesi pengguna atau terminal lain. Alat penginstal harus menerapkan metode kustom untuk mematikan dan memulai ulang aplikasi yang berjalan di sesi lain. Salah satu metodenya adalah memulai proses penginstal baru di sesi lain untuk melakukan operasi pematian dan hidupkan ulang.

Saat aplikasi konsol dimatikan dan dimulai ulang oleh Restart Manager, aplikasi dimulai ulang di konsol baru.

Penginstal harus selalu memulai ulang aplikasi dan layanan menggunakan fungsi RmRestart bahkan ketika fungsi RmShutdown mengembalikan kesalahan yang menunjukkan bahwa tidak semua aplikasi dan layanan dapat dimatikan.

Fungsi RmRestart tidak memulai ulang aplikasi apa pun yang berjalan dengan hak istimewa yang ditingkatkan. Bahkan jika aplikasi dimatikan oleh Restart Manager.

Fungsi RmRestart tidak memulai ulang aplikasi apa pun yang tidak berjalan sebagai pengguna yang saat ini masuk. Bahkan jika aplikasi dimatikan oleh Restart Manager. 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.

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung Windows Vista [hanya aplikasi desktop]
Server minimum yang didukung Windows Server 2008 [hanya aplikasi desktop]
Target Platform Windows
Header restartmanager.h
Pustaka Rstrtmgr.lib
DLL Rstrtmgr.dll

Lihat juga

RegisterApplicationRestart

RmCancelCurrentTask

RmShutdown