Voltar à lista
Windows Win32Arquivos & E/Skernel32.dll

ReadFile

Lê dados de um arquivo ou dispositivo referenciado por um HANDLE, de forma síncrona ou assíncrona (overlapped).

Descrição

Com um handle aberto com FILE_FLAG_OVERLAPPED e uma struct OVERLAPPED preenchida, a leitura é assíncrona e a conclusão é observada via GetOverlappedResult, um I/O Completion Port, ou uma rotina de conclusão (ReadFileEx).

Header: fileapi.hDLL: kernel32.dllNative API: NtReadFile

Assinatura

BOOL ReadFile(
    HANDLE hFile,
    LPVOID lpBuffer,
    DWORD nNumberOfBytesToRead,
    LPDWORD lpNumberOfBytesRead,
    LPOVERLAPPED lpOverlapped
);

Parâmetros

ParâmetroTipoDescrição
hFileHANDLEHandle do arquivo/dispositivo, aberto com acesso de leitura.
lpBufferLPVOIDBuffer de destino.
nNumberOfBytesToReadDWORDNúmero máximo de bytes a ler.
lpNumberOfBytesReadLPDWORDRecebe o número de bytes efetivamente lidos (ignorado em modo overlapped puramente assíncrono).
lpOverlappedLPOVERLAPPEDEstrutura para I/O assíncrono, ou NULL para I/O síncrono.

Valor de retorno

Diferente de zero em sucesso; 0 em erro (consulte GetLastError). Retornar TRUE com 0 bytes lidos indica fim de arquivo.

Códigos de erro (GetLastError)

ERROR_HANDLE_EOF(38)
Fim do arquivo alcançado.
ERROR_IO_PENDING(997)
A operação de E/S sobreposta (overlapped) foi enfileirada e será concluída de forma assíncrona.
ERROR_INVALID_HANDLE(6)
O identificador (handle) informado é inválido.
ERROR_BROKEN_PIPE(109)
O pipe foi encerrado (broken pipe).

Relacionadas