Operazioni sovrapposte

Le operazioni sovrapposte consentono a un thread di eseguire un'operazione di I/O dispendiosa in background, lasciando libero il thread per eseguire altre attività. Per abilitare operazioni di I/O sovrapposte su una risorsa di comunicazione, il thread deve specificare il flag FILE_FLAG_OVERLAPPED nella funzione CreateFile all'apertura dell'handle. Per eseguire ilReadFileo WriteFile come operazione sovrapposta, il thread chiamante deve specificare un puntatore a una strutturaOVERLAPPED. La struttura di OVERLAPPED deve contenere un handle per un oggetto evento di reimpostazione manuale (non di reimpostazione automatica). Il sistema imposta lo stato dell'oggetto evento su non segnalato quando viene restituita una chiamata alla funzione di I/O prima del completamento dell'operazione. Il sistema imposta lo stato dell'oggetto evento su segnalato al termine dell'operazione. Il thread usa una funzione di attesa per controllare lo stato corrente dell'oggetto evento o per attendere che lo stato venga segnalato.

Le funzioni ReadFileEx e WriteFileEx possono essere eseguite solo come operazioni sovrapposte. Il thread chiamante specifica un puntatore alla funzione FileIOCompletionRoutine, che viene eseguita al termine dell'operazione sovrapposta. La routine di completamento viene eseguita solo se il thread chiamante esegue un'operazione di avviso.

Per altre informazioni sugli oggetti evento, sulle funzioni di attesa, sulle attese avvisabili e sulle routine di completamento, vedere Informazioni sulla sincronizzazione.