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


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

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

Синтаксис

RPC_STATUS RpcServerInterfaceGroupDeactivate(
  [in] RPC_INTERFACE_GROUP IfGroup,
  [in] unsigned long       ForceDeactivation
);

Параметры

[in] IfGroup

RPC_INTERFACE_GROUP из RpcServerInterfaceGroupCreate, определяющий группу интерфейсов для деактивации.

[in] ForceDeactivation

Если значение РАВНО TRUE, среда выполнения RPC должна игнорировать действия клиента и безоговорочно деактивировать группу интерфейсов. Если значение РАВНО FALSE, операция должна быть прервана, если выполняется новое действие.

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

Значение Значение
RPC_S_OK
Вызов выполнен успешно.
RPC_S_SERVER_TOO_BUSY
ForceDeactivation имеет значение FALSE , а также имеется необработанные действия клиента.
 
Примечание Список допустимых кодов ошибок см. в разделе Возвращаемые значения RPC.
 

Комментарии

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

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

Если forceDeactivation имеет значение FALSE, RpcServerInterfaceGroupDeactivate деактивирует группу интерфейсов, только если нет незавершенных действий клиента. Если во время деактивации поступает новое действие, возвращается RPC_S_SERVER_TOO_BUSY . В этом случае выполняется откат операции, и группа интерфейсов продолжит принимать и отправлять вызовы.

Если forceDeactivation имеет значение TRUE, RpcServerInterfaceGroupDeactivate не завершается ошибкой.

Приложения-службы могут вызывать RpcServerInterfaceGroupDeactivate с параметром ForceDeactivation , равным FALSE , из функции обратного вызова RpcServerInterfaceGroupCreate. При использовании в сочетании с триггерами запуска службы RPC это позволяет им безопасно останавливаться в простое, не пропуская вызовы от потенциальных клиентов.

Требования

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

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

RpcServerInterfaceGroupActivate

RpcServerInterfaceGroupClose

RpcServerInterfaceGroupCreate

RpcServerInterfaceGroupInqBindings