Compartilhar via


Função RpcEpRegister (rpcdce.h)

A função RpcEpRegister adiciona ou substitui informações de endereço do servidor no banco de dados de mapa de ponto de extremidade local.

Sintaxe

RPC_STATUS RpcEpRegister(
  RPC_IF_HANDLE      IfSpec,
  RPC_BINDING_VECTOR *BindingVector,
  UUID_VECTOR        *UuidVector,
  RPC_CSTR           Annotation
);

Parâmetros

IfSpec

Interface a ser registrada com o banco de dados de mapa de ponto de extremidade local.

BindingVector

Ponteiro para um vetor de identificadores de associação sobre os quais o servidor pode receber chamadas de procedimento remoto.

UuidVector

Ponteiro para um vetor de UUIDs de objeto oferecidos pelo servidor. O aplicativo de servidor constrói esse vetor. Um valor de argumento nulo indica que não há UUIDs de objeto para registrar.

Annotation

Ponteiro para o comentário de cadeia de caracteres aplicado a cada elemento de produto cruzado adicionado ao banco de dados de mapa de ponto de extremidade local. A cadeia de caracteres pode ter até 64 caracteres, incluindo o caractere de terminação nula. Especifique um valor nulo ou uma cadeia de caracteres terminada em nulo ("\0") se não houver nenhuma cadeia de caracteres de anotação.

A cadeia de caracteres de anotação é usada por aplicativos somente para informações. O RPC não usa essa cadeia de caracteres para determinar com qual instância de servidor um cliente se comunica ou para enumerar elementos no banco de dados de mapa de ponto de extremidade.

Valor retornado

Valor Significado
RPC_S_OK
A chamada foi bem-sucedida.
RPC_S_NO_BINDINGS
Sem associações.
RPC_S_INVALID_BINDING
O identificador de associação era inválido.
RPC_S_WRONG_KIND_OF_BINDING
Esse era o tipo errado de associação para a operação.
 
Nota Para obter uma lista de códigos de erro válidos, consulte RPC Return Values.
 

Comentários

A função RpcEpRegister adiciona ou substitui entradas no banco de dados de mapa de ponto de extremidade do host local. Para uma entrada de banco de dados existente que corresponde à especificação de interface fornecida, ao identificador de associação e ao UUID do objeto, essa função substitui o ponto de extremidade da entrada pelo ponto de extremidade no identificador de associação fornecido.

Um servidor pode usar RpcEpRegister e RpcEpRegisterNoReplace para registrar entradas no banco de dados mapeador do ponto de extremidade. Anteriormente ao Windows 2000, duas funções estavam disponíveis para permitir que um servidor substituísse entradas obsoletas no banco de dados mapeador de ponto de extremidade deixado de instâncias de servidor anteriores que não estão mais em execução. O banco de dados mapeador de ponto de extremidade remove automaticamente as entradas registradas por uma instância de servidor assim que o servidor para de funcionar. No entanto, os servidores não têm permissão para substituir as entradas do mapeador de ponto de extremidade de outro servidor para fins de segurança. Portanto, RpcEpRegister e RpcEpRegisterNoReplace executam em grande parte a mesma funcionalidade.

Um aplicativo de servidor chama RpcEpRegister para registrar pontos de extremidade especificados chamando qualquer uma das seguintes funções:

Se o servidor também exportar para o banco de dados name-service, o servidor chamará RpcEpRegister com os mesmos valores IfSpec, BindingVector e UuidVector usados ao chamar a função RpcNsBindingExport .

Se uma sequência de protocolo for usada sem especificar um ponto de extremidade, a biblioteca de tempo de execução RPC gerará automaticamente um ponto de extremidade dinâmico. Nesse caso, o servidor pode chamar RpcServerInqBindings seguido por RpcEpRegister para se disponibilizar para vários clientes. Caso contrário, o servidor iniciado automaticamente é conhecido apenas pelo cliente para o qual o servidor foi iniciado. Cada elemento adicionado ao banco de dados de mapa de ponto de extremidade contém logicamente o seguinte:

  • UUID da interface
  • Versão da interface (principal e secundária)
  • Identificador de associação
  • UUID do objeto (opcional)
  • Anotação (opcional)
RpcEpRegister cria um produto cruzado dos parâmetros IfSpec, BindingVector e UuidVector e adiciona cada elemento no produto cruzado como um registro separado no banco de dados de mapa de ponto de extremidade.

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]
Plataforma de Destino Windows
Cabeçalho rpcdce.h (inclua Rpc.h)
Biblioteca Rpcrt4.lib
DLL Rpcrt4.dll

Confira também

RpcBindingFromStringBinding

RpcEpRegisterNoReplace

RpcEpUnregister

RpcNsBindingExport

RpcServerInqBindings

RpcServerUseAllProtseqs

RpcServerUseAllProtseqsIf

RpcServerUseProtseq

RpcServerUseProtseqEp

RpcServerUseProtseqIf