Função RpcServerUnregisterIf (rpcdce.h)

A função RpcServerUnregisterIf remove uma interface do registro de biblioteca em tempo de execução RPC.

Sintaxe

RPC_STATUS RpcServerUnregisterIf(
  RPC_IF_HANDLE IfSpec,
  UUID          *MgrTypeUuid,
  unsigned int  WaitForCallsToComplete
);

Parâmetros

IfSpec

Interface a ser removida do registro.

Especifique um valor nulo para remover todas as interfaces registradas anteriormente com o valor UUID do tipo especificado no parâmetro MgrTypeUuid .

MgrTypeUuid

Ponteiro para o tipo UUID do EPV (vetor de ponto de entrada) do gerenciador a ser removido do registro. O valor de MgrTypeUuid deve ser o mesmo valor fornecido em uma chamada para a função RpcServerRegisterIf , a função RpcServerRegisterIf2 ou a função RpcServerRegisterIfEx .

Especifique um valor nulo para remover a interface especificada no parâmetro IfSpec para todos os UUIDs de tipo registrados anteriormente do registro.

Especifique um UUID nulo para remover o EPV do gerenciador padrão gerado por MIDL do registro. Nesse caso, todos os EPVs de gerente registrados com um UUID de tipo não nulo permanecem registrados.

WaitForCallsToComplete

Sinalizador que indica se é necessário remover a interface do registro imediatamente ou aguardar até que todas as chamadas atuais sejam concluídas.

Especifique um valor zero para desconsiderar chamadas em andamento e remover a interface do registro imediatamente. Especifique qualquer valor diferente de zero para aguardar até que todas as chamadas ativas sejam concluídas.

Valor retornado

Valor Significado
RPC_S_OK
A chamada foi bem-sucedida.
RPC_S_UNKNOWN_MGR_TYPE
O tipo de gerenciador é desconhecido.
RPC_S_UNKNOWN_IF
A interface é desconhecida.
 
Nota Para obter uma lista de códigos de erro válidos, consulte RPC Return Values.
 

Comentários

Um servidor chama RpcServerUnregisterIf para remover a associação entre uma interface e um EPV de gerenciador. Para especificar o EPV do gerenciador a ser removido no parâmetro MgrTypeUuid , forneça o valor UUID do tipo especificado em uma chamada para RpcServerRegisterIf. Depois que ele é removido do registro, uma interface não está mais disponível para aplicativos cliente.

Quando uma interface é removida do registro, a biblioteca de tempo de execução RPC para de aceitar novas chamadas para essa interface. As chamadas que estão sendo executadas atualmente na interface têm permissão para serem concluídas, incluindo retornos de chamada.

A tabela a seguir resume o comportamento de RpcServerUnregisterIf.

IfSpec MgrTypeUuid Comportamento
Não nulo Não nulo Remove do registro o EPV do gerenciador associado aos parâmetros especificados.
Não nulo NULL Remove todos os EPVs de gerente associados ao parâmetro IfSpec .
NULL Não nulo Remove todos os EPVs de gerente associados ao parâmetro MgrTypeUuid .
NULL NULL Remove todos os EPVs de gerente. Essa chamada tem o efeito de impedir que o servidor receba novas chamadas de procedimento remoto porque todos os EPVs do gerenciador para todas as interfaces não foram registrados.
 
 
Nota Se o valor de IfSpec for NULL, essa função deixará as interfaces de escuta automática registradas. As interfaces de escuta automática devem ser removidas do registro individualmente. Consulte RpcServerRegisterIfEx para obter mais detalhes.
 

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

RPC_MGR_EPV

Registrando interfaces

RpcServerRegisterIf

RpcServerRegisterIf2

RpcServerRegisterIfEx

RpcServerUnregisterIfEx