Função RpcServerInqCallAttributesA (rpcasync.h)
A função RpcServerInqCallAttributes é uma chamada de servidor RPC que obtém atributos de contexto de segurança do cliente.
Sintaxe
RPC_STATUS RpcServerInqCallAttributesA(
[in] RPC_BINDING_HANDLE ClientBinding,
[in, out] void *RpcCallAttributes
);
Parâmetros
[in] ClientBinding
Opcional. Para associação explícita dentro de uma rotina de servidor, ClientBinding é o identificador de associação com o qual a rotina do gerente foi chamada. Consulte Observações.
[in, out] RpcCallAttributes
RPC_CALL_ATTRIBUTES_V2 estrutura que recebe atributos de chamada.
Retornar valor
Retorna RPC_S_OK após o sucesso e RpcCallAttributes é preenchido. Se ERROR_MORE_DATA for retornado, um ou mais campos em RpcCallAttributes não foram suficientes e não puderam ser preenchidos. Consulte Comentários em RPC_CALL_ATTRIBUTES_V2 para obter detalhes sobre como lidar com ERROR_MORE_DATA.
Após a falha, o conteúdo de RpcCallAttributes é indefinido e pode ser parcialmente modificado pelo RPC.
Comentários
A função RpcServerInqCallAttributes usa um esquema de controle de versão para incorporar novos recursos sem precisar introduzir novas funções com identificadores de sufixo. Por exemplo, uma segunda versão do RPC_CALL_ATTRIBUTES_V2, identificada com uma #define simples no cabeçalho, pode adicionar novos membros para facilitar a nova funcionalidade incorporada a versões futuras da função RpcServerInqCallAttributes , sem precisar liberar uma função chamada RpcServerInqCallAttributesEx.
Se a função RpcServerInqCallAttributes for chamada fora de uma rotina de servidor e se a chamada de função consultar os atributos de contexto de segurança para uma chamada RPC assíncrona, ClientBinding poderá ser recuperado chamando a função RpcAsyncGetCallHandle do identificador assíncrono.
A função RpcServerInqCallAttributes não tem suporte para sequências de protocolo de datagrama, como ncadg_*. Se invocado em uma chamada que é executada em uma sequência de protocolo de datagram, RPC_S_CANNOT_SUPPORT é retornado.
A função RpcServerInqCallAttributes é thread-safe.
Exemplos
RPC_CALL_ATTRIBUTES CallAttributes; // this maps to RPC_CALL_ATTRIBUTES_V1
memset(&CallAttributes, 0, sizeof(CallAttributes));
CallAttributes.Version = RPC_CALL_ATTRIBUTES_VERSION; // maps to 1
CallAttributes.Flags = ;//....
Status = RpcServerInqCallAttributes(0, &ClientContextAttributes);
Observação
O cabeçalho rpcasync.h define RpcServerInqCallAttributes como um alias que seleciona automaticamente a versão ANSI ou Unicode dessa função com base na definição da constante de pré-processador UNICODE. Misturar o uso do alias neutro de codificação com código que não seja neutro em codificação pode levar a incompatibilidades que resultam em erros de compilação ou de runtime. Para obter mais informações, consulte Convenções para protótipos de função.
Requisitos
Requisito | Valor |
---|---|
Cliente mínimo com suporte | Windows XP [somente aplicativos da área de trabalho] |
Servidor mínimo com suporte | Windows Server 2003 [somente aplicativos da área de trabalho] |
Plataforma de Destino | Windows |
Cabeçalho | rpcasync.h (inclua Rpc.h) |
Biblioteca | Rpcrt4.lib |
DLL | Rpcrt4.dll |