---
name: "NtReadFile"
section: "3w"
platform: "linux"
package: "libwine-dev"
version: "1.4.1-4"
release: "Debian 7 (Wheezy)"
platforms: ["linux"]
url: "https://new.carta.tech/NtReadFile"
---

# NtReadFile(3w)

## NAME

**NtReadFile** (NTDLL.@)

## SYNOPSIS

NTSTATUS NtReadFile\
  (\
   HANDLE           *hFile*,\
   HANDLE           *hEvent*,\
   PIO\_APC\_ROUTINE  *apc*,\
   void\*            *apc\_user*,\
   PIO\_STATUS\_BLOCK *io\_status*,\
   void\*            *buffer*,\
   ULONG            *length*,\
   PLARGE\_INTEGER   *offset*,\
   PULONG           *key*\
  )

## DESCRIPTION

Read from an open file handle.

## PARAMS

FileHandle **\[In\]**  Handle returned from **ZwOpenFile(3w)** or **ZwCreateFile(3w)**.

Event **\[In\]**  Event to signal upon completion (or **NULL**).

ApcRoutine **\[In\]**  Callback to call upon completion (or **NULL**).

ApcContext **\[In\]**  Context for ApcRoutine (or **NULL**).

IoStatusBlock **\[Out\]**  Receives information about the operation on return.

Buffer **\[Out\]**  Destination for the data read.

Length **\[In\]**  Size of Buffer.

ByteOffset **\[Out\]**  Destination for the new file pointer position (or **NULL**).

Key **\[Out\]**  Function unknown (may be **NULL**).

## RETURNS

**Success:** **0.** IoStatusBlock is updated, and the Information member contains The number of bytes read.

**Failure:** An **NTSTATUS** error code describing the error.

## IMPLEMENTATION

Declared in **"winternl.h"**.

Implemented in **"dlls/ntdll/file.c"**.

Debug channel **"ntdll"**.
