Compartir a través de


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
RPC_C_NOTIFY_ON_SEND_COMPLETE
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
RpcNotificationTypeNone
No se especifica ninguna notificación; RPC_ASYNC_NOTIFICATION_INFO no se inicializa.
RpcNotificationTypeEvent
El mecanismo de notificación es un evento de Windows.
RpcNotificationTypeApc
El mecanismo de notificación es una llamada de procedimiento asincrónico de Windows.
RpcNotificationTypeIoc
El mecanismo de notificación es un puerto de finalización de E/S.
RpcNotificationTypeHwnd
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.

RpcNotificationTypeCallback
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.

Nota Antes de Windows Vista, este miembro contenía la sintaxis específica de la unión especificada actualmente por la unión RPC_ASYNC_NOTIFICATION_INFO .
 

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)

Consulte también

RPC asincrónico

RpcAsyncAbortCall

RpcAsyncCancelCall

RpcAsyncCompleteCall

RpcAsyncGetCallHandle

RpcAsyncGetCallStatus

RpcAsyncInitializeHandle

RpcServerTestCancel