Поделиться через


Функция RpcServerUnregisterIf (rpcdce.h)

Функция RpcServerUnregisterIf удаляет интерфейс из реестра библиотек времени выполнения RPC.

Синтаксис

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

Параметры

IfSpec

Интерфейс для удаления из реестра.

Укажите значение NULL , чтобы удалить все интерфейсы, ранее зарегистрированные со значением типа UUID, указанным в параметре MgrTypeUuid .

MgrTypeUuid

Указатель на тип UUID вектора точки входа (EPV) диспетчера, удаляемого из реестра. Значение MgrTypeUuid должно совпадать с значением, указанным при вызове функции RpcServerRegisterIf , RpcServerRegisterIf2 или RpcServerRegisterIfEx .

Укажите значение NULL , чтобы удалить интерфейс, указанный в параметре IfSpec , для всех ранее зарегистрированных типов UUID из реестра.

Укажите UUID(nil) для удаления из реестра созданного по умолчанию диспетчера MIDL EPV. В этом случае все EPV диспетчера, зарегистрированные с типом UUID, не равного нулю, остаются зарегистрированными.

WaitForCallsToComplete

Флаг, указывающий, следует ли немедленно удалить интерфейс из реестра или дождаться завершения всех текущих вызовов.

Укажите нулевое значение, чтобы игнорировать вызовы и немедленно удалить интерфейс из реестра. Укажите любое ненулевое значение для ожидания завершения всех активных вызовов.

Возвращаемое значение

Значение Значение
RPC_S_OK
Вызов выполнен успешно.
RPC_S_UNKNOWN_MGR_TYPE
Тип диспетчера неизвестен.
RPC_S_UNKNOWN_IF
Интерфейс неизвестен.
 
Примечание Список допустимых кодов ошибок см. в разделе Возвращаемые значения RPC.
 

Комментарии

Сервер вызывает RpcServerUnregisterIf , чтобы удалить связь между интерфейсом и EPV-адресом диспетчера. Чтобы указать EPV диспетчера для удаления в параметре MgrTypeUuid , укажите значение типа UUID, указанное в вызове RpcServerRegisterIf. После удаления из реестра интерфейс больше недоступен для клиентских приложений.

При удалении интерфейса из реестра библиотека времени выполнения RPC перестает принимать новые вызовы для этого интерфейса. Вызовы, которые в настоящее время выполняются в интерфейсе, разрешены, включая обратные вызовы.

В следующей таблице описано поведение RpcServerUnregisterIf.

IfSpec MgrTypeUuid Поведение
Не равно NULL Не равно NULL Удаляет из реестра EPV диспетчера, связанный с указанными параметрами.
Не равно NULL NULL Удаляет все epv диспетчера, связанные с параметром IfSpec .
NULL Не равно NULL Удаляет все epv диспетчера, связанные с параметром MgrTypeUuid .
NULL NULL Удаляет все epv диспетчера. Этот вызов предотвращает получение сервером новых удаленных вызовов процедур, так как все EPV диспетчера для всех интерфейсов были отменены.
 
 
Примечание Если значение IfSpec равно NULL, эта функция оставляет интерфейсы автоматического прослушивания зарегистрированными. Интерфейсы автоматического прослушивания должны быть удалены из реестра по отдельности. Дополнительные сведения см. в разделе RpcServerRegisterIfEx .
 

Требования

Требование Значение
Минимальная версия клиента Windows 2000 Professional [только классические приложения]
Минимальная версия сервера Windows 2000 Server [только классические приложения]
Целевая платформа Windows
Header rpcdce.h (включая Rpc.h)
Библиотека Rpcrt4.lib
DLL Rpcrt4.dll

См. также раздел

RPC_MGR_EPV

Регистрация интерфейсов

RpcServerRegisterIf

RpcServerRegisterIf2

RpcServerRegisterIfEx

RpcServerUnregisterIfEx