CreateWaitableTimerExW, fonction (synchapi.h)
Crée ou ouvre un objet minuteur pouvant être attendu et retourne un handle à l’objet.
Syntaxe
HANDLE CreateWaitableTimerExW(
[in, optional] LPSECURITY_ATTRIBUTES lpTimerAttributes,
[in, optional] LPCWSTR lpTimerName,
[in] DWORD dwFlags,
[in] DWORD dwDesiredAccess
);
Paramètres
[in, optional] lpTimerAttributes
Pointeur vers une structure SECURITY_ATTRIBUTES. Si ce paramètre est NULL, le handle du minuteur ne peut pas être hérité par les processus enfants.
Si lpTimerAttributes est NULL, l’objet minuteur obtient un descripteur de sécurité par défaut et le handle ne peut pas être hérité. Les listes de contrôle d’accès dans le descripteur de sécurité par défaut pour un minuteur proviennent du jeton principal ou d’emprunt d’identité du créateur.
[in, optional] lpTimerName
Nom de l’objet minuteur. Le nom est limité à MAX_PATH caractères. La comparaison de noms respecte la casse.
Si lpTimerName est NULL, l’objet minuteur est créé sans nom.
Si lpTimerName correspond au nom d’un événement, d’un sémaphore, d’un mutex, d’un travail ou d’un objet de mappage de fichiers, la fonction échoue et GetLastError retourne ERROR_INVALID_HANDLE. Cela se produit parce que ces objets partagent le même espace de noms.
Le nom peut avoir un préfixe « Global » ou « Local » pour créer explicitement l’objet dans l’espace de noms global ou de session. Le reste du nom peut contenir n’importe quel caractère, à l’exception du caractère de barre oblique inverse (\). Pour plus d’informations, consultez espaces de noms d’objets noyau. Le basculement rapide des utilisateurs est implémenté à l’aide de sessions Terminal Services. Les noms d’objets noyau doivent suivre les instructions décrites pour les services Terminal Services afin que les applications puissent prendre en charge plusieurs utilisateurs.
L’objet peut être créé dans un espace de noms privé. Pour plus d’informations, consultez espaces de noms d’objets.
[in] dwFlags
Ce paramètre peut être 0 ou les valeurs suivantes.
[in] dwDesiredAccess
Masque d’accès pour l’objet minuteur. Pour obtenir la liste des droits d’accès, consultez synchronisation des droits d’accès et sécurité des objets.
Valeur de retour
Si la fonction réussit, la valeur de retour est un handle de l’objet minuteur. Si l’objet minuteur nommé existe avant l’appel de fonction, la fonction retourne un handle à l’objet existant et GetLastError retourne ERROR_ALREADY_EXISTS.
Si la fonction échoue, la valeur de retour est NULL . Pour obtenir des informations d’erreur étendues, appelez GetLastError.
Remarques
Tout thread du processus appelant peut spécifier le handle d’objet du minuteur dans un appel à l’une des fonctions d’attente .
Plusieurs processus peuvent avoir des handles sur le même objet minuteur, ce qui permet d’utiliser l’objet pour la synchronisation entre processus.
- Un processus créé par la fonction CreateProcess
peut hériter d’un handle à un objet minuteur si le paramètre lpTimerAttributes deCreateWaitableTimerEx active l’héritage. - Un processus peut spécifier le handle d’objet du minuteur dans un appel à la fonction DuplicateHandle. Le handle résultant peut être utilisé par un autre processus.
- Un processus peut spécifier le nom d’un objet minuteur dans un appel à la fonction OpenWaitableTimer ou CreateWaitableTimerEx.
Utilisez la fonction CloseHandle pour fermer le handle. Le système ferme automatiquement le handle lorsque le processus se termine. L’objet minuteur est détruit lorsque son dernier handle a été fermé.
Pour associer un minuteur à une fenêtre, utilisez la fonction SetTimer.
Exigences
Exigence | Valeur |
---|---|
client minimum pris en charge | Windows Vista [applications de bureau | Applications UWP] |
serveur minimum pris en charge | Windows Server 2008 [applications de bureau | Applications UWP] |
plateforme cible | Windows |
d’en-tête | synchapi.h (include Windows.h) |
bibliothèque | Kernel32.lib |
DLL | Kernel32.dll |