Nouveautés des processus et des threads
Windows 7 et Windows Server 2008 R2 incluent les nouveaux éléments de programmation suivants pour les processus et les threads.
Nouvelles fonctionnalités
Les versions 64 bits de Windows 7 et Windows Server 2008 R2 prennent en charge plus de 64 processeurs logiques sur un seul ordinateur. Pour plus d’informations, consultez Groupes de processeurs.
La planification en mode utilisateur (UMS) est un mécanisme léger que les applications peuvent utiliser pour planifier leurs propres threads. Pour plus d’informations, consultez Planification en mode utilisateur.
Nouvelles fonctions
Les nouvelles fonctions suivantes sont utilisées avec les processeurs et les groupes de processeurs.
Fonction | Description |
---|---|
CreateRemoteThreadEx |
Crée un thread qui s’exécute dans l’espace d’adressage virtuel d’un autre processus et spécifie éventuellement des attributs étendus tels que l’affinité de groupe de processeur. |
GetActiveProcessorCount |
Retourne le nombre de processeurs actifs dans un groupe de processeurs ou dans le système. |
GetActiveProcessorGroupCount |
Retourne le nombre de groupes de processeurs actifs dans le système. |
GetCurrentProcessorNumberEx |
Récupère le groupe de processeurs et le numéro du processeur logique dans lequel le thread appelant est en cours d’exécution. |
GetLogicalProcessorInformationEx |
Récupère des informations sur les relations entre les processeurs logiques et le matériel associé. |
GetMaximumProcessorCount |
Retourne le nombre maximal de processeurs logiques qu’un groupe de processeurs ou le système peut avoir. |
GetMaximumProcessorGroupCount |
Retourne le nombre maximal de groupes de processeurs que le système peut avoir. |
GetNumaAvailableMemoryNodeEx |
Récupère la quantité de mémoire disponible dans le nœud spécifié sous la forme d’une valeur USHORT. |
GetNumaNodeNumberFromHandle |
Récupère le nœud NUMA associé à l’appareil sous-jacent pour un handle de fichier. |
GetNumaNodeProcessorMaskEx |
Récupère le masque de processeur pour le nœud NUMA spécifié en tant que valeur USHORT. |
GetNumaProcessorNodeEx |
Récupère le numéro de nœud du processeur logique spécifié sous la forme d’une valeur USHORT. |
GetNumaProximityNodeEx |
Récupère le numéro de nœud sous forme de valeur USHORT pour l’identificateur de proximité spécifié. |
GetProcessGroupAffinity |
Récupère l’affinité de groupe de processeur du processus spécifié. |
GetProcessorSystemCycleTime |
Récupère le temps de cycle de chaque processeur du groupe spécifié passé à exécuter des appels de procédure différée (DPC) et des routines de service d’interruption (ISR). |
GetThreadGroupAffinity |
Récupère l’affinité de groupe de processeur du thread spécifié. |
GetThreadIdealProcessorEx |
Récupère le numéro de processeur du processeur idéal pour le thread spécifié. |
QueryIdleProcessorCycleTimeEx |
Récupère le temps de cycle cumulé pour le thread inactif sur chaque processeur logique du groupe de processeurs spécifié. |
SetThreadGroupAffinity |
Définit l’affinité du groupe de processeurs pour le thread spécifié. |
SetThreadIdealProcessorEx |
Définit le processeur idéal pour le thread spécifié et récupère éventuellement le processeur idéal précédent. |
Les nouvelles fonctions suivantes sont utilisées avec des pools de threads.
Fonction | Description |
---|---|
QueryThreadpoolStackInformation |
Récupère les tailles de réserve et de validation de la pile pour les threads dans le pool de threads spécifié. |
SetThreadpoolCallbackPersistent |
Spécifie que le rappel doit s’exécuter sur un thread persistant. |
SetThreadpoolCallbackPriority |
Spécifie la priorité d’une fonction de rappel par rapport à d’autres éléments de travail dans le même pool de threads. |
SetThreadpoolStackInformation |
Définit les tailles de réserve et de validation de la pile pour les nouveaux threads dans le pool de threads spécifié. |
Les nouvelles fonctions suivantes sont utilisées avec UMS.
Fonction | Description |
---|---|
CreateUmsCompletionList |
Crée une liste de saisie semi-automatique UMS. |
CreateUmsThreadContext |
Crée un contexte de thread UMS pour représenter un thread worker UMS. |
DeleteUmsCompletionList |
Supprime la liste de saisie semi-automatique UMS spécifiée. La liste doit être vide. |
DeleteUmsThreadContext |
Supprime le contexte de thread UMS spécifié. Le thread doit être arrêté. |
DequeueUmsCompletionListItems |
Récupère les threads de travail UMS à partir de la liste de saisie semi-automatique UMS spécifiée. |
EnterUmsSchedulingMode |
Convertit le thread appelant en thread de planificateur UMS. |
ExecuteUmsThread |
Exécute le thread de travail UMS spécifié. |
GetCurrentUmsThread |
Retourne le contexte de thread UMS du thread UMS appelant. |
GetNextUmsListItem |
Retourne le contexte de thread UMS suivant dans une liste de contextes de thread UMS. |
GetUmsCompletionListEvent |
Récupère un handle de l’événement associé à la liste de saisie semi-automatique UMS spécifiée. |
QueryUmsThreadInformation |
Récupère des informations sur le thread de travail UMS spécifié. |
SetUmsThreadInformation |
Définit des informations de contexte spécifiques à l’application pour le thread de travail UMS spécifié. |
UmsSchedulerProc |
Fonction de point d’entrée du planificateur UMS définie par l’application associée à une liste d’achèvement UMS. |
UmsThreadYield |
Fournit le contrôle au thread du planificateur UMS sur lequel le thread de travail UMS appelant est en cours d’exécution. |
Nouvelles structures
Structure | Description |
---|---|
CACHE_RELATIONSHIP |
Décrit les attributs de cache. |
GROUP_AFFINITY |
Contient une affinité spécifique au groupe de processeurs, telle que l’affinité d’un thread. |
GROUP_RELATIONSHIP |
Contient des informations sur les groupes de processeurs. |
NUMA_NODE_RELATIONSHIP |
Contient des informations sur un nœud NUMA dans un groupe de processeurs. |
PROCESSOR_GROUP_INFO |
Contient le nombre et l’affinité des processeurs dans un groupe de processeurs. |
PROCESSOR_NUMBER |
Représente un processeur logique dans un groupe de processeurs. |
PROCESSOR_RELATIONSHIP |
Contient des informations sur l’affinité au sein d’un groupe de processeurs. |
SYSTEM_LOGICAL_PROCESSOR_INFORMATION_EX |
Contient des informations sur les relations des processeurs logiques et du matériel associé. |
UMS_CREATE_THREAD_ATTRIBUTES |
Spécifie les attributs d’un thread de travail UMS. |
UMS_SCHEDULER_STARTUP_INFO |
Spécifie les attributs d’un thread de planificateur UMS |