操作系统包括许多内核模式组件,功能相互独立。
- 当用户模式程式需要读取设备数据的时候,就需要调用win32 API函数,例如readfile。win32 子系统模块(如kernal.dll)通过调用平台相关的系统服务接口实现对应的API,而同时平台相关的系统服务将会调用内核模式支持例程。
例如,在readfile调用中,调用首先到达系统DLL中的一个入口点NTReadfile函数,然后这个用户模式的Ntreadfile函数调用系统服务接口,最后由系统服务接口调用内核模式中的服务例程,该例程同样命名为NtReadfile.
流程:检查传递给他们的参数 ,防止一些非法数据或者安全考虑
-》创建一个称为“I/O请求包(IRP)” 的数据结构-
-》把这个数据结构送到某个驱动程序的入口点-
-》用户模式得到一个返回值,表明该IRP还没有完成或者已经完成-
-》用户模式 的程序可以继续其他工作,同时进入 等待,或者立即进入等待状态
。。。待更新