This function writes data to a file. WriteFile starts writing data to the file at the position indicated by the file pointer. After the write operation has been completed, the file pointer is adjusted by the number of bytes actually written.

A remote application interface (RAPI) version of this function exists, and it is called CeWriteFile.

BOOL WriteFile( 
HANDLE hFile, 
LPCVOID lpBuffer, 
DWORD nNumberOfBytesToWrite, 
LPDWORD lpNumberOfBytesWritten, 
LPOVERLAPPED lpOverlapped); 


  • hFile
    [in] Handle to the file to be written to. The file handle must have been created with GENERIC_WRITE access to the file.

  • lpBuffer
    [in] Pointer to the buffer containing the data to be written to the file.

  • nNumberOfBytesToWrite
    [in] Number of bytes to write to the file.

    A value of zero specifies a null write operation. A null write operation does not write any bytes but does cause the time stamp to change. WriteFile does not truncate or extend the file. To truncate or extend a file, use the SetEndOfFile function.

    Named pipe write operations across a network are limited to 65,535 bytes.

  • lpNumberOfBytesWritten
    [out] Pointer to the number of bytes written by this function call. WriteFile sets this value to zero before doing any work or error checking.

  • lpOverlapped
    [in] Unsupported; set to NULL.

Return Values

Nonzero indicates success. Zero indicates failure. To get extended error information, call GetLastError.


If part of the file is locked by another process and the write operation overlaps the locked portion, this function fails.

Accessing the output buffer while a write operation is using the buffer may lead to corruption of the data written from that buffer. Applications must not read from, write to, reallocate, or free the output buffer that a write operation is using until the write operation completes.


Runs on Versions Defined in Include Link to
Windows CE OS 1.0 and later Winbase.h   Coredll.lib, Fsmain.lib

Note   This API is part of the complete Windows CE OS package as provided by Microsoft. The functionality of a particular platform is determined by the original equipment manufacturer (OEM) and some devices may not support this API.

See Also

CeWriteFile, CreateFile, GetLastError, ReadFile, SetEndOfFile

 Last updated on Tuesday, July 13, 2004

© 1992-2000 Microsoft Corporation. All rights reserved.