WaitForInputIdle, fonction (winuser.h)

Attend que le processus spécifié ait terminé le traitement de son entrée initiale et attend l’entrée utilisateur sans entrée en attente, ou jusqu’à ce que l’intervalle de délai d’attente soit écoulé.

Syntaxe

DWORD WaitForInputIdle(
  [in] HANDLE hProcess,
  [in] DWORD  dwMilliseconds
);

Paramètres

[in] hProcess

Handle du processus. Si ce processus est une application console ou n’a pas de file d’attente de messages, WaitForInputIdle retourne immédiatement.

[in] dwMilliseconds

Intervalle de délai d’attente, en millisecondes. Si dwMillisecondes est INFINITE, la fonction ne retourne pas tant que le processus n’est pas inactif.

Valeur retournée

Le tableau suivant montre les valeurs de retour possibles pour cette fonction.

Code/valeur de retour Description
0
L’attente a été satisfaite avec succès.
WAIT_TIMEOUT
L’attente s’est terminée car l’intervalle de délai d’attente s’est écoulé.
WAIT_FAILED
Une erreur est survenue.

Remarques

La fonction WaitForInputIdle permet à un thread de suspendre son exécution jusqu’à ce que le processus spécifié ait terminé son initialisation et attende l’entrée de l’utilisateur sans aucune entrée en attente. Si le processus a plusieurs threads, la fonction WaitForInputIdle retourne dès qu’un thread devient inactif.

WaitForInputIdle peut être utilisé à tout moment, pas seulement pendant le démarrage de l’application. Toutefois, WaitForInputIdle n’attend qu’une seule fois qu’un processus devienne inactif ; Les appels WaitForInputIdle suivants retournent immédiatement, que le processus soit inactif ou occupé.

WaitForInputIdle peut être utile pour synchroniser un processus parent et un processus enfant nouvellement créé. Lorsqu’un processus parent crée un processus enfant, la fonction CreateProcess retourne sans attendre que le processus enfant termine son initialisation. Avant d’essayer de communiquer avec le processus enfant, le processus parent peut utiliser la fonction WaitForInputIdle pour déterminer quand l’initialisation de l’enfant a été terminée. Par exemple, le processus parent doit utiliser la fonction WaitForInputIdle avant d’essayer de trouver une fenêtre associée au processus enfant.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows XP [applications de bureau uniquement]
Serveur minimal pris en charge Windows Server 2003 [applications de bureau uniquement]
Plateforme cible Windows
En-tête winuser.h (inclure Windows.h)
Bibliothèque User32.lib
DLL User32.dll
Ensemble d’API ext-ms-win-ntuser-misc-l1-1-0 (introduit dans Windows 8)

Voir aussi

CreateProcess

Fonctions de processus et de thread

Synchronisation de l’exécution de plusieurs threads