Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Lorsqu’un nouveau thread est créé par la fonction CreateThread ou CreateRemoteThread, un handle vers le thread est retourné. Par défaut, ce handle dispose de droits d’accès complets et, sous réserve de la vérification de l’accès de sécurité, peut être utilisé dans l’une des fonctions qui acceptent un handle de thread. Ce handle peut être hérité par les processus enfants, en fonction de l’indicateur d’héritage spécifié lors de sa création. Le handle peut être dupliqué par duplicateHandle, ce qui vous permet de créer un handle de thread avec un sous-ensemble des droits d’accès. Le handle est valide jusqu’à ce qu’il soit fermé, même après que le thread qu’il représente a été arrêté.
Les fonctions CreateThread et CreateRemoteThread retournent également un identificateur qui identifie de manière unique le thread dans tout le système. Un thread peut utiliser la fonctionGetCurrentThreadIdpour obtenir son propre identificateur de thread. Les identificateurs sont valides à partir du moment où le thread est créé jusqu’à ce que le thread soit arrêté. Notez qu’aucun identificateur de thread ne sera jamais 0.
Si vous avez un identificateur de thread, vous pouvez obtenir le handle de thread en appelant la fonction OpenThread. OpenThread vous permet de spécifier les droits d’accès du handle et s’il peut être hérité.
Un thread peut utiliser la fonction GetCurrentThread pour récupérer un pseudo-handle à son propre objet thread. Ce pseudo-handle est valide uniquement pour le processus appelant ; elle ne peut pas être héritée ou dupliquée pour être utilisée par d’autres processus. Pour obtenir le handle réel au thread, en fonction d’un pseudo-handle, utilisez la fonction DuplicateHandle.
Pour énumérer les threads d’un processus, utilisez les fonctions Thread32First et Thread32Next.