Skip to content

Latest commit

 

History

History
151 lines (105 loc) · 6.28 KB

nc-minwinbase-lpoverlapped_completion_routine.md

File metadata and controls

151 lines (105 loc) · 6.28 KB
UID title description helpviewer_keywords old-location tech.root ms.assetid ms.date ms.keywords req.header req.include-header req.target-type req.target-min-winverclnt req.target-min-winversvr req.kmdf-ver req.umdf-ver req.ddi-compliance req.unicode-ansi req.idl req.max-support req.namespace req.assembly req.type-library req.lib req.dll req.irql targetos req.typenames req.redist ms.custom f1_keywords dev_langs topic_type api_type api_location api_name
NC:minwinbase.LPOVERLAPPED_COMPLETION_ROUTINE
LPOVERLAPPED_COMPLETION_ROUTINE (minwinbase.h)
An application-defined callback function used with the ReadFileEx and WriteFileEx functions. It is called when the asynchronous input and output (I/O) operation is completed or canceled and the calling thread is in an alertable state.
FileIOCompletionRoutine
FileIOCompletionRoutine callback
FileIOCompletionRoutine callback function [Files]
LPOVERLAPPED_COMPLETION_ROUTINE
LPOVERLAPPED_COMPLETION_ROUTINE callback function [Files]
_win32_fileiocompletionroutine
base.fileiocompletionroutine
fs.fileiocompletionroutine
minwinbase/FileIOCompletionRoutine
minwinbase/LPOVERLAPPED_COMPLETION_ROUTINE
fs\fileiocompletionroutine.htm
fs
574eccda-03eb-4e8a-9d74-cfaecc7312ce
12/05/2018
FileIOCompletionRoutine, FileIOCompletionRoutine callback, FileIOCompletionRoutine callback function [Files], LPOVERLAPPED_COMPLETION_ROUTINE, LPOVERLAPPED_COMPLETION_ROUTINE callback function [Files], _win32_fileiocompletionroutine, base.fileiocompletionroutine, fs.fileiocompletionroutine, minwinbase/FileIOCompletionRoutine, minwinbase/LPOVERLAPPED_COMPLETION_ROUTINE
minwinbase.h
Windows.h
Windows
Windows XP [desktop apps only]
Windows Server 2003 [desktop apps only]
Windows
19H1
LPOVERLAPPED_COMPLETION_ROUTINE
minwinbase/LPOVERLAPPED_COMPLETION_ROUTINE
c++
APIRef
kbSyntax
UserDefined
minwinbase.h
FileIOCompletionRoutine
LPOVERLAPPED_COMPLETION_ROUTINE

-description

An application-defined callback function used with the ReadFileEx and WriteFileEx functions. It is called when the asynchronous input and output (I/O) operation is completed or canceled and the calling thread is in an alertable state (by using the SleepEx, MsgWaitForMultipleObjectsEx, WaitForSingleObjectEx, or WaitForMultipleObjectsEx function with the fAlertable parameter set to TRUE).

The LPOVERLAPPED_COMPLETION_ROUTINE type defines a pointer to this callback function. FileIOCompletionRoutine is a placeholder for the application-defined function name.

-parameters

-param dwErrorCode [in]

The I/O completion status. This parameter can be one of the system error codes.

-param dwNumberOfBytesTransfered [in]

The number of bytes transferred. If an error occurs, this parameter is zero.

-param lpOverlapped [in, out]

A pointer to the OVERLAPPED structure specified by the asynchronous I/O function.

The system does not use the OVERLAPPED structure after the completion routine is called, so the completion routine can deallocate the memory used by the overlapped structure.

-remarks

The return value for an asynchronous operation is 0 (ERROR_SUCCESS) if the operation completed successfully or if the operation completed with a warning. To determine whether an I/O operation was completed successfully, check that dwErrorCode is 0, call GetOverlappedResult, then call GetLastError. For example, if the buffer was not large enough to receive all of the data from a call to ReadFileEx, dwErrorCode is set to 0, GetOverlappedResult fails, and GetLastError returns ERROR_MORE_DATA.

Returning from this function allows another pending I/O completion routine to be called. All waiting completion routines are called before the alertable thread's wait is completed with a return code of WAIT_IO_COMPLETION. The system may call the waiting completion routines in any order. They may or may not be called in the order the I/O functions are completed.

Each time the system calls a completion routine, it uses some of the application's stack. If the completion routine does additional asynchronous I/O and alertable waits, the stack may grow.

For more information, see Asynchronous Procedure Calls.

Examples

For example code, see Named Pipe Server Using Completion Routines.

-see-also

BindIoCompletionCallback

File Management Functions

OVERLAPPED

ReadFileEx

SleepEx

Synchronous and Asynchronous I/O

WaitForMultipleObjectsEx

WaitForSingleObjectEx

WriteFileEx