Windows I/O请求流,APC是否也用于阻止请求?

Windows I/O请求流,APC是否也用于阻止请求?,windows,io,driver,irp,Windows,Io,Driver,Irp,我试图完全理解调用ReadFile时发生的I/O请求流。我知道I/O管理器如何创建IRP并将其传递到驱动程序堆栈。一旦从设备检索到数据,就会发生中断,执行驱动程序ISR以调度DCP。DCP和被数据填充的应用程序缓冲区之间会发生什么情况?我相信,细节取决于堆栈中的特定驱动程序。但据我所知,阻塞调用被实现为一个异步调用,后跟一个等待操作,即I/O管理器设置一个事件来指示I/O已完成。澄清一下,这是一个传统的异步调用-使用事件的调用-而不是基于APC的异步调用。当然,这是一个实现细节,可能会有所改变。

我试图完全理解调用ReadFile时发生的I/O请求流。我知道I/O管理器如何创建IRP并将其传递到驱动程序堆栈。一旦从设备检索到数据,就会发生中断,执行驱动程序ISR以调度DCP。DCP和被数据填充的应用程序缓冲区之间会发生什么情况?

我相信,细节取决于堆栈中的特定驱动程序。但据我所知,阻塞调用被实现为一个异步调用,后跟一个等待操作,即I/O管理器设置一个事件来指示I/O已完成。澄清一下,这是一个传统的异步调用-使用事件的调用-而不是基于APC的异步调用。当然,这是一个实现细节,可能会有所改变。我相信细节取决于堆栈中的特定驱动程序。但据我所知,阻塞调用被实现为一个异步调用,后跟一个等待操作,即I/O管理器设置一个事件来指示I/O已完成。澄清一下,这是一个传统的异步调用-使用事件的调用-而不是基于APC的异步调用。当然,这是一个实施细节,可能会有所改变。