>are completly 2 different stories. Even driver don’t support any IRP asynchronous processing, the
>user mode asynchronous is also supported, becase the support just comes from OS.
If the driver _always blocks_ in the dispatch path and then completes the IRP in it without pending - then it kills overlapped IO on its handles.
In such a case, even though the overlapped IO from user will still work, it will lose its important behavior of "returning from read/write/IOCTL syscall ASAP". Instead, it will always block till the very completion.
Maxim S. Shatskih
Microsoft MVP on File System And Storage