Funzione KeInitializeEvent (wdm.h)
La routine KeInitializeEvent inizializza un oggetto evento come sincronizzazione (singolo cameriere) o un evento di tipo di notifica e lo imposta su uno stato segnalato o non segnalato.
Sintassi
void KeInitializeEvent(
[out] PRKEVENT Event,
[in] EVENT_TYPE Type,
[in] BOOLEAN State
);
Parametri
[out] Event
Puntatore a un oggetto evento, per il quale il chiamante fornisce l'archiviazione.
[in] Type
Specifica il tipo di evento NotificationEvent o SyncEvent.
[in] State
Specifica lo stato iniziale dell'evento. TRUE indica uno stato segnalato.
Valore restituito
nessuno
Osservazioni
L'archiviazione per un oggetto evento deve essere residente: nell'estensione del dispositivo di un oggetto dispositivo creato dal driver, nell'estensione del controller di un oggetto controller creato dal driver o in un pool non a pagina allocato dal chiamante. Se si alloca l'evento nello stack, è necessario specificare un'attesa kernelMode quando si chiama KeWaitForSingleObject, KeWaitForMutexObject o KeWaitForMultipleObjects. Durante un'attesa kernelMode , lo stack contenente l'evento non verrà visualizzato.
I driver usano in genere un oggetto NotificationEvent per attendere il completamento di un'operazione di I/O. Quando un evento di notifica è impostato sullo stato segnalato, tutti i thread in attesa che l'evento venga impostato sullo stato segnalato diventi idoneo per l'esecuzione. L'evento rimane nello stato segnalato fino a quando un thread chiama KeResetEvent o KeClearEvent per impostare l'evento nello stato non segnalato.
Un oggetto SyncEvent viene chiamato anche un evento autoreset o autoclearing . Quando tale evento viene impostato, un singolo thread in attesa diventa idoneo per l'esecuzione. Il kernel reimposta automaticamente l'evento allo stato non segnalato ogni volta che viene soddisfatta un'attesa. Un driver può usare un evento di sincronizzazione per proteggere una risorsa condivisa usata per sincronizzare le operazioni di diversi thread.
Per altre informazioni sugli oggetti evento, vedere Oggetti evento.