Bagikan melalui


Fungsi InitiateShutdownA (winreg.h)

Memulai pematian dan menghidupkan ulang komputer yang ditentukan, dan memulai ulang aplikasi apa pun yang telah didaftarkan untuk memulai ulang.

Sintaks

DWORD InitiateShutdownA(
  [in, optional] LPSTR lpMachineName,
  [in, optional] LPSTR lpMessage,
  [in]           DWORD dwGracePeriod,
  [in]           DWORD dwShutdownFlags,
  [in]           DWORD dwReason
);

Parameter

[in, optional] lpMachineName

Nama komputer yang akan dimatikan. Jika nilai parameter ini ADALAH NULL, komputer lokal akan dimatikan.

[in, optional] lpMessage

Pesan yang akan ditampilkan dalam kotak dialog matikan interaktif.

[in] dwGracePeriod

Jumlah detik untuk menunggu sebelum mematikan komputer. Jika nilai parameter ini nol, komputer segera dimatikan. Nilai ini terbatas pada MAX_SHUTDOWN_TIMEOUT.

Jika nilai parameter ini lebih besar dari nol, dan parameter dwShutdownFlags menentukan bendera SHUTDOWN_GRACE_OVERRIDE, fungsi gagal dan mengembalikan kode kesalahan ERROR_BAD_ARGUMENTS.

[in] dwShutdownFlags

Satu atau beberapa bendera bit yang menentukan opsi untuk matikan. Nilai berikut ditentukan.

Nilai Makna
SHUTDOWN_FORCE_OTHERS
0x00000001 (0x1)
Semua sesi dicatat secara paksa. Jika bendera ini tidak diatur dan pengguna selain pengguna saat ini masuk ke komputer yang ditentukan oleh parameter lpMachineName , fungsi ini gagal dengan nilai pengembalian ERROR_SHUTDOWN_USERS_LOGGED_ON.
SHUTDOWN_FORCE_SELF
0x00000002 (0x2)
Menentukan bahwa sesi asal dicatat secara paksa. Jika bendera ini tidak diatur, sesi asal dimatikan secara interaktif, sehingga pematian tidak dijamin meskipun fungsi berhasil dikembalikan.
SHUTDOWN_GRACE_OVERRIDE
0x00000020 (0x20)
Mengambil alih masa tenggang sehingga komputer segera dimatikan.
SHUTDOWN_HYBRID
0x00000200 (0x200)
Dimulai dengan InitiateShutdown berjalan pada Windows 8, Anda harus menyertakan bendera SHUTDOWN_HYBRID dengan satu atau beberapa bendera dalam tabel ini untuk menentukan opsi penonaktifan.

Dimulai dengan Windows 8, InitiateShutdown selalu memulai pematian sistem penuh jika bendera SHUTDOWN_HYBRID tidak ada.

SHUTDOWN_INSTALL_UPDATES
0x00000040 (0x40)
Komputer menginstal pembaruan apa pun sebelum memulai pematian.
SHUTDOWN_NOREBOOT
0x00000010 (0x10)
Komputer dimatikan tetapi tidak dimatikan atau di-boot ulang.
SHUTDOWN_POWEROFF
0x00000008 (0x8)
Komputer dimatikan dan dimatikan.
SHUTDOWN_RESTART
0x00000004 (0x4)
Komputer dimatikan dan di-boot ulang.
SHUTDOWN_RESTARTAPPS
0x00000080 (0x80)
Sistem di-boot ulang menggunakan fungsi ExitWindowsEx dengan bendera EWX_RESTARTAPPS. Ini memulai ulang aplikasi apa pun yang telah didaftarkan untuk memulai ulang menggunakan fungsi RegisterApplicationRestart .

[in] dwReason

Alasan untuk memulai pematian. Parameter ini harus menjadi salah satu kode alasan pematian sistem. Jika parameter ini nol, defaultnya adalah pematian yang tidak terdefinisi yang dicatat sebagai "Tidak ada judul karena alasan ini yang dapat ditemukan". Secara default, ini juga merupakan pematian yang tidak dienkripsi. Bergantung pada bagaimana sistem dikonfigurasi, pematian yang tidak terencana memicu pembuatan file yang berisi informasi status sistem, yang dapat menunda pematian. Oleh karena itu, jangan gunakan nol untuk parameter ini.

Nilai kembali

Jika fungsi berhasil, fungsi akan mengembalikan ERROR_SUCCESS.

