Udostępnij za pośrednictwem


Metoda IVirtualProcessorRoot::Deactivate

Powoduje, że proxy wątku aktualnie wykonywanych na ten procesor wirtualny katalog główny zatrzymać wysyłka kontekst wykonywania.Serwer proxy wątek wznowi wykonywanie na wywołanie Activate metody.

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

Parametry

  • pContext
    Kontekst, w którym aktualnie jest wysyłane przez ten główny.

Wartość zwracana

Wartość logiczna.Wartość true wskazuje, że wątek serwera proxy zwrócił się z Deactivate metody w odpowiedzi na zaproszenie do Activate metody.Wartość false wskazuje, że wątek serwera proxy zwrócone z metody w odpowiedzi na zdarzenia powiadamiania w Menedżerze zasobów.W trybie użytkownika zaplanowany do wykonania (UMS) wątku harmonogram to wskazuje, że elementy pojawiały się na liście zakończenia harmonogramu i harmonogramu jest wymagane do ich obsługi.

Uwagi

Tej metody należy użyć, aby czasowo zatrzymać wykonywanie procesora wirtualnego katalogu głównego, możesz znaleźć wszystkie prace Twój harmonogram.Wywołanie Deactivate metody muszą pochodzić z poziomu Dispatch metodę kontekst wykonywania, która z ostatniego uaktywnienia procesora wirtualnego katalogu głównego.Innymi słowy, proxy wątek wywoływania Deactivate metoda musi być ten, który jest aktualnie wykonywanych na procesor wirtualny katalog główny.Wywołanie metody na procesora wirtualnego katalogu głównego, nie wykonywana na może doprowadzić do niezdefiniowanego zachowania.

Główny dezaktywowany procesora wirtualnego może gatewayem w wyniku wywołania Activate metody, z tym samym argument, że został przekazany do Deactivate metody.Harmonogram jest odpowiedzialne za zapewnienie, że wzywa do Activate i Deactivate metody są skojarzone, ale nie są wymagane do przyjęcia w określonej kolejności.Menedżer zasobów może obsłużyć odbieranie wywołania do Activate metoda zanim odbierze wywołanie Deactivate była przeznaczona dla metody.

Jeśli epizodu głównego wirtualnego procesora i wartość zwracana z Deactivate metoda jest wartość false, harmonogramu powinny zbadać listy zakończenie UMS za pośrednictwem IUMSCompletionList::GetUnblockNotifications metodę, działania te informacje i następnie wywoływać Deactivate metody ponownie.To należy powtarzać aż do chwili gdy Deactivate metoda zwraca wartość true.

invalid_argumentjest generowany, jeśli argument pContext ma wartość NULL.

invalid_operationjest generowany, jeśli nigdy nie została uaktywniona procesora wirtualnego katalogu głównego, albo w argumencie pContext nie reprezentuje kontekst wykonywania, który ostatnio został wysłany przez ten procesor wirtualny katalog główny.

Akt dezaktywowanie głównego wirtualnego procesora zmniejsza poziom subskrypcji podstawowej wątku sprzętu o jeden.Aby uzyskać więcej informacji na temat poziomów subskrypcji, zobacz IExecutionResource::CurrentSubscriptionLevel.

Wymagania

Nagłówek: concrtrm.h

Obszar nazw: współbieżności

Zobacz też

Informacje

Struktura IVirtualProcessorRoot

Metoda IVirtualProcessorRoot::Activate

Metoda IExecutionResource::CurrentSubscriptionLevel

Metoda IUMSCompletionList::GetUnblockNotifications