Modifier les threads d'un processus

Fermé
rogina1 Messages postés 80 Date d'inscription dimanche 2 mars 2008 Statut Membre Dernière intervention 20 septembre 2008 - 25 mars 2008 à 12:28
rogina1 Messages postés 80 Date d'inscription dimanche 2 mars 2008 Statut Membre Dernière intervention 20 septembre 2008 - 25 mars 2008 à 13:46
Bonjour,
j'ai décomposé ma question en des threads ;)
The OpenProcess function returns a handle of an existing process object.

je crois que je peux modifier les threads d'un processus, mais il me reste de savoir si cette fct est ce que je suis besoin??
HANDLE OpenProcess(

DWORD dwDesiredAccess, // access flag
BOOL bInheritHandle, // handle inheritance flag
DWORD dwProcessId // process identifier
);


"dwDesiredAccess" prend cette valeur: PROCESS_CREATE_THREAD ==>Enables using the process handle in the CreateRemoteThread function to create a thread in the process.


ou faut-il utiliser cette structure?
typedef struct tagPROCESSENTRY32 {
DWORD dwSize;
DWORD cntUsage;
DWORD th32ProcessID;
DWORD th32DefaultHeapID;
DWORD th32ModuleID;
DWORD cntThreads;
DWORD th32ParentProcessID;
LONG pcPriClassBase;
DWORD dwFlags;
char szExeFile[MAX_PATH];
} PROCESSENTRY32;


mais DWORD cntThreads donne seulement l'id du thread !!,
alors est ce que je dois utiliser cette structure?:
typedef struct tagTHREADENTRY32 {
DWORD dwSize;
DWORD cntUsage;
DWORD th32ThreadID;
DWORD th32OwnerProcessID;
LONG tpBasePri;
LONG tpDeltaPri;
DWORD dwFlags;
} THREADENTRY32,*PTHREADENTRY32,*LPTHREADENTRY32;
A voir également:

1 réponse

blux Messages postés 26546 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 24 décembre 2024 3 319
25 mars 2008 à 12:31
Salut,

tu veux faire quoi au juste ?
0
rogina1 Messages postés 80 Date d'inscription dimanche 2 mars 2008 Statut Membre Dernière intervention 20 septembre 2008 1
25 mars 2008 à 12:52
resalut, j'ai débuté à travailler avec les threads ,j'ai Réussit à créer un thread avec la commande CreateThread
HANDLE CreateThread(

LPSECURITY_ATTRIBUTES lpThreadAttributes, // pointer to thread security attributes
DWORD dwStackSize, // initial thread stack size, in bytes
LPTHREAD_START_ROUTINE lpStartAddress, // pointer to thread function
LPVOID lpParameter, // argument for new thread
DWORD dwCreationFlags, // creation flags
LPDWORD lpThreadId // pointer to returned thread identifier
);

mais je me demande est-il possible d'accéder à un Thread qui exist déja ? et qui fait partie d'un processus?
0
blux Messages postés 26546 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 24 décembre 2024 3 319 > rogina1 Messages postés 80 Date d'inscription dimanche 2 mars 2008 Statut Membre Dernière intervention 20 septembre 2008
25 mars 2008 à 12:59
Un thread fait forcément partie d'un processus.

J'en reviens à ma question initiale : que souhaites-tu faire exactement ? Parce qu'à part geler ou tuer un thread...
0
rogina1 Messages postés 80 Date d'inscription dimanche 2 mars 2008 Statut Membre Dernière intervention 20 septembre 2008 1 > blux Messages postés 26546 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 24 décembre 2024
25 mars 2008 à 13:46
Un thread fait forcément partie d'un processus


ok, je vais forcer chaque thread d'un processus à exécuter dans un cpu different; disant que j'utlise une machine multicpu s

je sais je dois utiliser la commmande DWORD SetThreadAffinityMask (

HANDLE hThread, // handle to the thread of interest
DWORD dwThreadAffinityMask // a thread affinity mask
);
mais je crois que ça ne sera valide qu'avec les threads qu'on crée et non pas avec les threads d'un procesus spécifique alors si tu as une idée comment fait ça avec les threads d'un processus tu me le dit ..
aussi s'il y a d'autres choses à faire..
0