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


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

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

Синтаксис

RPC_STATUS RpcServerUnregisterIfEx(
  [in] RPC_IF_HANDLE IfSpec,
  [in] UUID          *MgrTypeUuid,
  [in] int           RundownContextHandles
);

Параметры

[in] IfSpec

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

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

[in] MgrTypeUuid

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

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

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

[in] RundownContextHandles

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

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

Возвращает состояние RPC. RpcServerUnregisterIfEx не завершается ошибкой, если не предоставлены недопустимые значения.

Примечание Список допустимых кодов ошибок см. в разделе Возвращаемые значения RPC.
 

Комментарии

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

Функция RpcServerUnregisterIfEx предоставляет все функции, предоставляемые функцией RpcServerUnregisterIf . Кроме того, функция RpcServerUnregisterIfEx отменяет регистрацию всех дескрипторов контекста, зарегистрированных заданным интерфейсом. Интерфейс должен использовать атрибут strict_context_handle , в противном случае результаты не определены.

RpcServerUnregisterIfEx — это единственная функция, которая обеспечивает безопасную выгрузку библиотеки DLL с активными дескрипторами контекста за пределами завершения процесса. Он доступен только в Windows XP и более поздних версиях Windows.

Требования

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

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

RPC_MGR_EPV

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

RpcServerRegisterIf

RpcServerRegisterIf2

RpcServerRegisterIfEx

RpcServerUnregisterIf

Использование дескрипторов контекста