estructura RPC_ASYNC_STATE (rpcasync.h)
La estructura RPC_ASYNC_STATE contiene el estado de una llamada de procedimiento remoto asincrónico. RPC_ASYNC_STATE es un identificador de esta estructura, que se usa para esperar, consultar, responder o cancelar llamadas asincrónicas.
Sintaxis
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;
Miembros
Size
Tamaño de esta estructura, en bytes. El entorno establece este miembro cuando se llama a RpcAsyncInitializeHandle . No modifique este miembro.
Signature
El entorno en tiempo de ejecución establece este miembro cuando se llama a RpcAsyncInitializeHandle . No modifique este miembro.
Lock
El entorno en tiempo de ejecución establece este miembro cuando se llama a RpcAsyncInitializeHandle . No modifique este miembro.
Flags
El miembro flags se puede establecer en los valores siguientes.
Constante | Significado |
---|---|
|
Envía un mensaje de notificación cuando se completa la operación asincrónica. |
Estas marcas se usan con canalizaciones DCE, que permiten a las aplicaciones enviar o recibir datos en varios bloques. Los programas pueden enviar un flujo continuo de datos o esperar a que cada bloque se transmita antes de que envíe el siguiente bloque. Si no espera, la biblioteca en tiempo de ejecución rpc almacenará en búfer la salida hasta que se pueda enviar. Una vez completada la transmisión de datos, la biblioteca RPC envía una notificación a la aplicación. Si una aplicación especifica la marca RPC_C_NOTIFY_ON_SEND_COMPLETE, la biblioteca RPC la envía a un miembro de la enumeración RPC_NOTIFICATION_TYPES después de completar cada operación de envío.
StubInfo
Reservado para su uso por parte de los códigos auxiliares. No use este miembro.
UserInfo
Use este miembro para cualquier información específica de la aplicación que desee realizar un seguimiento de en esta estructura.
RuntimeInfo
Reservado para su uso por el entorno en tiempo de ejecución de RPC. No use este miembro.
Event
Tipo de evento que se produjo. El entorno en tiempo de ejecución rpc establece este campo en un miembro de la enumeración RPC_ASYNC_EVENT .
NotificationType
Tipo de notificación que el tiempo de ejecución rpc debe usar para notificar al cliente la aparición de un evento, como la finalización de la llamada o la finalización del evento.
Valor | Significado |
---|---|
|
No se especifica ninguna notificación; RPC_ASYNC_NOTIFICATION_INFO no se inicializa. |
|
El mecanismo de notificación es un evento de Windows. |
|
El mecanismo de notificación es una llamada de procedimiento asincrónico de Windows. |
|
El mecanismo de notificación es un puerto de finalización de E/S. |
|
El mecanismo de notificación es un mensaje del sistema de Windows.
Windows Server 2003 o posterior: La notificación a través del HWND está en desuso. No use este valor. |
|
El mecanismo de notificación es una devolución de llamada de función. |
u
Contiene información de notificación asincrónica con formato para el tipo de mecanismo especificado en NotificationType.
Reserved[4]
Reservado para la compatibilidad con versiones futuras, si existe. No use este miembro.
Comentarios
El cliente asigna espacio para la estructura de RPC_ASYNC_STATE y un identificador asociado, y llama a RpcAsyncInitializeHandle para inicializar la estructura. Una vez que el entorno en tiempo de ejecución ha inicializado correctamente la estructura, el cliente inicializa NotificationType y exactamente una de las siguientes estructuras en la unión de RPC_ASYNC_NOTIFICATION_INFO : APC para una llamada a procedimiento asincrónico de Windows, IOC para un puerto de finalización de E/S, HWND para un mensaje del sistema Windows o hEvent para un evento de Windows. Si el método de notificación elegido es RpcNotificationTypeNone, no es necesario inicializar ningún campo de la unión. El cliente RPC también puede inicializar el campo UserInfo .
Requisitos
Requisito | Value |
---|---|
Cliente mínimo compatible | Windows 2000 Professional [solo aplicaciones de escritorio] |
Servidor mínimo compatible | Windows 2000 Server [solo aplicaciones de escritorio] |
Encabezado | rpcasync.h (incluir Rpc.h) |