Fungsi QueueUserAPC2 (processthreadsapi.h)
Menambahkan objek panggilan prosedur asinkron (APC) mode pengguna ke antrean APC dari utas yang ditentukan.
Sintaks
BOOL QueueUserAPC2(
PAPCFUNC ApcRoutine,
HANDLE Thread,
ULONG_PTR Data,
QUEUE_USER_APC_FLAGS Flags
);
Parameter
ApcRoutine
Penunjuk ke fungsi APC yang disediakan aplikasi untuk dipanggil ketika utas yang ditentukan melakukan operasi tunggu yang dapat diperingatkan. Untuk informasi selengkapnya, lihat APCProc.
Untuk APC mode pengguna khusus, penantian yang dapat diperingatkan tidak diperlukan. Lihat Keterangan untuk informasi selengkapnya tentang APC mode pengguna khusus.
Thread
Handel ke utas. Handel harus memiliki izin akses THREAD_SET_CONTEXT . Untuk informasi selengkapnya, lihat Keamanan Objek Sinkronisasi dan Hak Akses.
Data
Nilai tunggal yang diteruskan ke fungsi APC yang ditunjukkan oleh parameter ApcRoutine .
Flags
Nilai dari enumerasi QUEUE_USER_APC_FLAGS yang memodifikasi perilaku APC mode pengguna.
Nilai kembali
Jika fungsi berhasil, nilai yang dikembalikan bukan nol.
Jika fungsi gagal, nilai yang dikembalikan adalah nol. Untuk mendapatkan informasi kesalahan yang diperluas, hubungi GetLastError.
Keterangan
APC mode pengguna reguler hanya dijalankan jika utas target dalam status dapat diberitahukan. Lihat Fungsi QueueUserAPC untuk keterangan tambahan tentang APC mode pengguna reguler.
APC mode pengguna khusus selalu dijalankan, bahkan jika utas target tidak dalam keadaan yang dapat diperingatkan. Misalnya, jika utas target saat ini menjalankan kode mode pengguna, atau jika utas target saat ini melakukan penantian yang dapat diperingatkan, utas target akan segera terganggu untuk eksekusi APC. Jika utas target menjalankan panggilan sistem, atau melakukan penantian yang tidak dapat diwaspadai, APC akan dijalankan setelah panggilan sistem atau tunggu yang tidak dapat diingat selesai (penantian tidak terganggu).
Karena eksekusi APC mode pengguna khusus tidak disinkronkan dengan utas target, perawatan khusus harus dilakukan (di luar persyaratan normal untuk multithreading dan sinkronisasi). Misalnya, saat memperoleh kunci apa pun, utas target yang terganggu mungkin sudah memiliki kunci atau sedang dalam proses memperoleh atau melepaskan kunci. Selain itu, karena tidak ada fasilitas untuk memblokir utas agar tidak menerima APC mode pengguna khusus, APC mode pengguna khusus dapat dieksekusi pada utas target yang sudah mengeksekusi APC mode pengguna khusus.
Saat ini, APC mode pengguna khusus hanya didukung pada arsitektur asli, dan bukan saat berjalan di bawah WoW.
Persyaratan
Persyaratan | Nilai |
---|---|
Klien minimum yang didukung | Windows 11 (Build 22000) |
Server minimum yang didukung | Windows Server 2022 (Build 20348) |
Target Platform | Windows |
Header | processthreadsapi.h (termasuk Windows.h) |
Pustaka | Kernel32.lib |
DLL | Kernel32.dll |