Bagikan melalui


struktur RPC_ASYNC_STATE (rpcasync.h)

Struktur RPC_ASYNC_STATE memegang status panggilan prosedur jarak jauh asinkron. RPC_ASYNC_STATE adalah handel untuk struktur ini, digunakan untuk menunggu, mengkueri, membalas, atau membatalkan panggilan asinkron.

Sintaks

typedef struct _RPC_ASYNC_STATE {
  unsigned int                Size;
  unsigned long               Signature;
  long                        Lock;
  unsigned long               Flags;
  void                        *StubInfo;
  void                        *UserInfo;
  void                        *RuntimeInfo;
  RPC_ASYNC_EVENT             Event;
  RPC_NOTIFICATION_TYPES      NotificationType;
  RPC_ASYNC_NOTIFICATION_INFO u;
  LONG_PTR                    Reserved[4];
} RPC_ASYNC_STATE, *PRPC_ASYNC_STATE;

Anggota

Size

Ukuran struktur ini, dalam byte. Lingkungan menetapkan anggota ini ketika RpcAsyncInitializeHandle dipanggil. Jangan ubah anggota ini.

Signature

Lingkungan run-time menetapkan anggota ini ketika RpcAsyncInitializeHandle dipanggil. Jangan ubah anggota ini.

Lock

Lingkungan run-time menetapkan anggota ini ketika RpcAsyncInitializeHandle dipanggil. Jangan ubah anggota ini.

Flags

Anggota bendera dapat diatur ke nilai berikut.

Terus-menerus Makna
RPC_C_NOTIFY_ON_SEND_COMPLETE
Memposting pesan pemberitahuan saat operasi asinkron selesai.
 

Bendera ini digunakan dengan pipa DCE, yang memungkinkan aplikasi mengirim atau menerima data dalam beberapa blok. Program dapat mengirim aliran data berkelanjutan atau menunggu setiap blok ditransmisikan sebelum mengirim blok berikutnya. Jika tidak menunggu, pustaka run-time RPC akan menyangga output hingga dapat dikirim. Ketika transmisi data selesai, pustaka RPC mengirimkan pemberitahuan kepada aplikasi. Jika aplikasi menentukan bendera RPC_C_NOTIFY_ON_SEND_COMPLETE, pustaka RPC mengirimkannya sebagai anggota enumerasi RPC_NOTIFICATION_TYPES setelah menyelesaikan setiap operasi pengiriman.

StubInfo

Dicadangkan untuk digunakan oleh stub. Jangan gunakan anggota ini.

UserInfo

Gunakan anggota ini untuk informasi khusus aplikasi apa pun yang ingin Anda lacak dalam struktur ini.

RuntimeInfo

Dicadangkan untuk digunakan oleh lingkungan run-time RPC. Jangan gunakan anggota ini.

Event

Jenis peristiwa yang terjadi. Lingkungan run-time RPC mengatur bidang ini ke anggota enumerasi RPC_ASYNC_EVENT .

NotificationType

Jenis pemberitahuan yang harus digunakan run time RPC untuk memberi tahu klien tentang terjadinya peristiwa, seperti penyelesaian panggilan atau penyelesaian peristiwa.

Nilai Makna
RpcNotificationTypeNone
Tidak ada pemberitahuan yang ditentukan; RPC_ASYNC_NOTIFICATION_INFO tidak diinisialisasi.
RpcNotificationTypeEvent
Mekanisme pemberitahuan adalah peristiwa Windows.
RpcNotificationTypeApc
Mekanisme pemberitahuan adalah panggilan prosedur asinkron Windows.
RpcNotificationTypeIoc
Mekanisme pemberitahuan adalah port penyelesaian I/O.
RpcNotificationTypeHwnd
Mekanisme pemberitahuan adalah pesan sistem Windows.

Windows Server 2003 atau yang lebih baru: Pemberitahuan melalui HWND tidak digunakan lagi. Jangan gunakan nilai ini.

RpcNotificationTypeCallback
Mekanisme pemberitahuan adalah panggilan balik fungsi.

u

Berisi informasi pemberitahuan asinkron yang diformat untuk jenis mekanisme yang ditentukan dalam NotificationType.

Catatan Sebelumnya untuk Windows Vista, anggota ini berisi sintaksis spesifik dari serikat yang saat ini ditentukan oleh serikat RPC_ASYNC_NOTIFICATION_INFO .
 

Reserved[4]

Disediakan untuk kompatibilitas dengan versi mendatang, jika ada. Jangan gunakan anggota ini.

Keterangan

Klien mengalokasikan ruang untuk struktur RPC_ASYNC_STATE dan handel terkait, dan memanggil RpcAsyncInitializeHandle untuk menginisialisasi struktur. Setelah lingkungan run-time berhasil menginisialisasi struktur, klien menginisialisasi NotificationType, dan tepat salah satu struktur berikut dalam penyatuan RPC_ASYNC_NOTIFICATION_INFO : APC untuk panggilan prosedur asinkron Windows, IOC untuk port penyelesaian I/O, HWND untuk pesan sistem Windows, atau hEvent untuk peristiwa Windows. Jika metode pemberitahuan yang dipilih adalah RpcNotificationTypeNone, tidak ada bidang serikat yang perlu diinisialisasi. Klien RPC juga dapat menginisialisasi bidang UserInfo secara opsional.

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung Windows 2000 Professional [hanya aplikasi desktop]
Server minimum yang didukung Windows 2000 Server [hanya aplikasi desktop]
Header rpcasync.h (termasuk Rpc.h)

Lihat juga

RPC asinkron

RpcAsyncAbortCall

RpcAsyncCancelCall

RpcAsyncCompleteCall

RpcAsyncGetCallHandle

RpcAsyncGetCallStatus

RpcAsyncInitializeHandle

RpcServerTestCancel