当前位置: 代码迷 >> 驱动开发 >> 关于驱动程序代码在应用程序进程中运行的疑惑,求解,多谢
  详细解决方案

关于驱动程序代码在应用程序进程中运行的疑惑,求解,多谢

热度:328   发布时间:2016-04-28 11:22:57.0
关于驱动程序代码在应用程序进程中运行的疑惑,求解,谢谢。
小弟初学驱动,刚开始看书,看了一周左右了,看的是张帆的windows驱动开发技术详解,书中提到IRP_MJ_READ和IPR_MJ_WRITE的派遣函数运行于应用程序的上下文中,新建了一个控制台应用程序,只调用了CreateFile()函数和ReadFile()函数,进程名是test.exe,在IRP_MJ_READ的派遣函数中输出进程名字,的确是test.exe。
  我的问题是,为什么我的应用程序的代码和IRP_MJ_READ的派遣函数运行在同一个进程中呢,难道是CreateFile()层层调用之后,调用了IRP_MJ_READ的派遣函数? 但是张帆书上应用程序通过层层调用到I/O管理器的时候,是通过I/O管理器创建并发送IRP的,貌似驱动只是相应这个IRP?应该不在一个进程中啊?初来乍到,忘各位不吝指教?

------解决方案--------------------
我靠,你才看一周就想到这么复杂的问题了。我看了俩仨月了,看完了文件驱动似懂非懂的样子。帮你顶下,学习学习!
------解决方案--------------------
应该不是运行在同一个进程中吧。
在微软的嵌入式系统中,应用层调用系统的文件API ReadFile等等时,
是通过设备管理器device.dll来调用到流驱动中相应的XXX_Read接口的。
对于桌面Windows还不太了解,不太清楚什么是派遣函数。帮顶。

app
-----------
os service
-----------
driver

  相关解决方案