Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    primarykey
    data
    text
    <p>There will be an IO completion item queued for an IO operation whenever the IO operation is able to start. Regardless of whether an error is encountered or not after the IO operation starts, a completion item will be queued to the completion port.</p> <p>There is a mapping problem between the <code>NTSTATUS</code> codes returned by the IO system and Win32 error codes that makes it hard to tell what statuses are errors and which are just informational. <code>NTSTATUS</code>, which is used by the kernel and the native API, has four levels of severity: success, information, warning and error. Anything but an error code would indicate that the IO operation was able to start. Win32 only has one severity (<code>ERROR_*</code>), so the success, information and warning codes had to be mapped alongside the error codes.</p> <ul> <li><code>ERROR_IO_PENDING</code> - <code>STATUS_PENDING</code> is a success status</li> <li><code>ERROR_MORE_DATA</code> - <code>STATUS_BUFFER_OVERFLOW</code> a warning or <code>STATUS_MORE_ENTRIES</code> a success status</li> </ul> <p>You can ignore any non-error codes that ReadFile or WriteFile return and expect a queued completion item, but determining which is which can be a bit of a pain. It would be nice if the Win32 error codes were better organized, but Microsoft does provide a mapping from <code>NTSTATUS</code> to Win32 error codes: <a href="http://support.microsoft.com/kb/113996" rel="nofollow">http://support.microsoft.com/kb/113996</a>. See <code>ntstatus.h</code> in the platform SDK or your VS installation to determine what severity a <code>NTSTATUS</code> code is.</p> <p>It is possible for the IO operation to be completed when the original API call returns, e.g. a read request that was just copied out of the cache (nothing to wait on asynchronously). A completion message will still be queued in such cases for consistency's sake.</p>
    singulars
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. VO
      singulars
      1. This table or related slice is empty.
    2. VO
      singulars
      1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload