EnterUmsSchedulingMode, fonction (winbase.h)

Convertit le thread appelant en thread de planification en mode utilisateur (UMS).

Avertissement

Depuis Windows 11, la planification en mode utilisateur n’est pas prise en charge. Tous les appels échouent avec l’erreur ERROR_NOT_SUPPORTED.

Syntaxe

BOOL EnterUmsSchedulingMode(
  [in] PUMS_SCHEDULER_STARTUP_INFO SchedulerStartupInfo
);

Paramètres

[in] SchedulerStartupInfo

Pointeur vers une structure UMS_SCHEDULER_STARTUP_INFO qui spécifie des attributs UMS pour le thread, y compris une liste d’achèvement et une fonction de point d’entrée UmsSchedulerProc .

Valeur retournée

Si la fonction réussit, elle retourne une valeur différente de zéro.

Si la fonction échoue, la valeur de retour est égale à zéro. Pour obtenir des informations détaillées sur l’erreur, appelez GetLastError.

Remarques

Le planificateur UMS d’une application crée un thread de planificateur UMS pour chaque processeur qui sera utilisé pour exécuter des threads UMS. Le planificateur définit généralement l’affinité du thread du planificateur pour un seul processeur, en réservant efficacement le processeur pour l’utilisation de ce thread de planificateur. Pour plus d’informations sur l’affinité de thread, consultez Plusieurs processeurs.

Lorsqu’un thread de planificateur UMS est créé, le système appelle la fonction de point d’entrée UmsSchedulerProc spécifiée avec l’appel de fonction EnterUmsSchedulingMode . Le planificateur de l’application est chargé de terminer toute initialisation spécifique à l’application du thread du planificateur et de sélectionner un thread de travail UMS à exécuter.

Le planificateur de l’application sélectionne un thread de travail UMS à exécuter en appelant ExecuteUmsThread avec le contexte de thread UMS du thread de travail. Le thread de travail s’exécute jusqu’à ce qu’il génère le contrôle en appelant UmsThreadYield, bloque ou se termine. Le thread du planificateur est ensuite disponible pour exécuter un autre thread de travail.

Un thread de planificateur doit continuer à s’exécuter jusqu’à ce que tous ses threads de travail atteignent un point d’arrêt naturel : c’est-à-dire que tous les threads de travail ont été générés, bloqués ou arrêtés.

Configuration requise

   
Client minimal pris en charge Windows 7 (64 bits uniquement) [applications de bureau uniquement]
Serveur minimal pris en charge Windows Server 2008 R2 [applications de bureau uniquement]
Plateforme cible Windows
En-tête winbase.h (inclure Windows.h)
Bibliothèque Kernel32.lib
DLL Kernel32.dll
Ensemble d’API api-ms-win-core-ums-l1-1-0 (introduit dans Windows 7)

Voir aussi

ExecuteUmsThread

Plusieurs processeurs

UMS_SCHEDULER_STARTUP_INFO

UmsSchedulerProc

Planification en mode utilisateur