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


Метод IVirtualProcessorRoot::Deactivate

Вызывает прокси-сервер потока в данный момент для этого виртуального корня процессора для остановки проверить контекст выполнения.Прокси-сервер возобновляет выполнение потока во время вызова метода Activate.

virtual bool Deactivate(
   _Inout_ IExecutionContext * pContext
) =0;

Параметры

  • pContext
    Контекст, который в данный момент посылается этим корнем.

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

Логическое значение.Значение true показывает, что учетная запись-посредник потока, возвращаемого из метода Deactivate в ответ на вызов метода Activate.Значение false показывает, что учетная запись-посредник потока, возвращаемого из метода в ответ на событие уведомления в диспетчере ресурсов.В планировщике потока в режиме пользователя schedulable (UMS), это указывает на то, что элементы появлялись в списке завершения планировщика и требуется обрабатывает планировщик их.

Заметки

Используйте этот метод, чтобы временно остановить выполнение виртуального корня процессора, если невозможно найти любые в планировщике.Вызов метода Deactivate должен происходить из метода Dispatch контекста выполнения, что виртуальный корень процессора последним был активирован.Иначе говоря, прокси-сервер при вызове метода Deactivate потока должен быть одним, которое выполняется в настоящий момент в корневом каталоге виртуального процессора.Вызвать метод на корневом каталоге виртуального процессора не выполнять on может привести к неназначенной расширения функциональности.

Выключенный виртуального корня процессора может быть просыпан вверх с вызовом метода Activate с одним и тем же аргументом, который был передан в метод Deactivate.Планировщик отвечает за обеспечение такой вызовы Activate и методы Deactivate связыванны, но они не требуются, что получены в определенном порядке.Диспетчер ресурсов может обрабатывать получение вызов метода Activate до того, как он получит вызов метода Deactivate было значено.

Если виртуальный корень процессора будит и возвращаемое значение метода Deactivate значение false, планировщик должен запросить список завершения UMS с помощью метода IUMSCompletionList::GetUnblockNotifications, применяемый к этому сведения, затем нажмите далее еще раз вызывает метод Deactivate.Это не должно быть повторенно до того времени, что и метод Deactivate возвращает значение true.

invalid_argument создается, если аргумент pContext имеет значение NULL.

invalid_operation возникает, если виртуальный корень процессора никогда не активирован, либо аргумент pContext не представляет контекст, выполнения, который последним был послан этим корнем виртуального процессора.

Act деактивация виртуального корня процессора уменьшает уровень базового аппаратного потока подписки на единицу.Дополнительные сведения об уровнях подписок см. в разделе IExecutionResource::CurrentSubscriptionLevel.

Требования

заголовок: concrtrm.h

Параллелизм пространство имен:

См. также

Ссылки

Структура IVirtualProcessorRoot

Метод IVirtualProcessorRoot::Activate

Метод IExecutionResource::CurrentSubscriptionLevel

Метод IUMSCompletionList::GetUnblockNotifications