Fonction SetThreadIdealProcessor (processthreadsapi.h)

Définit un processeur préféré pour un thread. Le système planifie des threads sur leurs processeurs préférés chaque fois que cela est possible.

Sur un système avec plus de 64 processeurs, cette fonction définit le processeur préféré sur un processeur logique dans le groupe de processeurs auquel le thread appelant est affecté. Utilisez la fonction SetThreadIdealProcessorEx pour spécifier un groupe de processeurs et un processeur préféré.

Syntaxe

DWORD SetThreadIdealProcessor(
  [in] HANDLE hThread,
  [in] DWORD  dwIdealProcessor
);

Paramètres

[in] hThread

Handle du thread dont le processeur préféré doit être défini. Le handle doit avoir le droit d’accès THREAD_SET_INFORMATION. Pour plus d’informations, consultez Sécurité des threads et droits d’accès.

[in] dwIdealProcessor

Numéro du processeur préféré pour le thread. Cette valeur est de base zéro. Si ce paramètre est MAXIMUM_PROCESSORS, la fonction retourne le processeur idéal actuel sans le modifier.

Valeur retournée

Si la fonction réussit, la valeur de retour est le processeur préféré précédent.

Si la fonction échoue, la valeur de retour est (DWORD) – 1. Pour obtenir des informations détaillées sur l’erreur, appelez GetLastError.

Remarques

Vous pouvez utiliser la fonction GetSystemInfo pour déterminer le nombre de processeurs sur l’ordinateur. Vous pouvez également utiliser la fonction GetProcessAffinityMask pour case activée les processeurs sur lesquels le thread est autorisé à s’exécuter. Notez que GetProcessAffinityMask retourne un masque de bits alors que SetThreadIdealProcessor utilise une valeur entière pour représenter le processeur.

À compter de Windows 11 et De Windows Server 2022, sur un système avec plus de 64 processeurs, les affinités de processus et de thread s’étendent par défaut à tous les processeurs du système, dans tous les groupes de processeurs. La fonction SetThreadIdealProcessor définit le processeur préféré sur un processeur logique dans le groupe principal du thread.

Pour compiler une application qui utilise cette fonction, définissez _WIN32_WINNT comme 0x0400 ou version ultérieure. Pour plus d’informations, consultez Utilisation des en-têtes Windows.

Windows 8.1 et Windows Server 2012 R2 : cette fonction est prise en charge pour les applications du Windows Store sur Windows 8.1, Windows Server 2012 R2 et versions ultérieures.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows XP [applications de bureau | applications UWP]
Serveur minimal pris en charge Windows Server 2003 [applications de bureau | applications UWP]
Plateforme cible Windows
En-tête processthreadsapi.h (inclure Windows.h)
Bibliothèque Kernel32.lib
DLL Kernel32.dll

Voir aussi

GetProcessAffinityMask

GetSystemInfo

Plusieurs processeurs

OpenThread

Fonctions de processus et de thread

SetThreadAffinityMask

SetThreadIdealProcessorEx

Threads