Compartilhar via


Função RpcNsBindingUnexportA (rpcnsi.h)

A função RpcNsBindingUnexport remove os identificadores de associação de uma interface e objetos de uma entrada no banco de dados name-service.

Observação Essa função não tem suporte no Windows Vista e em sistemas operacionais posteriores.
 

Sintaxe

RPC_STATUS RpcNsBindingUnexportA(
  unsigned long EntryNameSyntax,
  RPC_CSTR      EntryName,
  RPC_IF_HANDLE IfSpec,
  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 do qual remover identificadores de associação e UUIDs de objeto.

IfSpec

Especificação de interface para os identificadores de associação a serem removidos do banco de dados do serviço de nome. Um valor de parâmetro nulo indica que não é necessário cancelar a exibição de identificadores de associação (somente UUIDs de objeto devem ser não relatadas).

ObjectUuidVec

Ponteiro para um vetor de UUIDs de objeto que o servidor não deseja mais oferecer. O aplicativo constrói esse vetor. Um valor nulo indica que não há UUIDs de objeto para desexportar (somente identificadores de associação devem ser não relatados).

Valor de retorno

Valor Significado
RPC_S_OK
A chamada foi bem-sucedida.
RPC_S_INVALID_VERS_OPTION
A opção de versão é inválida.
RPC_S_INVALID_NAME_SYNTAX
A sintaxe de nome é inválida.
RPC_S_UNSUPPORTED_NAME_SYNTAX
A sintaxe de nome não tem suporte.
RPC_S_INCOMPLETE_NAME
O nome está incompleto.
RPC_S_ENTRY_NOT_FOUND
A entrada nome-serviço não foi encontrada.
RPC_S_NAME_SERVICE_UNAVAILABLE
O serviço de nome não está disponível.
RPC_S_INTERFACE_NOT_FOUND
A interface não foi encontrada.
RPC_S_NOT_ALL_OBJS_UNEXPORTED
Nem todos os objetos não são relatados.
 
Observação Para obter uma lista de códigos de erro válidos, consulte RPC Return Values.
 

Observações

A função RpcNsBindingUnexport permite que um aplicativo de servidor remova os identificadores de associação e UUIDs de objeto de recursos de uma entrada de banco de dados de serviço de nome. Um aplicativo de servidor pode desexportar a interface e os objetos especificados em uma única chamada para RpcNsBindingUnexportou pode desexportá-los separadamente. Somente os identificadores de associação que correspondem à UUID da interface e aos números de versão da interface principal e secundária encontrados no parâmetro IfSpec não são relatados. Use a função RpcNsMgmtBindingUnexport para remover várias versões de uma interface.

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 não relatadas autorizadas serão removidas do cache local e do Active Directory. Unexports não autorizados serão removidos apenas do cache local. 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.

Se RpcNsBindingUnexport não encontrar identificadores de associação para a interface especificada, a função retornará um código de status RPC_S_INTERFACE_NOT_FOUND e não exibirá as UUIDs do objeto, se alguma tiver sido especificada.

Se um ou mais identificadores de associação para a interface especificada forem encontrados e não forem acessados sem erros, RpcNsBindingUnexport desexporta os UUIDs do objeto especificado, se houver.

Se qualquer um dos UUIDs de objeto especificado não tiver sido encontrado, RpcNsBindingUnexport retornará o código de status RPC_S_NOT_ALL_OBJS_UNEXPORTED.

Além de chamar RpcNsBindingUnexport, um servidor também deve chamar a função RpcEpUnregister para cancelar o registro dos pontos de extremidade que o servidor registrou anteriormente no banco de dados de mapa de ponto de extremidade local.

Depois de criada, uma entrada de servidor persiste, mesmo quando todos os identificadores de associação e UUIDs são removidos. 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 inexistente não tem efeito e a não comunicação de todos os identificadores de associação exclui a entrada.

Use RpcNsBindingUnexport criteriosamente. Para manter um servidor ativado automaticamente disponível, você deve deixar seus identificadores de associação no banco de dados de serviço de nome entre os horários em que os processos do servidor são ativados. No entanto, com associações dinâmicas, se você não cancelar a exibição de identificadores de associação, o Active Directory poderá se tornar tão grande quanto incontrolável.

Portanto, antes de chamar essa função, tenha em mente quanto tempo espera que o servidor fique indisponível e o tipo de associação em uso. Se você estiver usando associações estáticas, reserve essa função para quando esperar que um servidor fique indisponível por um tempo estendido, por exemplo, quando ele estiver sendo permanentemente removido do serviço.

Observação bancos de dados de serviço de nome foram projetados para serem relativamente estáveis. Em bancos de dados de serviço de nome replicados, o uso frequente das funções RpcNsBindingExport e RpcNsBindingUnexport faz com que o banco de dados de serviço de nome remova e substitua repetidamente a mesma entrada e possa causar problemas de desempenho.
 

Nota

O cabeçalho rpcnsi.h define RpcNsBindingUnexport 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

Consulte também

RpcEpUnregister

RpcNsBindingExport