Windows Win32Arquivos & E/Skernel32.dll
ReadFileEx
Como ReadFile, mas invoca uma rotina de conclusão definida pelo usuário quando a leitura assíncrona termina.
Descrição
Parte do modelo de I/O assíncrono alertable do Windows: a rotina de conclusão só executa quando a thread que chamou ReadFileEx entra em estado alertable (ex.: via SleepEx, WaitForSingleObjectEx).
Header:
fileapi.hDLL: kernel32.dllAssinatura
BOOL ReadFileEx(
HANDLE hFile,
LPVOID lpBuffer,
DWORD nNumberOfBytesToRead,
LPOVERLAPPED lpOverlapped,
LPOVERLAPPED_COMPLETION_ROUTINE lpCompletionRoutine
);Parâmetros
| Parâmetro | Tipo | Descrição |
|---|---|---|
| hFile | HANDLE | Handle aberto com FILE_FLAG_OVERLAPPED. |
| lpBuffer | LPVOID | Buffer de destino. |
| nNumberOfBytesToRead | DWORD | Número máximo de bytes a ler. |
| lpOverlapped | LPOVERLAPPED | Estrutura de overlapped associada à operação. |
| lpCompletionRoutine | LPOVERLAPPED_COMPLETION_ROUTINE | Função chamada quando a leitura completa e a thread está alertable. |
Valor de retorno
Diferente de zero em sucesso (operação enfileirada); 0 em erro.
Códigos de erro (GetLastError)
- ERROR_INVALID_HANDLE(6)
- O identificador (handle) informado é inválido.
- ERROR_IO_PENDING(997)
- A operação de E/S sobreposta (overlapped) foi enfileirada e será concluída de forma assíncrona.