struktur SERVICE_TRIGGER (winsvc.h)
Mewakili peristiwa pemicu layanan. Struktur ini digunakan oleh struktur SERVICE_TRIGGER_INFO .
Sintaks
typedef struct _SERVICE_TRIGGER {
DWORD dwTriggerType;
DWORD dwAction;
GUID *pTriggerSubtype;
DWORD cDataItems;
PSERVICE_TRIGGER_SPECIFIC_DATA_ITEM pDataItems;
} SERVICE_TRIGGER, *PSERVICE_TRIGGER;
Anggota
dwTriggerType
Jenis peristiwa pemicu. Anggota ini bisa menjadi salah satu nilai berikut.
Nilai | Makna |
---|---|
|
Peristiwa ini adalah peristiwa kustom yang dihasilkan oleh penyedia Pelacakan Peristiwa untuk Windows (ETW). Kejadian pemicu ini dapat digunakan untuk memulai atau menghentikan layanan.
Anggota pTriggerSubtype menentukan GUID penyedia peristiwa. Anggota pDataItems menentukan data khusus pemicu yang ditentukan oleh penyedia. |
|
Peristiwa dipicu ketika perangkat dari kelas antarmuka perangkat yang ditentukan tiba atau ada saat sistem dimulai. Kejadian pemicu ini umumnya digunakan untuk memulai layanan.
Anggota pTriggerSubtype menentukan GUID kelas antarmuka perangkat. GUID ini didefinisikan dalam file header khusus perangkat yang disediakan dengan Windows Driver Kit (WDK). Anggota pDataItems menentukan satu atau beberapa ID perangkat keras dan string ID yang kompatibel untuk kelas antarmuka perangkat. String harus Unicode. Jika lebih dari satu string ditentukan, peristiwa dipicu jika salah satu string cocok. Misalnya, layanan Wpdbusenum dimulai ketika perangkat kelas antarmuka perangkat GUID_DEVINTERFACE_DISK {53f56307-b6bf-11d0-94f2-00a0c91efb8b} dan string |
|
Peristiwa dipicu saat komputer bergabung atau meninggalkan domain. Kejadian pemicu ini dapat digunakan untuk memulai atau menghentikan layanan.
Anggota pTriggerSubtype menentukan DOMAIN_JOIN_GUID atau DOMAIN_LEAVE_GUID. Anggota pDataItems tidak digunakan. |
|
Peristiwa dipicu ketika port firewall dibuka atau sekitar 60 detik setelah port firewall ditutup. Kejadian pemicu ini dapat digunakan untuk memulai atau menghentikan layanan.
Anggota pTriggerSubtype menentukan FIREWALL_PORT_OPEN_GUID atau FIREWALL_PORT_CLOSE_GUID. Anggota pDataItems menentukan port, protokol, dan secara opsional jalur yang dapat dieksekusi dan informasi pengguna (string atau nama SID) dari layanan yang mendengarkan pada peristiwa tersebut. Token "RPC" dapat digunakan sebagai pengganti port untuk menentukan soket mendengarkan apa pun yang digunakan oleh RPC. Token "sistem" dapat digunakan sebagai pengganti jalur yang dapat dieksekusi untuk menentukan port yang dibuat oleh dan didengarkan oleh kernel Windows. Peristiwa dipicu hanya jika semua string cocok. Misalnya, jika MyService yang dihosting di dalam MyServiceProcess.exe akan dimulai saat port UDP 5001 terbuka, data khusus pemicu akan menjadi representasi Unicode dari Catatan Sebelum kejadian ini dapat didaftarkan, layanan Mesin Pemfilteran Dasar (BFE) dan semua layanan yang bergantung padanya harus dihentikan. Setelah peristiwa terdaftar, layanan dan layanan BFE yang bergantung padanya dapat dimulai ulang. Untuk informasi selengkapnya, lihat Keterangan.
|
|
Peristiwa ini dipicu ketika kebijakan komputer atau perubahan kebijakan pengguna terjadi. Kejadian pemicu ini umumnya digunakan untuk memulai layanan.
Anggota pTriggerSubtype menentukan MACHINE_POLICY_PRESENT_GUID atau USER_POLICY_PRESENT_GUID. Anggota pDataItems tidak digunakan. |
|
Peristiwa ini dipicu ketika alamat IP pertama pada tumpukan jaringan TCP/IP menjadi tersedia atau alamat IP terakhir pada tumpukan menjadi tidak tersedia. Kejadian pemicu ini dapat digunakan untuk memulai atau menghentikan layanan.
Anggota pTriggerSubtype menentukan NETWORK_MANAGER_FIRST_IP_ADDRESS_ARRIVAL_GUID atau NETWORK_MANAGER_LAST_IP_ADDRESS_REMOVAL_GUID. Anggota pDataItems tidak digunakan. |
|
Peristiwa ini dipicu ketika paket atau permintaan tiba pada protokol jaringan tertentu. Permintaan ini biasanya digunakan untuk memulai layanan yang berhenti sendiri setelah waktu diam habis ketika tidak ada pekerjaan yang harus dilakukan.
Windows 7 dan Windows Server 2008 R2: Jenis pemicu ini tidak didukung hingga Windows 8 dan Windows Server 2012. Anggota pTriggerSubtype menentukan salah satu nilai berikut: RPC_INTERFACE_EVENT_GUID atau NAMED_PIPE_EVENT_GUID. Anggota pDataItems menentukan GUID titik akhir atau antarmuka. String harus Unicode. Peristiwa memicu jika string sama persis. Anggota dwAction harus SERVICE_TRIGGER_ACTION_SERVICE_START. |
dwAction
Tindakan yang harus diambil ketika peristiwa pemicu yang ditentukan terjadi. Anggota ini bisa menjadi salah satu nilai berikut.
pTriggerSubtype
Menunjuk ke GUID yang mengidentifikasi subjenis peristiwa pemicu. Nilai anggota ini tergantung pada nilai anggota dwTriggerType .
Jika dwTriggerType SERVICE_TRIGGER_TYPE_CUSTOM, pTriggerSubtype adalah GUID yang mengidentifikasi penyedia peristiwa kustom.
Jika dwTriggerType SERVICE_TRIGGER_TYPE_DEVICE_INTERFACE_ARRIVAL, pTriggerSubtype adalah GUID yang mengidentifikasi kelas antarmuka perangkat.
Jika dwTriggerType SERVICE_TRIGGER_TYPE_NETWORK_ENDPOINT, pTriggerSubtype adalah salah satu nilai berikut.
Untuk jenis peristiwa pemicu lainnya, pTriggerSubType bisa menjadi salah satu nilai berikut.
cDataItems
Jumlah struktur SERVICE_TRIGGER_SPECIFIC_DATA_ITEM dalam array yang ditujukkan oleh pDataItems.
Anggota ini hanya valid jika anggota dwDataType SERVICE_TRIGGER_TYPE_CUSTOM, SERVICE_TRIGGER_TYPE_DEVICE_ARRIVAL, SERVICE_TRIGGER_TYPE_FIREWALL_PORT_EVENT, atau SERVICE_TRIGGER_TYPE_NETWORK_ENDPOINT.
pDataItems
Penunjuk ke array struktur SERVICE_TRIGGER_SPECIFIC_DATA_ITEM yang berisi data khusus pemicu.
Keterangan
Pada sistem yang bergabung ke domain, pengaturan kebijakan keamanan dapat mencegah layanan BFE dan layanan dependennya dihentikan atau menyebabkannya dimulai ulang secara otomatis. Dalam hal ini, perlu untuk menonaktifkan layanan dan kemudian mengaktifkannya kembali setelah peristiwa terdaftar. Untuk melakukan ini secara terprogram, simpan jenis mulai asli setiap layanan, ubah jenis mulai layanan menjadi SERVICE_DISABLED, daftarkan peristiwa, lalu pulihkan jenis mulai asli layanan. Untuk informasi tentang mengubah jenis mulai layanan, lihat ChangeServiceConfig.
Untuk menonaktifkan layanan menggunakan alat baris perintah SC, gunakan perintah sc config bfe start= disabled untuk menonaktifkan layanan BFE dan layanan dependennya, lalu gunakan perintah net stop bfe /Y untuk menghentikannya. Untuk mengaktifkan kembali layanan, gunakan perintah sc config bfe start= auto. Untuk informasi selengkapnya tentang alat baris perintah SC, lihat Mengontrol Layanan Menggunakan SC.
Jika tidak memungkinkan untuk menonaktifkan layanan, mungkin perlu untuk menghidupkan ulang sistem setelah menginstal layanan yang mendaftarkan peristiwa. Dalam hal ini, jangan nonaktifkan layanan BFE dan layanan dependennya sebelum memulai ulang sistem, karena sistem mungkin tidak berfungsi dengan benar jika layanan ini tetap dinonaktifkan.
Persyaratan
Persyaratan | Nilai |
---|---|
Klien minimum yang didukung | Windows 7 [hanya aplikasi desktop] |
Server minimum yang didukung | Windows Server 2008 R2 [hanya aplikasi desktop] |
Header | winsvc.h |