Re: [ntdev] Question about asynchronous IO

There is no good reason not to implement IRP queuing for most drivers. KMDF makes this trivial and supports cancel too. In general, drivers in windows are ASSUMED to have this support and applications either use overlapped IO or don’t. In modern Windows, a driver that does not support overlapped IO and IRP queuing is almost unheard of; especially a new driver that isn’t for some custom embedded solution

Sent from Surface Pro

From: Pavel A.
Sent: ‎Tuesday‎, ‎August‎ ‎26‎, ‎2014 ‎5‎:‎41‎ ‎AM
To: Windows System Software Devs Interest List

On 26-Aug-2014 04:51, wrote:

If the application uses multi-thread to send the asynchronous IO request by FILE_FLAG_OVERLAPPED.
Who is responsible to queue these IRPs? IO manager?

There’s no queue on the application level.
If a file object is created without FILE_FLAG_OVERLAPPED,
only one request can be in at any time.
Other threads trying to send a request just will block until
the active request completes.

if there is no IRP queue, is it possible to implement asynchronous IO?

Yes, in a trivial way (the driver immediately fails all requests,
until the active one completes).

– pa

NTDEV is sponsored by OSR

Visit the list at:


For our schedule of WDF, WDM, debugging and other seminars visit:

To unsubscribe, visit the List Server section of OSR Online at