EnterUmsSchedulingMode-Funktion (winbase.h)

Konvertiert den aufrufenden Thread in einen Planerthread (User Mode Scheduling, UMS).

Warnung

Ab Windows 11 wird die Planung im Benutzermodus nicht unterstützt. Alle Aufrufe schlagen mit dem Fehler ERROR_NOT_SUPPORTEDfehl.

Syntax

BOOL EnterUmsSchedulingMode(
  [in] PUMS_SCHEDULER_STARTUP_INFO SchedulerStartupInfo
);

Parameter

[in] SchedulerStartupInfo

Ein Zeiger auf eine UMS_SCHEDULER_STARTUP_INFO-Struktur , die UMS-Attribute für den Thread angibt, einschließlich einer Vervollständigungsliste und einer UmsSchedulerProc-Einstiegspunktfunktion .

Rückgabewert

Wenn die Funktion erfolgreich ist, gibt sie einen Wert ohne Zero zurück.

Wenn die Funktion fehlerhaft ist, ist der Rückgabewert null. Um erweiterte Fehlerinformationen zu erhalten, rufen Sie GetLastError auf.

Hinweise

Der UMS-Planer einer Anwendung erstellt einen UMS-Planerthread für jeden Prozessor, der zum Ausführen von UMS-Threads verwendet wird. Der Scheduler legt in der Regel die Affinität des Planerthreads für einen einzelnen Prozessor fest und reserviert den Prozessor effektiv für die Verwendung dieses Planerthreads. Weitere Informationen zur Threadaffinität finden Sie unter Mehrere Prozessoren.

Wenn ein UMS-Planerthread erstellt wird, ruft das System die UmsSchedulerProc-Einstiegspunktfunktion auf, die mit dem Funktionsaufruf EnterUmsSchedulingMode angegeben wurde. Der Planer der Anwendung ist für den Abschluss der anwendungsspezifischen Initialisierung des Planerthreads und die Auswahl eines auszuführenden UMS-Workerthreads verantwortlich.

Der Planer der Anwendung wählt einen auszuführenden UMS-Workerthread aus, indem ExecuteUmsThread mit dem UMS-Threadkontext des Workerthreads aufgerufen wird. Der Workerthread wird so lange ausgeführt, bis er die Steuerung durch Aufrufen von UmsThreadYield, Blöcken oder Beenden ergibt. Der Planerthread steht dann zum Ausführen eines anderen Workerthreads zur Verfügung.

Ein Planerthread sollte weiterhin ausgeführt werden, bis alle Workerthreads einen natürlichen Endpunkt erreichen: Das heißt, alle Workerthreads wurden zurückgegeben, blockiert oder beendet.

Anforderungen

   
Unterstützte Mindestversion (Client) Windows 7 (nur 64-Bit) [nur Desktop-Apps]
Unterstützte Mindestversion (Server) Windows Server 2008 R2 [nur Desktop-Apps]
Zielplattform Windows
Kopfzeile winbase.h (einschließlich Windows.h)
Bibliothek Kernel32.lib
DLL Kernel32.dll
APIs api-ms-win-core-ums-l1-1-0 (in Windows 7 eingeführt)

Weitere Informationen

ExecuteUmsThread

Mehrere Prozessoren

UMS_SCHEDULER_STARTUP_INFO

UmsSchedulerProc

Planung im Benutzermodus