Partager via


RPC_ASYNC_STATE structure (rpcasync.h)

La structure RPC_ASYNC_STATE contient l’état d’un appel de procédure distante asynchrone. RPC_ASYNC_STATE est un handle de cette structure, utilisé pour attendre, interroger, répondre ou annuler des appels asynchrones.

Syntaxe

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;

Membres

Size

Taille de cette structure, en octets. L’environnement définit ce membre lorsque RpcAsyncInitializeHandle est appelé. Ne modifiez pas ce membre.

Signature

L’environnement d’exécution définit ce membre lorsque RpcAsyncInitializeHandle est appelé. Ne modifiez pas ce membre.

Lock

L’environnement d’exécution définit ce membre lorsque RpcAsyncInitializeHandle est appelé. Ne modifiez pas ce membre.

Flags

Le membre d’indicateurs peut être défini sur les valeurs suivantes.

Constant Signification
RPC_C_NOTIFY_ON_SEND_COMPLETE
Publie un message de notification lorsque l’opération asynchrone est terminée.
 

Ces indicateurs sont utilisés avec les canaux DCE, qui permettent aux applications d’envoyer ou de recevoir des données dans plusieurs blocs. Les programmes peuvent envoyer un flux continu de données ou attendre que chaque bloc soit transmis avant d’envoyer le bloc suivant. Si elle n’attend pas, la bibliothèque d’exécution RPC met en mémoire tampon la sortie jusqu’à ce qu’elle puisse être envoyée. Une fois la transmission des données terminée, la bibliothèque RPC envoie une notification à l’application. Si une application spécifie l’indicateur RPC_C_NOTIFY_ON_SEND_COMPLETE, la bibliothèque RPC l’envoie membre de l’énumération RPC_NOTIFICATION_TYPES après chaque opération d’envoi.

StubInfo

Réservé à l’utilisation par les stubs. N’utilisez pas ce membre.

UserInfo

Utilisez ce membre pour toutes les informations spécifiques à l’application que vous souhaitez suivre dans cette structure.

RuntimeInfo

Réservé à une utilisation par l’environnement d’exécution RPC. N’utilisez pas ce membre.

Event

Type d’événement qui s’est produit. L’environnement d’exécution RPC définit ce champ sur un membre de l’énumération RPC_ASYNC_EVENT .

NotificationType

Type de notification que l’exécution rpc doit utiliser pour notifier le client de l’occurrence d’un événement, par exemple la fin de l’appel ou la fin de l’événement.

Valeur Signification
RpcNotificationTypeNone
Aucune notification n’est spécifiée ; RPC_ASYNC_NOTIFICATION_INFO n’est pas initialisé.
RpcNotificationTypeEvent
Le mécanisme de notification est un événement Windows.
RpcNotificationTypeApc
Le mécanisme de notification est un appel de procédure asynchrone Windows.
RpcNotificationTypeIoc
Le mécanisme de notification est un port d’achèvement des E/S.
RpcNotificationTypeHwnd
Le mécanisme de notification est un message système Windows.

Windows Server 2003 ou version ultérieure : La notification via le HWND est déconseillée. N’utilisez pas cette valeur.

RpcNotificationTypeCallback
Le mécanisme de notification est un rappel de fonction.

u

Contient des informations de notification asynchrones mises en forme pour le type de mécanisme spécifié dans NotificationType.

Note Avant Windows Vista, ce membre contenait la syntaxe spécifique de l’union actuellement spécifiée par l’union RPC_ASYNC_NOTIFICATION_INFO .
 

Reserved[4]

Réservé pour la compatibilité avec les versions ultérieures, le cas échéant. N’utilisez pas ce membre.

Remarques

Le client alloue de l’espace pour la structure RPC_ASYNC_STATE et un handle associé, puis appelle RpcAsyncInitializeHandle pour initialiser la structure. Une fois que l’environnement d’exécution a correctement initialisé la structure, le client initialise notificationType et exactement l’une des structures suivantes dans l’union RPC_ASYNC_NOTIFICATION_INFO : APC pour un appel de procédure asynchrone Windows, IOC pour un port d’achèvement d’E/ S, HWND pour un message système Windows ou hEvent pour un événement Windows. Si la méthode de notification choisie est RpcNotificationTypeNone, aucun champ de l’union ne doit être initialisé. Le client RPC peut également initialiser le champ UserInfo .

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows 2000 Professionnel [applications de bureau uniquement]
Serveur minimal pris en charge Windows 2000 Server [applications de bureau uniquement]
En-tête rpcasync.h (inclure Rpc.h)

Voir aussi

RPC asynchrone

RpcAsyncAbortCall

RpcAsyncCancelCall

RpcAsyncCompleteCall

RpcAsyncGetCallHandle

RpcAsyncGetCallStatus

RpcAsyncInitializeHandle

RpcServerTestCancel