ExecuteUmsThread-Funktion (winbase.h)
Führt den angegebenen UMS-Workerthread aus.
Warnung
Ab Windows 11 wird die Planung im Benutzermodus nicht unterstützt. Alle Aufrufe schlagen mit dem Fehler ERROR_NOT_SUPPORTED
fehl.
Syntax
BOOL ExecuteUmsThread(
[in, out] PUMS_CONTEXT UmsThread
);
Parameter
[in, out] UmsThread
Ein Zeiger auf den UMS-Threadkontext des auszuführenden Workerthreads.
Rückgabewert
Wenn die Funktion erfolgreich ist, gibt sie keinen Wert zurück.
Wenn die Funktion fehlerhaft ist, ist der Rückgabewert null. Um erweiterte Fehlerinformationen zu erhalten, rufen Sie GetLastError auf. Mögliche Fehlercodes sind:
Rückgabecode | Beschreibung |
---|---|
|
Der angegebene UMS-Workerthread wird vom System vorübergehend gesperrt. Der Aufrufer kann den Vorgang wiederholen. |
|
UMS wird nicht unterstützt. |
Hinweise
Die ExecuteUmsThread-Funktion lädt den Zustand des angegebenen UMS-Workerthreads über den Zustand des aufrufenden UMS-Planerthreads, sodass der Workerthread ausgeführt werden kann. Der Workerthread wird so lange ausgeführt, bis er durch Aufrufen der UmsThreadYield-Funktion , Blöcke oder Beendigungen ergibt.
Wenn ein Workerthread ergibt oder blockiert, ruft das System die UmsSchedulerProc-Einstiegspunktfunktion des Planerthreads auf. Wenn ein zuvor blockierter Workerthread aufgehoben wird, stellt das System den Workerthread in die Vervollständigungsliste ein, die mit der Funktion UpdateProcThreadAttribute angegeben wurde, als der Workerthread erstellt wurde.
Die ExecuteUmsThread-Funktion wird nur zurückgegeben, wenn ein Fehler auftritt. Wenn die Funktion ERROR_RETRY zurückgibt, ist der Fehler transitorisch, und der Vorgang kann wiederholt werden.
Wenn die Funktion einen anderen Fehler als ERROR_RETRY zurückgibt, sollte der Planer der Anwendung überprüfen, ob der Thread angehalten oder beendet wird, indem QueryUmsThreadInformation mit UmsThreadIsSuspended bzw . UmsThreadIsTerminated aufgerufen wird. Weitere mögliche Fehler sind das Aufrufen der Funktion für einen Thread, der kein UMS-Planerthread ist, das Übergeben eines ungültigen UMS-Workerthreadkontexts oder das Angeben eines Workerthreads, der bereits in einem anderen Planerthread ausgeführt wird.
Anforderungen
Anforderung | Wert |
---|---|
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) |