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 processeurs.
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 s’exécute.
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é sous la forme d’une 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 nombre de nœuds sous la forme d’une valeur USHORT pour l’identificateur de proximité spécifié.
GetProcessGroupAffinity
Récupère l’affinité de groupe de processeurs du processus spécifié.
GetProcessorSystemCycleTime
Récupère le temps de cycle que chaque processeur dans le groupe spécifié a passé à exécuter des appels de procédure différés (DPC) et des routines de service d’interruption (routines).
GetThreadGroupAffinity
Récupère l’affinité de groupe de processeurs 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 la durée de cycle accumulée pour le thread inactif sur chaque processeur logique dans le groupe de processeurs spécifié.
SetThreadGroupAffinity
Définit l’affinité de 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 les pools de threads.

Fonction Description
QueryThreadpoolStackInformation
Récupère la réserve de piles et les tailles de validation 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 la réserve de piles et les tailles de validation 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 de travail 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 de la liste de saisie semi-automatique UMS spécifiée.
EnterUmsSchedulingMode
Convertit le thread appelant en un 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 vers 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 de saisie semi-automatique UMS.
UmsThreadYield
Donne le contrôle au thread UMS Scheduler sur lequel le thread de travail UMS appelant est en cours d’exécution.

Nouvelles structures

Structure Description
relation du CACHE _
Décrit les attributs du cache.
affinité de groupe _
Contient une affinité spécifique au groupe de processeurs, telle que l’affinité d’un thread.
relation de groupe _
Contient des informations sur les groupes de processeurs.
_relation de nœud NUMA _
Contient des informations sur un nœud NUMA dans un groupe de processeurs.
_informations sur le groupe de processeurs _
Contient le nombre et l’affinité des processeurs dans un groupe de processeurs.
Numéro de processeur _
Représente un processeur logique dans un groupe de processeurs.
relation de processeur _
Contient des informations sur l’affinité au sein d’un groupe de processeurs.
_ _ informations sur le processeur logique système _ _ ex
Contient des informations sur les relations entre les processeurs logiques et le matériel associé.
_attributs de création de _ thread UMS _
Spécifie les attributs d’un thread de travail UMS.
_ _ informations de démarrage du planificateur _ UMS
Spécifie les attributs d’un thread UMS Scheduler