OVERLAPPED
The OVERLAPPED structure contains information used in
asynchronous input and output (I/O).
typedef struct _OVERLAPPED { ULONG_PTR Internal; ULONG_PTR InternalHigh; DWORD Offset; DWORD OffsetHigh; HANDLE hEvent;
} OVERLAPPED;
Members
- Internal
- Reserved for operating system use. This member, which specifies a
system-dependent status, is valid when the GetOverlappedResult
function returns without setting the extended error information to
ERROR_IO_PENDING.
- InternalHigh
- Reserved for operating system use. This member, which specifies the
length of the data transferred, is valid when the
GetOverlappedResult function returns TRUE.
- Offset
- File position at which to start the transfer. The file position is a
byte offset from the start of the file. The calling process sets this
member before calling the ReadFile
or WriteFile
function. This member is ignored when reading from or writing to named
pipes and communications devices and should be zero.
- OffsetHigh
- High-order word of the byte offset at which to start the transfer.
This member is ignored when reading from or writing to named pipes and
communications devices and should be zero.
- hEvent
- Handle to an event set to the signaled state when the operation has
been completed. The calling process must set this member either to zero
or a valid event handle before calling any overlapped functions. To
create an event object, use the CreateEvent
function.
Functions such as WriteFile set the event to the nonsignaled
state before they begin an I/O operation.
Remarks
You can use the HasOverlappedIoCompleted
macro to determine whether an asynchronous I/O operation has completed.
You can use the CancelIo
function to cancel an asynchronous I/O operation.
Windows NT/2000/XP: Included in Windows NT 3.1 and
later. Windows 95/98/Me: Included in Windows 95 and
later. Header: Declared in Winbase.h; include Windows.h.
See Also
Synchronization
Overview, Synchronization
Structures, CancelIo,
GetOverlappedResult,
HasOverlappedIoCompleted,
ReadFile,
WriteFile
Platform SDK Release: August
2002
|