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.

Nota Não há suporte para essa função 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 da 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 de serviço de nome. Um valor de parâmetro nulo indica não remover a exportação de identificadores de associação (somente UUIDs de objeto devem ser não suportados).

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 não exportar (somente identificadores de associação devem ser não suportados).

Valor retornado

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 do nome é inválida.
RPC_S_UNSUPPORTED_NAME_SYNTAX
Não há suporte para a sintaxe de nome.
RPC_S_INCOMPLETE_NAME
O nome está incompleto.
RPC_S_ENTRY_NOT_FOUND
A entrada name-service não foi encontrada.
RPC_S_NAME_SERVICE_UNAVAILABLE
O serviço de nome está indisponí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 suportados.
 
Nota Para obter uma lista de códigos de erro válidos, consulte RPC Return Values.
 

Comentários

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 cancelar a exportação da interface e dos objetos especificados em uma única chamada para RpcNsBindingUnexport ou pode desexportá-los separadamente. Somente os identificadores de associação que correspondem à interface UUID e aos números de versão da interface principal e secundária encontrados no parâmetro IfSpec não têm suporte. Use a função RpcNsMgmtBindingUnexport para remover várias versões de uma interface.

A partir do Windows 2000, o ambiente de tempo de execução RPC usa o Active Directory como seu banco de dados name-service. Isso significa que as entradas não relatadas autorizadas serão removidas do cache local e do Active Directory. Unexports não autorizados só serão removidos do cache local. Consulte Controle de Acesso na seção Segurança do SDK (Platform Software Development Kit) para obter mais informações sobre autorização e Controle de Acesso Listas.

Se RpcNsBindingUnexport não encontrar nenhum identificador de associação para a interface especificada, a função retornará um código de RPC_S_INTERFACE_NOT_FOUND status e não removerá a exportação dos UUIDs do objeto, se algum tiver sido especificado.

Se um ou mais identificadores de associação para a interface especificada forem encontrados e não forem exibidos sem erro, RpcNsBindingUnexport não exportará 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 RPC_S_NOT_ALL_OBJS_UNEXPORTED status.

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 com o 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, exportar apenas UUIDs para uma entrada inexistente não tem efeito e cancelar a exportaçã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 name-service 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 exportação de identificadores de associação, o Active Directory poderá se tornar tão grande que não poderá ser gerenciado.

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 período estendido, por exemplo, quando ele estiver sendo removido permanentemente do serviço.

Nota Os 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 name-service remova e substitua repetidamente a mesma entrada e possa causar problemas de desempenho.
 

Observação

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 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 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 rpcnsi.h (inclua Rpc.h)
Biblioteca Rpcns4.lib
DLL Rpcns4.dll

Confira também

RpcEpUnregister

RpcNsBindingExport