2009-09-27 7 views
3

Y at-il une API Win32 pour vérifier si un handle donné appartient au processus en cours?Vérifiez si le handle appartient au processus en cours?

+0

Quel type de poignée? –

+0

Je voudrais dire "tout" mais j'ai l'impression que cela rendrait cela impossible ou beaucoup plus difficile. Donc, je vais me contenter d'une poignée de fenêtre :) – TheCodeJunkie

+0

Poignées de fenêtre selon la réponse actuelle. Tout type de poignée de noyau - comme une poignée de fichier? Les handles de noyau sont implémentés en tant qu'index de tableau dans une table de handles par processus. Donc, ils auront des valeurs comme "1" ou "2". Ce qui signifie qu'il n'y a aucun moyen sensé de déterminer à quel processus appartient un pseudo-noyau: - ils n'ont de sens que dans le contexte de leur propre processus. –

Répondre

2

A partir d'une poignée de fenêtre, vous pouvez utiliser GetWindowThreadProcessId Function pour obtenir l'ID de processus.
d'un processus poignée vous obtenez l'identifiant avec GetProcessId Function.

Je ne sais pas combien il est facile d'obtenir une poignée de processus d'une autre poignée. Mais je crois que cela aura à voir avec l'énumération kernel objects.

+1

Les poignées de fenêtre ne sont pas des objets noyau. Ils sont gérés par Win32 avec user32.dll en mode utilisateur. –

1

Un handle peut "appartenir" à plus d'un processus (poignées héritées dans le processus enfant, etc.)

Questions connexes