Función CreateWaitableTimerExW (synchapi.h)
Crea o abre un objeto de temporizador de espera y devuelve un identificador al objeto .
Sintaxis
HANDLE CreateWaitableTimerExW(
[in, optional] LPSECURITY_ATTRIBUTES lpTimerAttributes,
[in, optional] LPCWSTR lpTimerName,
[in] DWORD dwFlags,
[in] DWORD dwDesiredAccess
);
Parámetros
[in, optional] lpTimerAttributes
Puntero a una estructura SECURITY_ATTRIBUTES. Si este parámetro es NULL, los procesos secundarios no pueden heredar el controlador de temporizador.
Si lpTimerAttributes es NULL, el objeto de temporizador obtiene un descriptor de seguridad predeterminado y el identificador no se puede heredar. Las ACL del descriptor de seguridad predeterminado para un temporizador proceden del token principal o de suplantación del creador.
[in, optional] lpTimerName
Nombre del objeto de temporizador. El nombre está limitado a MAX_PATH caracteres. La comparación de nombres distingue mayúsculas de minúsculas.
Si lpTimerName es NULL, el objeto de temporizador se crea sin un nombre.
Si lpTimerName coincide con el nombre de un evento existente, semáforo, exclusión mutua, trabajo o objeto de asignación de archivos, se produce un error en la función y GetLastError devuelve ERROR_INVALID_HANDLE. Esto ocurre porque estos objetos comparten el mismo espacio de nombres.
El nombre puede tener un prefijo "Global" o "Local" para crear explícitamente el objeto en el espacio de nombres global o de sesión. El resto del nombre puede contener cualquier carácter excepto el carácter de barra diagonal inversa (\). Para obtener más información, vea espacios de nombres de objeto kernel. El cambio rápido de usuario se implementa mediante sesiones de Terminal Services. Los nombres de objeto de kernel deben seguir las directrices descritas para Terminal Services para que las aplicaciones puedan admitir varios usuarios.
El objeto se puede crear en un espacio de nombres privado. Para obtener más información, vea Espacios de nombres de objeto.
[in] dwFlags
Este parámetro puede ser 0 o los siguientes valores.
[in] dwDesiredAccess
Máscara de acceso para el objeto de temporizador. Para obtener una lista de los derechos de acceso, vea Seguridad de objetos de sincronización y derechos de acceso.
Valor devuelto
Si la función se ejecuta correctamente, el valor devuelto es un identificador para el objeto de temporizador. Si el objeto de temporizador con nombre existe antes de la llamada de función, la función devuelve un identificador al objeto existente y GetLastError devuelve ERROR_ALREADY_EXISTS.
Si se produce un error en la función, el valor devuelto es NULL. Para obtener información de error extendida, llame a GetLastError.
Observaciones
Cualquier subproceso del proceso de llamada puede especificar el identificador de objeto del temporizador en una llamada a una de las funciones de espera de .
Varios procesos pueden tener identificadores para el mismo objeto de temporizador, lo que permite el uso del objeto para la sincronización entre procesos.
- Un proceso creado por la función createProcess
puede heredar un identificador a un objeto de temporizador si el lpTimerAttributes parámetro deCreateWaitableTimerEx habilita la herencia. - Un proceso puede especificar el identificador de objeto del temporizador en una llamada a la función DuplicateHandle. Otro proceso puede usar el identificador resultante.
- Un proceso puede especificar el nombre de un objeto de temporizador en una llamada a la función OpenWaitableTimer o CreateWaitableTimerEx.
Use la función CloseHandle para cerrar el identificador. El sistema cierra el identificador automáticamente cuando finaliza el proceso. El objeto de temporizador se destruye cuando se ha cerrado su último identificador.
Para asociar un temporizador a una ventana, use la función SetTimer.
Requisitos
Requisito | Valor |
---|---|
cliente mínimo admitido | Windows Vista [aplicaciones de escritorio | Aplicaciones para UWP] |
servidor mínimo admitido | Windows Server 2008 [aplicaciones de escritorio | Aplicaciones para UWP] |
de la plataforma de destino de |
Windows |
encabezado de |
synchapi.h (incluya Windows.h) |
biblioteca de |
Kernel32.lib |
DLL de |
Kernel32.dll |