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.
[NtQueryInformationProcess peut être modifié ou indisponible dans les futures versions de Windows. Les applications doivent utiliser les autres fonctions répertoriées dans cette rubrique.]
Récupère des informations sur le processus spécifié.
Syntaxe
__kernel_entry NTSTATUS NtQueryInformationProcess(
[in] HANDLE ProcessHandle,
[in] PROCESSINFOCLASS ProcessInformationClass,
[out] PVOID ProcessInformation,
[in] ULONG ProcessInformationLength,
[out, optional] PULONG ReturnLength
);
Paramètres
[in] ProcessHandle
Handle du processus pour lequel les informations doivent être récupérées.
[in] ProcessInformationClass
Type d’informations de processus à récupérer. Ce paramètre peut être l’une des valeurs suivantes de l’énumération PROCESSINFOCLASS .
| Valeur | Meaning |
|---|---|
|
Récupère un pointeur vers une structure PEB qui peut être utilisée pour déterminer si le processus spécifié est débogué et une valeur unique utilisée par le système pour identifier le processus spécifié.
Utilisez les fonctions CheckRemoteDebuggerPresent et GetProcessId pour obtenir ces informations. |
|
Récupère une valeur DWORD_PTR qui correspond au numéro de port du débogueur pour le processus. Une valeur différente de zéro indique que le processus est exécuté sous le contrôle d’un débogueur anneau 3.
Utilisez la fonction CheckRemoteDebuggerPresent ou IsDebuggerPresent . |
|
Détermine si le processus s’exécute dans l’environnement WOW64 (WOW64 est l’émulateur x86 qui permet aux applications Win32 d’s’exécuter sur Windows 64 bits).
Utilisez la fonction IsWow64Process2 pour obtenir ces informations. |
|
Récupère une valeur UNICODE_STRING contenant le nom du fichier image pour le processus.
Utilisez la fonction QueryFullProcessImageName ou GetProcessImageFileName pour obtenir ces informations. |
|
Récupère une valeur ULONG indiquant si le processus est considéré comme critique.
Note Cette valeur peut être utilisée à partir de Windows XP avec SP3. À compter de Windows 8.1, IsProcessCritical doit être utilisé à la place.
|
|
Récupère une valeur PROCESS_TELEMETRY_ID_INFORMATION_TYPE qui contient des métadonnées sur un processus. |
|
Récupère une valeur SUBSYSTEM_INFORMATION_TYPE indiquant le type de sous-système du processus. La mémoire tampon pointée par le paramètre ProcessInformation doit être suffisamment grande pour contenir une seule énumération SUBSYSTEM_INFORMATION_TYPE . |
[out] ProcessInformation
Pointeur vers une mémoire tampon fournie par l’application appelante dans laquelle la fonction écrit les informations demandées. La taille des informations écrites varie en fonction du type de données du paramètre ProcessInformationClass :
PROCESS_BASIC_INFORMATION
Lorsque le paramètre ProcessInformationClass est ProcessBasicInformation, la mémoire tampon pointée par le paramètre ProcessInformation doit être suffisamment grande pour contenir une seule structure de PROCESS_BASIC_INFORMATION ayant la disposition suivante :
typedef struct _PROCESS_BASIC_INFORMATION {
NTSTATUS ExitStatus;
PPEB PebBaseAddress;
ULONG_PTR AffinityMask;
KPRIORITY BasePriority;
ULONG_PTR UniqueProcessId;
ULONG_PTR InheritedFromUniqueProcessId;
} PROCESS_BASIC_INFORMATION;
| Terrain | Meaning |
|---|---|
| ExitStatus | Contient la même valeur que GetExitCodeProcess . Toutefois, l’utilisation de GetExitCodeProcess est préférable pour la clarté et la sécurité. |
| PebBaseAddress | Pointe vers une structure PEB . |
| AffinityMask | Peut être converti en DWORD et contient la même valeur que GetProcessAffinityMask retourne pour le lpProcessAffinityMask paramètre. |
| BasePriority | Contient la priorité du processus, comme décrit dans Priorités de planification. |
| UniqueProcessId | Peut être converti en DWORD et contient un identificateur unique pour ce processus. Nous vous recommandons d’utiliser la fonction GetProcessId pour récupérer ces informations. |
| InheritedFromUniqueProcessId | Peut être converti en DWORD et contient un identificateur unique pour le processus parent. |
ULONG_PTR
Lorsque le paramètre ProcessInformationClass est ProcessWow64Information, la mémoire tampon pointée par le paramètre ProcessInformation doit être suffisamment grande pour contenir un ULONG_PTR. Si cette valeur n’est pas nulle, le processus s’exécute dans un environnement WOW64. Sinon, le processus n’est pas en cours d’exécution dans un environnement WOW64.
Utilisez la fonction IsWow64Process2 pour déterminer si un processus s’exécute dans l’environnement WOW64.
UNICODE_STRING
Lorsque le paramètre ProcessInformationClass est ProcessImageFileName, la mémoire tampon pointée par le paramètre ProcessInformation doit être suffisamment grande pour contenir une structure UNICODE_STRING ainsi que la chaîne elle-même. La chaîne stockée dans le membre buffer est le nom du fichier image.
Si la mémoire tampon est trop petite, la fonction échoue avec le code d’erreur STATUS_INFO_LENGTH_MISMATCH et le paramètre ReturnLength est défini sur la taille de mémoire tampon requise.
[in] ProcessInformationLength
Taille de la mémoire tampon pointée par le paramètre ProcessInformation , 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 vers laquelle pointe le paramètre ProcessInformation (si la mémoire tampon était trop petite, il s’agit de la taille minimale nécessaire pour recevoir les informations correctement).
Valeur retournée
La fonction retourne un code de réussite ou d’erreur NTSTATUS.
Les formulaires et l’importance des codes d’erreur NTSTATUS sont répertoriés dans le fichier d’en-tête Ntstatus.h disponible dans le DDK. Pour plus d’informations, consultez Erreurs de journalisation .
Remarques
La fonction NtQueryInformationProcess et les structures qu’elle retourne sont internes au système d’exploitation et soumises à une modification d’une version de Windows à une autre. Pour maintenir la compatibilité de votre application, il est préférable d’utiliser les fonctions publiques mentionnées dans la description du paramètre ProcessInformationClass à la place.
Si vous utilisez NtQueryInformationProcess, accédez à la fonction via la 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 aucune bibliothèque d’importation associée. Vous devez utiliser les fonctions LoadLibrary et GetProcAddress pour lier dynamiquement à Ntdll.dll.
Spécifications
| Requirement | Valeur |
|---|---|
| plateforme cible | Fenêtres |
| Header | winternl.h |
| Library | ntdll.lib |
| DLL | ntdll.dll |