Permintaan Kontrol Layanan

Untuk mengirim permintaan kontrol ke layanan yang sedang berjalan, program kontrol layanan menggunakan fungsi ControlService . Fungsi ini menentukan nilai kontrol yang diteruskan ke fungsi HandlerEx dari layanan yang ditentukan. Nilai kontrol ini dapat berupa kode yang ditentukan pengguna, atau bisa menjadi salah satu kode standar yang memungkinkan program panggilan untuk melakukan tindakan berikut:

  • Menghentikan layanan (SERVICE_CONTROL_STOP).
  • Menjeda layanan (SERVICE_CONTROL_PAUSE).
  • Lanjutkan menjalankan layanan yang dijeda (SERVICE_CONTROL_CONTINUE).
  • Mengambil informasi status yang diperbarui dari layanan (SERVICE_CONTROL_INTERROGATE).

Setiap layanan menentukan nilai kontrol yang akan diterima dan diproses. Untuk menentukan nilai kontrol standar mana yang diterima oleh layanan, gunakan fungsi QueryServiceStatusEx atau tentukan nilai kontrol SERVICE_CONTROL_INTERROGATE dalam panggilan ke fungsi ControlService . Anggota dwControlsAccepted dari struktur SERVICE_STATUS yang dikembalikan oleh fungsi-fungsi ini menunjukkan apakah layanan dapat dihentikan, dijeda, atau dilanjutkan. Semua layanan menerima nilai kontrol SERVICE_CONTROL_INTERROGATE.

Fungsi QueryServiceStatusEx melaporkan status terbaru untuk layanan tertentu, tetapi tidak mendapatkan status yang diperbarui dari layanan itu sendiri. Menggunakan nilai kontrol SERVICE_CONTROL_INTERROGATE dalam panggilan ke ControlService memastikan bahwa informasi status yang dikembalikan adalah saat ini.

Mengontrol Layanan Menggunakan SC