Função RpcNsBindingExportA (rpcnsi.h)
A função RpcNsBindingExport
Sintaxe
RPC_STATUS RpcNsBindingExportA(
unsigned long EntryNameSyntax,
RPC_CSTR EntryName,
RPC_IF_HANDLE IfSpec,
RPC_BINDING_VECTOR *BindingVec,
UUID_VECTOR *ObjectUuidVec
);
Parâmetros
EntryNameSyntax
Sintaxe de EntryName.
Para usar a sintaxe especificada na entrada de valor do Registro HKEY_LOCAL_MACHINE\Software\Microsoft\Rpc\NameService\DefaultSyntax, forneça um valor de RPC_C_NS_SYNTAX_DEFAULT.
EntryName
Ponteiro para o nome de entrada para o qual os identificadores de associação e UUIDs de objeto são exportados. Você não pode fornecer uma cadeia de caracteres nula ou vazia. O cliente e o servidor devem usar o mesmo nome de entrada.
IfSpec
Estrutura de dados gerada por stub especificando a interface a ser exportada. Um valor nulo indica que não há identificadores de associação para exportar (somente UUIDs de objeto devem ser exportados) e BindingVec é ignorado.
BindingVec
Ponteiro para associações de servidor a serem exportados. Um valor nulo indica que não há identificadores de associação para exportar (somente UUIDs de objeto devem ser exportadas).
ObjectUuidVec
Ponteiro para um vetor de UUIDs de objeto oferecidos pelo servidor. O aplicativo de servidor constrói esse vetor. Um valor nulo indica que não há UUIDs de objeto para exportar (somente identificadores de associação devem ser exportados).
Valor de retorno
Valor | Significado |
---|---|
|
A chamada foi bem-sucedida. |
|
Não havia nada para exportar. |
|
O identificador de associação era inválido. |
|
Este foi o tipo errado de associação para a operação. |
|
A sintaxe de nome é inválida. |
|
A sintaxe de nome não tem suporte. |
|
O nome está incompleto. |
|
Nenhum privilégio para a operação de name-service. |
|
O serviço de nome não está disponível. |
Observações
A função RpcNsBindingExport
Em vigor com o Windows 2000, o ambiente de tempo de execução do RPC usa o Active Directory como seu banco de dados de serviço de nome. Isso significa que as entradas exportadas autorizadas persistem no serviço de nome e ficam visíveis mesmo após a reinicialização. As exportações não autorizadas não persistem. Consulte controle de acesso na seção Segurança do SDK (Platform Software Development Kit) para obter mais informações sobre listas de autorização e controle de acesso.
Para exportar uma interface, o aplicativo de servidor chama a rotina RpcNsBindingExport com uma interface e os identificadores de associação de servidor que um cliente pode usar para acessar o servidor. Um aplicativo de servidor também chama a função RpcNsBindingExport para oferecer publicamente o objeto UUID(s) de recursos que ele oferece, se houver, no banco de dados name-service.
Um servidor pode exportar interfaces e objetos em uma única chamada para RpcNsBindingExport ou exportá-los separadamente. Se a entrada de banco de dados de serviço de nome especificada por EntryName não existir, RpcNsBindingExport tentar criá-la. Nesse caso, o aplicativo de servidor deve ter o privilégio de criar a entrada. Além de chamar
Um servidor não é necessário para exportar nenhuma de suas interfaces para o banco de dados de serviço de nome. Quando um servidor não exporta, somente os clientes que sabem de forma privada as informações de associação do servidor podem acessar suas interfaces. Por exemplo, um cliente que tem as informações necessárias para construir uma associação de cadeia de caracteres pode chamar o RpcBindingFromStringBinding para criar um identificador de associação para fazer chamadas de procedimento remoto para um servidor.
Antes de chamar RpcNsBindingExport, um servidor deve fazer o seguinte:
- Registre uma ou mais sequências de protocolo com a biblioteca de tempo de execução do RPC local chamando uma das seguintes funções:
- RpcServerUseAllProtseqs, RpcServerUseAllProtseqsEx
- RpcServerUseProtseq, RpcServerUseProtseqEx
- RpcServerUseAllProtseqsIf, RpcServerUseAllProtseqsIfEx
- RpcServerUseProtseqIf, RpcServerUseProtseqIf
- RpcServerUseProtseqEp, RpcServerUseProtseqEp
- Obtenha uma lista de associações de servidor chamando a função RpcServerInqBindings.
Se um servidor exportar para a mesma entrada de banco de dados de serviço de nome várias vezes, a segunda e as chamadas subsequentes para RpcNsBindingExport adicionar as informações de associação e UUIDs de objeto quando esses dados forem diferentes das informações de associação já na entrada do servidor. Os dados existentes não são removidos da entrada.
Para remover identificadores de associação e UUIDs de objeto do banco de dados name-service, um aplicativo de servidor chama a função RpcNsBindingUnexport.
Uma entrada de servidor deve ter pelo menos um identificador de associação para existir. Como resultado, a exportação apenas de UUIDs para uma entrada não existente não tem efeito e a não comunicação de todos os identificadores de associação exclui a entrada.
Nota
O cabeçalho rpcnsi.h define RpcNsBindingExport como um alias que seleciona automaticamente a versão ANSI ou Unicode dessa função com base na definição da constante do pré-processador UNICODE. A combinação do uso do alias neutro de codificação com código que não é neutro em codificação pode levar a incompatibilidades que resultam em erros de compilação ou de runtime. Para obter mais informações, consulte Conventions for Function Prototypes.
Requisitos
Requisito | Valor |
---|---|
de cliente com suporte mínimo | Windows 2000 Professional [somente aplicativos da área de trabalho] |
servidor com suporte mínimo | Windows 2000 Server [somente aplicativos da área de trabalho] |
da Plataforma de Destino |
Windows |
cabeçalho | rpcnsi.h (inclua Rpc.h) |
biblioteca | Rpcns4.lib |
de DLL |
Rpcns4.dll |