Handles et identificateurs de processus

Lorsqu’un nouveau processus est créé par la fonction CreateProcess , les handles du nouveau processus et de son thread principal sont retournés. Ces handles sont créés avec des droits d’accès complets et, sous réserve de la vérification de l’accès de sécurité, peuvent être utilisés dans n’importe quelle fonction qui accepte les handles de thread ou de processus. Ces handles peuvent être hérités par des processus enfants, en fonction de l’indicateur d’héritage spécifié lors de leur création. Les handles sont valides jusqu’à ce qu’ils soient fermés, même après l’arrêt du processus ou du thread qu’ils représentent.

La fonction CreateProcess retourne également un identificateur qui identifie de manière unique le processus dans l’ensemble du système. Un processus peut utiliser la fonction GetCurrentProcessId pour obtenir son propre identificateur de processus (également appelé ID de processus ou PID). L’identificateur est valide depuis la création du processus jusqu’à l’arrêt du processus. Un processus peut utiliser la fonction Process32First pour obtenir l’identificateur de processus de son processus parent.

Si vous avez un identificateur de processus, vous pouvez obtenir le handle de processus en appelant la fonction OpenProcess . OpenProcess vous permet de spécifier les droits d’accès du handle et s’il peut être hérité.

Un processus peut utiliser la fonction GetCurrentProcess pour récupérer un pseudo-handle dans son propre objet de processus. Ce pseudo-handle est valide uniquement pour le processus d’appel ; il ne peut pas être hérité ou dupliqué pour être utilisé par d’autres processus. Pour obtenir le véritable handle du processus, appelez la fonction DuplicateHandle .