I'm trying to fully understand the I/O request flow that happens when e.g. ReadFile is invoked. I'm aware of how the I/O-Manager creates an IRP and passes it down the driver-stack. Once the data has been retrieved from the device, an interrupt occurs, the driver ISR is executed to schedule a DCP. What happens between the DCP and the application buffer being filled with data?
Asked
Active
Viewed 32 times
1
-
The details depend on the specific drivers in the stack, I believe. But as I understand it, a blocking call is implemented as an asynchronous call followed by a wait operation, i.e., the I/O manager sets an event to indicate that the I/O is completed. – Harry Johnston Oct 07 '15 at 20:39
-
To clarify, that's a *conventional* asynchronous call - one using an event - rather than an APC-based asynchronous call. And of course this is an implementation detail, subject to change. – Harry Johnston Oct 08 '15 at 02:23