Fonction NtQueryInformationThread (winternl.h)
[NtQueryInformationThread peut être modifié ou indisponible dans les versions ultérieures de Windows. Les applications doivent utiliser les autres fonctions répertoriées dans cette rubrique.]
Récupère des informations sur le thread spécifié.
Syntaxe
__kernel_entry NTSTATUS NtQueryInformationThread(
[in] HANDLE ThreadHandle,
[in] THREADINFOCLASS ThreadInformationClass,
[in, out] PVOID ThreadInformation,
[in] ULONG ThreadInformationLength,
[out, optional] PULONG ReturnLength
);
Paramètres
[in] ThreadHandle
Handle pour le thread sur les informations demandées.
[in] ThreadInformationClass
Si ce paramètre est la valeur ThreadIsIoPending de l’énumération THREADINFOCLASS , la fonction détermine si le thread a des opérations d’E/S en attente.
Utilisez plutôt la fonction publique GetThreadIOPendingFlag pour obtenir ces informations.
Si ce paramètre est la valeur ThreadQuerySetWin32StartAddress de l’énumération THREADINFOCLASS , la fonction retourne l’adresse de début du thread. Notez que sur les versions de Windows antérieures à Windows Vista, l’adresse de démarrage retournée n’est fiable qu’avant le démarrage de l’exécution du thread.
Si ce paramètre est la valeur ThreadSubsystemInformation de l’énumération THREADINFOCLASS , la fonction récupère une valeur SUBSYSTEM_INFORMATION_TYPE indiquant le type de sous-système du thread. La mémoire tampon pointée par le paramètre ThreadInformation doit être suffisamment grande pour contenir une seule énumération SUBSYSTEM_INFORMATION_TYPE .
[in, out] ThreadInformation
Pointeur vers une mémoire tampon dans laquelle la fonction écrit les informations demandées. Si ThreadIsIoPending est spécifié pour le paramètre ThreadInformationClass , cette mémoire tampon doit être suffisamment grande pour contenir une valeur ULONG , qui indique si le thread spécifié a des demandes d’E/S en attente. Si cette valeur est égale à zéro, aucune opération d’E/S n’est en attente ; sinon, si la valeur est différente de zéro, le thread a des opérations d’E/S en attente.
Utilisez plutôt la fonction publique GetThreadIOPendingFlag pour obtenir ces informations.
Si ThreadQuerySetWin32StartAddress est spécifié pour le paramètre ThreadInformationClass , cette mémoire tampon doit être suffisamment grande pour contenir une valeur PVOID, qui est l’adresse de début du thread.
[in] ThreadInformationLength
Taille de la mémoire tampon pointée par le paramètre ThreadInformation , en octets.
[out, optional] ReturnLength
Pointeur vers une variable dans laquelle la fonction retourne la taille des informations demandées. Si la fonction a réussi, il s’agit de la taille des informations écrites dans la mémoire tampon pointée par le paramètre ThreadInformation , mais si la mémoire tampon était trop petite, il s’agit de la taille minimale de la mémoire tampon requise pour recevoir correctement les informations.
Valeur retournée
Retourne un code de réussite ou d’erreur NTSTATUS.
Les formes et l’importance des codes d’erreur NTSTATUS sont répertoriées dans le fichier d’en-tête Ntstatus.h disponible dans le DDK et sont décrits dans la documentation DDK sous Kernel-Mode Driver Architecture / Guide de conception / Techniques de programmation du pilote / Erreurs de journalisation.
Remarques
La fonction NtQueryInformationThread est interne au système d’exploitation et peut être modifiée d’une version de Windows à une autre. Pour maintenir la compatibilité de votre application, il est préférable d’utiliser la fonction publique précédemment mentionnée à la place.
Si vous utilisez NtQueryInformationThread, accédez à la fonction par le biais d’une liaison dynamique au moment de l’exécution. Cela permet à votre code de répondre correctement si la fonction a été modifiée ou supprimée du système d’exploitation. Toutefois, les modifications de signature peuvent ne pas être détectables.
Cette fonction n’a pas de bibliothèque d’importation associée. Vous devez utiliser les fonctions LoadLibrary et GetProcAddress pour établir une liaison dynamique vers Ntdll.dll.
Configuration requise
Condition requise | Valeur |
---|---|
Plateforme cible | Windows |
En-tête | winternl.h |
Bibliothèque | ntdll.lib |
DLL | ntdll.dll |