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

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

Синтаксис

RPC_STATUS RpcCancelThread(
  void *Thread
);

Параметры

Thread

Дескриптор потока для отмены.

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

Значение Значение
RPC_S_OK
Вызов выполнен успешно.
RPC_S_ACCESS_DENIED
Дескриптор потока не имеет привилегий. Для правильного выполнения функции дескрипторы потоков должны правильно задать THREAD_SET_CONTEXT.
RPC_S_CANNOT_SUPPORT
Вызывается клиентом MS-DOS или Windows 3.x.
 
Примечание Список допустимых кодов ошибок см. в разделе Возвращаемые значения RPC.
 

Комментарии

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

Функцию RpcCancelThread нельзя использовать для отмены вызова, который выполнил статический обратный вызов. Не отменяйте удаленные вызовы процедур, которые могут вызывать функцию, объявленную с атрибутом [callback] в IDL-файле.

По умолчанию клиент навсегда ожидает возврата сервером управления после отмены. Чтобы сократить это время, вызовите RpcMgmtSetCancelTimeout, указав время ожидания ответа в секундах. Если сервер не возвращается в течение этого интервала, вызов завершается ошибкой на клиенте с RPC_S_CALL_FAILED исключением. Заглушка сервера продолжает работать.

Если вы используете протокол именованных каналов, ncacn_np, необходимо указать конечное время ожидания.

RpcCancelThread можно использовать с любым протоколом, ориентированным на подключение (ncacn_*), а также с любым протоколом datagram, кроме ncadg_mq и ncalrpc.

Примечание Windows XP/2000 Функция RpcCancelThread недоступна для ncacn_http. Функция RpcCancelThread поддерживает ncacn_http в операционных системах Windows Server 2003 или более поздней версии и Windows XP с пакетом обновления 1 (SP1) и более поздних версий.

Требования

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

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

RpcTestCancel

ncacn_http

ncadg_mq

ncalrpc