Bagikan melalui


Fungsi RmShutdown (restartmanager.h)

Memulai penonaktifan aplikasi. Fungsi ini hanya dapat dipanggil dari alat penginstal yang memulai sesi Restart Manager menggunakan fungsi RmStartSession .

Sintaks

DWORD RmShutdown(
  [in]           DWORD                    dwSessionHandle,
  [in]           ULONG                    lActionFlags,
  [in, optional] RM_WRITE_STATUS_CALLBACK fnStatus
);

Parameter

[in] dwSessionHandle

Handel ke sesi Restart Manager yang ada.

[in] lActionFlags

Satu atau beberapa opsi RM_SHUTDOWN_TYPE yang mengonfigurasi penonaktifan komponen. Nilai berikut dapat digabungkan oleh operator OR untuk menentukan bahwa aplikasi dan layanan yang tidak responsif harus dimatikan secara paksa jika, dan hanya jika, semua aplikasi telah didaftarkan untuk memulai ulang.

Nilai Makna
RmForceShutdown
0x1
Paksa aplikasi dan layanan yang tidak responsif untuk dimatikan setelah periode waktu habis. Aplikasi yang tidak merespons permintaan matikan dipaksa untuk dimatikan dalam waktu 30 detik. Layanan yang tidak merespons permintaan matikan dipaksa dimatikan setelah 20 detik.
RmShutdownOnlyRegistered
0x10
Matikan aplikasi jika dan hanya jika semua aplikasi telah didaftarkan untuk memulai ulang menggunakan fungsi RegisterApplicationRestart . Jika ada proses atau layanan yang tidak dapat dimulai ulang, maka tidak ada proses atau layanan yang dimatikan.

[in, optional] fnStatus

Penunjuk ke fungsi RM_WRITE_STATUS_CALLBACK yang digunakan untuk mengomunikasikan status terperinci saat fungsi ini dijalankan. 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 ditentukan dalam Winerror.h.

Nilai Makna
ERROR_SUCCESS
0
Semua operasi matikan, mulai ulang, dan panggilan balik berhasil diselesaikan.
ERROR_FAIL_NOACTION_REBOOT
350
Tidak ada tindakan matikan yang dilakukan. Satu atau beberapa proses atau layanan mengharuskan menghidupkan ulang sistem untuk dimatikan. Kode kesalahan ini dikembalikan ketika Restart Manager mendeteksi bahwa menghidupkan ulang sistem diperlukan sebelum mematikan aplikasi apa pun.
ERROR_FAIL_SHUTDOWN
351
Beberapa aplikasi tidak dapat dimatikan. AppStatus dari struktur RM_PROCESS_INFO yang dikembalikan oleh fungsi RmGetList berisi informasi status yang diperbarui.
ERROR_CANCELLED
1223
Nilai kesalahan ini dikembalikan oleh fungsi RmShutdown ketika permintaan untuk membatalkan operasi berhasil.
ERROR_SEM_TIMEOUT
121
Fungsi Restart Manager tidak dapat memperoleh mutex tulis Registri dalam waktu yang dialokasikan. Sistem disarankan untuk memulai ulang karena penggunaan Restart Manager lebih lanjut kemungkinan akan gagal.
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.

Keterangan

Fungsi RmShutdown memanggil RmGetList dan memperbarui daftar proses yang saat ini menggunakan sumber daya terdaftar sebelum mencoba mematikan proses apa pun. Fungsi RmShutdown kemudian mencoba mematikan proses menggunakan sumber daya terdaftar dalam daftar terbaru. Fungsi RmShutdown memperbarui anggota AppStatus dari struktur RM_PROCESS_INFO yang dikembalikan oleh fungsi RmGetList dengan informasi status terperinci.

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 matikan dan mulai ulang.

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.

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

RmRestart