Jika fungsi gagal, fungsi mengembalikan salah satu kode kesalahan berikut.

Menampilkan kode Deskripsi
ERROR_ACCESS_DENIED
Pemanggil tidak memiliki hak istimewa yang diperlukan (SE_SHUTDOWN_PRIVILEGE atau SE_REMOTE_SHUTDOWN_PRIVILEGE) untuk melakukan operasi ini.
ERROR_BAD_NETPATH
Komputer yang ditentukan tidak ada atau tidak dapat diakses.
ERROR_INVALID_COMPUTERNAME
Nama komputer yang ditentukan bukan nama komputer yang valid.
ERROR_INVALID_FUNCTION
Komputer yang ditentukan tidak mendukung antarmuka matikan.
ERROR_INVALID_PARAMETER
Sekumpulan parameter yang tidak valid diteruskan. Ini termasuk kombinasi berikut.
  • Parameter lpMachineName menentukan komputer jarak jauh, dan parameter dwShutdownFlags tidak menentukan SHUTDOWN_FORCE_SELF.
  • Nilai dwGracePeriod lebih besar dari nol dan parameter dwShutdownFlags tidak menentukan SHUTDOWN_FORCE_SELF.
  • Nilai dwGracePeriod lebih besar dari nol dan parameter dwShutdownFlags menentukan SHUTDOWN_GRACE_OVERRIDE.
ERROR_SHUTDOWN_IN_PROGRESS
Pematian telah dimulai pada komputer yang ditentukan.
ERROR_SHUTDOWN_IS_SCHEDULED
Matikan untuk komputer yang ditentukan telah dijadwalkan tetapi tidak dimulai. Agar fungsi ini berhasil, bendera SHUTDOWN_GRACE_OVERRIDE harus diatur.
ERROR_SHUTDOWN_USERS_LOGGED_ON
Satu atau beberapa pengguna selain pengguna saat ini dicatat pada komputer yang ditentukan, dan bendera SHUTDOWN_FORCE_OTHERS tidak diatur.

Keterangan

Untuk mematikan komputer lokal, utas panggilan harus memiliki hak istimewa SE_SHUTDOWN_NAME. Untuk mematikan komputer jarak jauh, utas panggilan harus memiliki hak istimewa SE_REMOTE_SHUTDOWN_NAME pada komputer jarak jauh. Secara default, pengguna dapat mengaktifkan hak istimewa SE_SHUTDOWN_NAME pada komputer tempat mereka masuk, dan administrator dapat mengaktifkan hak istimewa SE_REMOTE_SHUTDOWN_NAME pada komputer jarak jauh. Untuk informasi selengkapnya, lihat Menjalankan dengan Hak Istimewa Khusus.

Alasan umum kegagalan termasuk nama komputer yang tidak valid atau tidak dapat diakses atau hak istimewa yang tidak mencukupi. Kesalahan ERROR_SHUTDOWN_IN_PROGRESS dikembalikan jika pematian sudah berlangsung pada komputer yang ditentukan. Kesalahan ERROR_NOT_READY dapat dikembalikan jika pengalihan pengguna cepat diaktifkan tetapi tidak ada pengguna yang masuk.

Nilai pengembalian bukan nol tidak berarti logoff berhasil atau akan berhasil. Pematian adalah proses asinkron, dan dapat terjadi lama setelah panggilan API kembali, atau tidak sama sekali. Bahkan jika nilai batas waktu adalah nol, pematian masih dapat dibatalkan oleh aplikasi, layanan, atau bahkan sistem. Nilai pengembalian bukan nol menunjukkan bahwa validasi hak dan parameter berhasil dan sistem menerima permintaan matikan.

Catatan

Header winreg.h mendefinisikan InitiateShutdown sebagai alias yang secara otomatis memilih versi ANSI atau Unicode dari fungsi ini berdasarkan definisi konstanta praprosedur UNICODE. Mencampur penggunaan alias encoding-netral dengan kode yang tidak mengodekan-netral dapat menyebabkan ketidakcocokan yang mengakibatkan kesalahan kompilasi atau runtime. Untuk informasi selengkapnya, lihat Konvensi untuk Prototipe Fungsi.

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung Windows Vista [aplikasi desktop | Aplikasi UWP]
Server minimum yang didukung Windows Server 2008 [aplikasi desktop | Aplikasi UWP]
Target Platform Windows
Header winreg.h (termasuk Windows.h)
Pustaka Advapi32.lib
DLL Advapi32.dll

Lihat juga

Mematikan