What does Windows error code 996 (ERROR_IO_INCOMPLETE) mean?

 
Previous Next
ERROR_OPERATION_ABORTED ERROR_IO_PENDING

ERROR_IO_INCOMPLETE

ERROR_IO_INCOMPLETE means that an overlapped I/O request has not completed at the time its status was checked. It normally appears when GetOverlappedResult is called with bWait set to FALSE.

It is a polling result, not a completed failure

The operation is still pending. The caller has asked Windows for a nonblocking status check, and Windows has reported that no final result is available yet. The request may later complete successfully, fail with another error, or complete after cancellation.

Correct handling

Keep the OVERLAPPED structure and all buffers used by the request alive. Wait for the operation’s event, receive the completion through an I/O completion port, or call GetOverlappedResult again later. Passing TRUE as bWait makes GetOverlappedResult wait for the final result.

Do not confuse it with ERROR_IO_PENDING

ERROR_IO_PENDING is returned by the function that starts asynchronous I/O. ERROR_IO_INCOMPLETE is returned by a later nonblocking status check for that same request. Both describe a request that is in progress, but they occur at different stages of the operation.

See Microsoft documentation for GetOverlappedResult.


Looking for a different code? Search another status or error code.