struttura RPC_ASYNC_STATE (rpcasync.h)

La struttura RPC_ASYNC_STATE contiene lo stato di una chiamata di procedura remota asincrona. RPC_ASYNC_STATE è un handle per questa struttura, usato per attendere, eseguire query, rispondere o annullare chiamate asincrone.

Sintassi

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;

Members

Size

Dimensioni di questa struttura, in byte. L'ambiente imposta questo membro quando viene chiamato RpcAsyncInitializeHandle . Non modificare questo membro.

Signature

L'ambiente di runtime imposta questo membro quando viene chiamato RpcAsyncInitializeHandle . Non modificare questo membro.

Lock

L'ambiente di runtime imposta questo membro quando viene chiamato RpcAsyncInitializeHandle . Non modificare questo membro.

Flags

Il membro flag può essere impostato sui valori seguenti.

Costante Significato
RPC_C_NOTIFY_ON_SEND_COMPLETE
Invia un messaggio di notifica al completamento dell'operazione asincrona.
 

Questi flag vengono usati con pipe DCE, che consentono alle applicazioni di inviare o ricevere dati in più blocchi. I programmi possono inviare un flusso continuo di dati o attendere che ogni blocco venga trasmesso prima di inviare il blocco successivo. Se non attende, la libreria di runtime RPC buffererà l'output fino a quando non può essere inviato. Al termine della trasmissione dei dati, la libreria RPC invia all'applicazione una notifica. Se un'applicazione specifica il flag RPC_C_NOTIFY_ON_SEND_COMPLETE, la libreria RPC lo invia a un membro dell'enumerazione RPC_NOTIFICATION_TYPES dopo aver completato ogni operazione di invio.

StubInfo

Riservato per l'uso da parte degli stub. Non usare questo membro.

UserInfo

Usare questo membro per tutte le informazioni specifiche dell'applicazione da tenere traccia in questa struttura.

RuntimeInfo

Riservato per l'uso dall'ambiente di runtime RPC. Non usare questo membro.

Event

Tipo di evento che si è verificato. L'ambiente di runtime RPC imposta questo campo su un membro dell'enumerazione RPC_ASYNC_EVENT .

NotificationType

Il tipo di notifica del tempo di esecuzione RPC deve essere usato per notificare al client l'occorrenza di un evento, ad esempio il completamento della chiamata o il completamento dell'evento.

Valore Significato
RpcNotificationTypeNone
Non è specificata alcuna notifica; RPC_ASYNC_NOTIFICATION_INFO non viene inizializzato.
RpcNotificationTypeEvent
Il meccanismo di notifica è un evento di Windows.
RpcNotificationTypeApc
Il meccanismo di notifica è una chiamata di procedura asincrona di Windows.
RpcNotificationTypeIoc
Il meccanismo di notifica è una porta di completamento di I/O.
RpcNotificationTypeHwnd
Il meccanismo di notifica è un messaggio di sistema di Windows.

Windows Server 2003 o versione successiva: La notifica tramite HWND è deprecata. Non usare questo valore.

RpcNotificationTypeCallback
Il meccanismo di notifica è un callback delle funzioni.

u

Contiene informazioni di notifica asincrone formattate per il tipo di meccanismo specificato in NotificationType.

Nota Precedente a Windows Vista, questo membro contiene la sintassi specifica dell'unione attualmente specificata dall'unione RPC_ASYNC_NOTIFICATION_INFO .
 

Reserved[4]

Riservato per la compatibilità con le versioni future, se presenti. Non usare questo membro.

Commenti

Il client alloca spazio per la struttura RPC_ASYNC_STATE e un handle associato e chiama RpcAsyncInitializeHandle per inizializzare la struttura. Dopo aver inizializzato correttamente l'ambiente di runtime, il client inizializza il tipo di notifica e esattamente una delle strutture seguenti nell'unione RPC_ASYNC_NOTIFICATION_INFO : APC per una chiamata di routine asincrona di Windows, IOC per una porta di completamento di I/O, HWND per un messaggio di sistema Windows o hEvent per un evento Windows. Se il metodo di notifica scelto è RpcNotificationTypeNone, non è necessario inizializzare alcun campo dell'unione. Il client RPC può inizializzare anche il campo UserInfo .

Requisiti

Requisito Valore
Client minimo supportato Windows 2000 Professional [solo app desktop]
Server minimo supportato Windows 2000 Server [solo app desktop]
Intestazione rpcasync.h (include Rpc.h)

Vedi anche

RPC asincrono

RpcAsyncAbortCall

RpcAsyncCancelCall

RpcAsyncCompleteCall

RpcAsyncGetCallHandle

RpcAsyncGetCallStatus

RpcAsyncInitializeHandle

RpcServerTestCancel