estrutura RPC_ASYNC_STATE (rpcasync.h)

A estrutura RPC_ASYNC_STATE mantém o estado de uma chamada de procedimento remoto assíncrona. RPC_ASYNC_STATE é um identificador para essa estrutura, usado para aguardar, consultar, responder ou cancelar chamadas assíncronas.

Sintaxe

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;

Membros

Size

Tamanho dessa estrutura, em bytes. O ambiente define esse membro quando RpcAsyncInitializeHandle é chamado. Não modifique esse membro.

Signature

O ambiente em tempo de execução define esse membro quando RpcAsyncInitializeHandle é chamado. Não modifique esse membro.

Lock

O ambiente em tempo de execução define esse membro quando RpcAsyncInitializeHandle é chamado. Não modifique esse membro.

Flags

O membro flags pode ser definido com os valores a seguir.

Constante Significado
RPC_C_NOTIFY_ON_SEND_COMPLETE
Posta uma mensagem de notificação quando a operação assíncrona é concluída.
 

Esses sinalizadores são usados com pipes DCE, que permitem que os aplicativos enviem ou recebam dados em vários blocos. Os programas podem enviar um fluxo contínuo de dados ou aguardar que cada bloco seja transmitido antes de enviar o próximo bloco. Se ele não aguardar, a biblioteca de tempo de execução do RPC armazenará em buffer a saída até que ela possa ser enviada. Quando a transmissão de dados for concluída, a biblioteca RPC enviará uma notificação ao aplicativo. Se um aplicativo especificar o sinalizador RPC_C_NOTIFY_ON_SEND_COMPLETE, a biblioteca RPC enviará um membro da enumeração RPC_NOTIFICATION_TYPES depois de concluir cada operação de envio.

StubInfo

Reservado para uso pelos stubs. Não use esse membro.

UserInfo

Use esse membro para obter informações específicas do aplicativo que você deseja controlar nessa estrutura.

RuntimeInfo

Reservado para uso pelo ambiente de tempo de execução RPC. Não use esse membro.

Event

Tipo de evento que ocorreu. O ambiente de tempo de execução RPC define esse campo como um membro da enumeração RPC_ASYNC_EVENT .

NotificationType

Tipo de notificação que o tempo de execução do RPC deve usar para notificar o cliente sobre a ocorrência de um evento, como a conclusão da chamada ou a conclusão do evento.

Valor Significado
RpcNotificationTypeNone
Nenhuma notificação é especificada; RPC_ASYNC_NOTIFICATION_INFO não é inicializado.
RpcNotificationTypeEvent
O mecanismo de notificação é um evento do Windows.
RpcNotificationTypeApc
O mecanismo de notificação é uma chamada de procedimento assíncrono do Windows.
RpcNotificationTypeIoc
O mecanismo de notificação é uma porta de conclusão de E/S.
RpcNotificationTypeHwnd
O mecanismo de notificação é uma mensagem do sistema Windows.

Windows Server 2003 ou posterior: A notificação por meio do HWND foi preterida. Não use esse valor.

RpcNotificationTypeCallback
O mecanismo de notificação é um retorno de chamada de função.

u

Contém informações de notificação assíncronas formatadas para o tipo de mecanismo especificado em NotificationType.

Nota Anterior ao Windows Vista, esse membro continha a sintaxe específica da união atualmente especificada pela união RPC_ASYNC_NOTIFICATION_INFO .
 

Reserved[4]

Reservado para compatibilidade com versões futuras, se houver. Não use esse membro.

Comentários

O cliente aloca espaço para a estrutura RPC_ASYNC_STATE e um identificador associado e chama RpcAsyncInitializeHandle para inicializar a estrutura. Depois que o ambiente de tempo de execução tiver inicializado com êxito a estrutura, o cliente inicializa o NotificationType e exatamente uma das seguintes estruturas na união RPC_ASYNC_NOTIFICATION_INFO : APC para uma chamada de procedimento assíncrono do Windows, COI para uma porta de conclusão de E/S, HWND para uma mensagem do sistema Windows ou hEvent para um evento do Windows. Se o método de notificação escolhido for RpcNotificationTypeNone, nenhum campo da união precisará ser inicializado. Opcionalmente, o cliente RPC também pode inicializar o campo UserInfo .

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows 2000 Professional [somente aplicativos da área de trabalho]
Servidor mínimo com suporte Windows 2000 Server [somente aplicativos da área de trabalho]
Cabeçalho rpcasync.h (inclua Rpc.h)

Confira também

RPC assíncrono

RpcAsyncAbortCall

RpcAsyncCancelCall

RpcAsyncCompleteCall

RpcAsyncGetCallHandle

RpcAsyncGetCallStatus

RpcAsyncInitializeHandle

RpcServerTestCancel