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 |
---|---|
|
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 |
---|---|
|
Aucune notification n’est spécifiée ; RPC_ASYNC_NOTIFICATION_INFO n’est pas initialisé. |
|
Le mécanisme de notification est un événement Windows. |
|
Le mécanisme de notification est un appel de procédure asynchrone Windows. |
|
Le mécanisme de notification est un port d’achèvement des E/S. |
|
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. |
|
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.
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) |