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 |
---|---|
|
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 |
---|---|
|
Nenhuma notificação é especificada; RPC_ASYNC_NOTIFICATION_INFO não é inicializado. |
|
O mecanismo de notificação é um evento do Windows. |
|
O mecanismo de notificação é uma chamada de procedimento assíncrono do Windows. |
|
O mecanismo de notificação é uma porta de conclusão de E/S. |
|
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. |
|
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.
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) |