Funzione CreateWaitableTimerExW (synchapi.h)
Crea o apre un oggetto timer waitable e restituisce un handle all'oggetto .
Sintassi
HANDLE CreateWaitableTimerExW(
[in, optional] LPSECURITY_ATTRIBUTES lpTimerAttributes,
[in, optional] LPCWSTR lpTimerName,
[in] DWORD dwFlags,
[in] DWORD dwDesiredAccess
);
Parametri
[in, optional] lpTimerAttributes
Puntatore a una struttura SECURITY_ATTRIBUTES. Se questo parametro è NULL, l'handle timer non può essere ereditato dai processi figlio.
Se lpTimerAttributes è NULL, l'oggetto timer ottiene un descrittore di sicurezza predefinito e l'handle non può essere ereditato. Gli ACL nel descrittore di sicurezza predefinito per un timer provengono dal token di rappresentazione o primario dell'autore.
[in, optional] lpTimerName
Nome dell'oggetto timer. Il nome è limitato ai caratteri MAX_PATH. Il confronto tra nomi fa distinzione tra maiuscole e minuscole.
Se lpTimerName è NULL, l'oggetto timer viene creato senza un nome.
Se lpTimerName corrisponde al nome di un evento esistente, semaforo, mutex, processo o oggetto di mapping di file, la funzione ha esito negativo e GetLastError restituisce ERROR_INVALID_HANDLE. Ciò si verifica perché questi oggetti condividono lo stesso spazio dei nomi.
Il nome può avere un prefisso "Global" o "Local" per creare in modo esplicito l'oggetto nello spazio dei nomi globale o sessione. Il resto del nome può contenere qualsiasi carattere, ad eccezione del carattere barra rovesciata (\). Per altre informazioni, vedere spazi dei nomi dell'oggetto kernel . Il passaggio rapido dell'utente viene implementato usando le sessioni di Servizi terminal. I nomi degli oggetti del kernel devono seguire le linee guida descritte per Servizi terminal in modo che le applicazioni possano supportare più utenti.
L'oggetto può essere creato in uno spazio dei nomi privato. Per altre informazioni, vedere spazi dei nomi degli oggetti .
[in] dwFlags
Questo parametro può essere 0 o i valori seguenti.
[in] dwDesiredAccess
Maschera di accesso per l'oggetto timer. Per un elenco dei diritti di accesso, vedere Synchronization Object Security and Access Rights.
Valore restituito
Se la funzione ha esito positivo, il valore restituito è un handle per l'oggetto timer. Se l'oggetto timer denominato esiste prima della chiamata di funzione, la funzione restituisce un handle all'oggetto esistente e GetLastError restituisce ERROR_ALREADY_EXISTS.
Se la funzione ha esito negativo, il valore restituito è NULL. Per ottenere informazioni estese sull'errore, chiamare GetLastError.
Osservazioni
Qualsiasi thread del processo chiamante può specificare l'handle dell'oggetto timer in una chiamata a una delle funzioni di attesa .
Più processi possono avere handle per lo stesso oggetto timer, consentendo l'uso dell'oggetto per la sincronizzazione interprocesso.
- Un processo creato dalla funzione CreateProcess
può ereditare un handle a un oggetto timer se il parametro lpTimerAttributes diCreateWaitableTimerEx abilita l'ereditarietà. - Un processo può specificare l'handle dell'oggetto timer in una chiamata alla funzione DuplicateHandle. L'handle risultante può essere usato da un altro processo.
- Un processo può specificare il nome di un oggetto timer in una chiamata alla OpenWaitableTimer o funzione CreateWaitableTimerEx.
Usare la funzione CloseHandle
Per associare un timer a una finestra, usare la funzione SetTimer.
Fabbisogno
Requisito | Valore |
---|---|
client minimo supportato | Windows Vista [app desktop | App UWP] |
server minimo supportato | Windows Server 2008 [app desktop | App UWP] |
piattaforma di destinazione | Finestre |
intestazione |
synchapi.h (include Windows.h) |
libreria |
Kernel32.lib |
dll | Kernel32.dll |