0

我正在阅读有关驱动程序同步的 MSDN 文档,并且遇到了这样的声明

司机可以等待,如果

• 驱动程序在非任意线程上下文中执行。也就是说,您可以识别将进入等待状态的线程。实际上,在非任意线程上下文中执行的唯一驱动程序例程是任何驱动程序的 DriverEntry、AddDevice、Reinitialize 和 Unload 例程,以及最高级别驱动程序的调度例程。所有这些例程都由系统直接调用

现在我的问题是,为什么在任意线程上下文中考虑调度例程?由于从用户空间提出请求时会调用读、写等例程,因此我们可以知道是哪个线程在系统空间中执行了该操作??我是我完全搞砸了,或者这可能是一个愚蠢的问题,但仍然可以帮助我,因为我是windwos的新手。

4

1 回答 1

0

好的,我在文档中找到了答案:),这就是它所说的..

尽管最高级别的驱动程序在请求线程的上下文中接收 I/O 请求,但它们通常会将这些请求转发到不同线程上的较低级别的驱动程序。因此,在调用此类例程时,您不能对用户模式地址空间的内容做出任何假设

于 2013-09-27T04:43:53.723 回答