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

Voir aussi

GetThreadIOPendingFlag