谁负责处理IRP并决定将哪些IRP发送以及按何种顺序?

当在WDM中debugging烤面包机驱动程序时,我的Bus_PnP具有IRP堆栈,其中分配了哪个MINOR函数将被处理,但是将其分配给IRP堆栈以处理哪个次要。

MAJOR函数和MINOR函数代码被分配为调用API或底层操作系统。 在这种情况下,PnP将由管理即插即用的I / O子系统的一部分分配。

您可能需要阅读MSDN上的“ 实现即插即用 ”

也可以理解IoGetCurrentIrpStackLocation例程 :

和IO_STACK_LOCATION :

一般来说,如果您对WDM Windows驱动程序和内部感兴趣,可以阅读Tony Mason和Peter Viscarola的“Windows NT设备驱动程序开发”。