Función WaitForInputIdle (winuser.h)

Espera hasta que el proceso especificado haya terminado de procesar su entrada inicial y esté esperando la entrada del usuario sin entrada pendiente o hasta que haya transcurrido el intervalo de tiempo de espera.

Sintaxis

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

Parámetros

[in] hProcess

Identificador del proceso. Si este proceso es una aplicación de consola o no tiene una cola de mensajes, WaitForInputIdle devuelve inmediatamente.

[in] dwMilliseconds

El intervalo de tiempo de espera en milisegundos. Si dwMilliseconds es INFINITE, la función no devuelve hasta que el proceso está inactivo.

Valor devuelto

En la tabla siguiente se muestran los posibles valores devueltos para esta función.

Código o valor devuelto Descripción
0
La espera se ha satisfecho correctamente.
WAIT_TIMEOUT
Se finalizó la espera porque el intervalo de tiempo de espera transcurrido.
WAIT_FAILED
Se produjo un error.

Comentarios

La función WaitForInputIdle permite que un subproceso suspenda su ejecución hasta que el proceso especificado haya terminado su inicialización y esté esperando la entrada del usuario sin entrada pendiente. Si el proceso tiene varios subprocesos, la función WaitForInputIdle devuelve tan pronto como cualquier subproceso se vuelva inactivo.

WaitForInputIdle se puede usar en cualquier momento, no solo durante el inicio de la aplicación. Sin embargo, WaitForInputIdle espera solo una vez para que un proceso se vuelva inactivo; Las llamadas a WaitForInputIdle posteriores se devuelven inmediatamente, tanto si el proceso está inactivo como ocupado.

WaitForInputIdle puede ser útil para sincronizar un proceso primario y un proceso secundario recién creado. Cuando un proceso primario crea un proceso secundario, la función CreateProcess devuelve sin esperar a que el proceso secundario finalice su inicialización. Antes de intentar comunicarse con el proceso secundario, el proceso primario puede usar la función WaitForInputIdle para determinar cuándo se ha completado la inicialización del elemento secundario. Por ejemplo, el proceso primario debe usar la función WaitForInputIdle antes de intentar buscar una ventana asociada al proceso secundario.

Requisitos

Requisito Value
Cliente mínimo compatible Windows XP [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows Server 2003 [solo aplicaciones de escritorio]
Plataforma de destino Windows
Encabezado winuser.h (incluir Windows.h)
Library User32.lib
Archivo DLL User32.dll
Conjunto de API ext-ms-win-ntuser-misc-l1-1-0 (introducido en Windows 8)

Consulte también

CreateProcess

Funciones de proceso y subproceso

Sincronización de la ejecución de varios subprocesos