Operações sobrepostas

Operações sobrepostas permitem que um thread execute uma operação de E/S demorada em segundo plano, deixando o thread livre para executar outras tarefas. Para habilitar operações de E/S sobrepostas em um recurso de comunicação, o thread deve especificar o sinalizador FILE_FLAG_OVERLAPPED na função CreateFile quando o identificador for aberto. Para executar a funçãoReadFile ouWriteFile como uma operação sobreposta, o thread de chamada deve especificar um ponteiro para uma estrutura deOVERLAPPED. A estrutura de OVERLAPPED deve conter um identificador para um objeto de evento de redefinição manual (não de redefinição automática). O sistema define o estado do objeto de evento como não sinalizado quando uma chamada para a função de E/S retorna antes que a operação seja concluída. O sistema define o estado do objeto de evento como sinalizado quando a operação foi concluída. O thread usa uma função de espera para verificar o estado atual do objeto de evento ou aguardar que seu estado seja sinalizado.

As funçõesReadFileEx eWriteFileEx só podem ser executadas como operações sobrepostas. O thread de chamada especifica um ponteiro para a função FileIOCompletionRoutine, que é executada quando a operação sobreposta é concluída. A rotina de conclusão será executada somente se o thread de chamada executar uma operação alertável.

Para obter mais informações sobre objetos de evento, funções de espera, esperas alertáveis e rotinas de conclusão, consulte About Synchronization.