The HasOverlappedIoCompleted macro provides a high performance test operation that can be used to poll for the completion of an outstanding I/O operation.
BOOL HasOverlappedIoCompleted(
LPOVERLAPPED lpOverlapped
);
Returns TRUE if the I/O operation has completed, and FALSE otherwise.
To cancel all pending asynchronous I/O operations, use the CancelIo function. This function only cancels operations issued by the calling thread for the specified file handle. I/O operations that are canceled complete with the error ERROR_OPERATION_ABORTED.
To get more details about a completed I/O operation, call the GetOverlappedResult or GetQueuedCompletionStatus function.
The HasOverlappedIoCompleted macro is defined as follows:
#define HasOverlappedIoCompleted(lpOverlapped) \
((lpOverlapped)->Internal != STATUS_PENDING)
Windows NT: Requires version 4.0 or later.
Windows: Requires Windows 98 or later.
Windows CE: Unsupported.
Header: Declared in winbase.h.
Synchronization Overview, Synchronization Macros, CancelIo, ConnectNamedPipe, DeviceIoControl, OVERLAPPED, ReadFile, TransactNamedPipe, WaitCommEvent, WriteFile