驱动程序层次

驱动程序往往是和具体的硬件联系在一起,但是驱动程序也可以不和特定的硬件设备相绑定。


驱动程序有很多类型。


驱动程序分不同的层次。


最高层的驱动程序一般要和用户层的应用程序相交互,最底层的驱动程序一般和具体硬件或者其他驱动打交道。


每种驱动都有自己的驱动栈。驱动栈或者把一个IRP请求分成几个请求传给其他驱动栈,或者只是简单地把这个请求转发给底层的驱动。

例:磁盘操作,跟用户态应用程序交互的高层驱动程序并不直接和底层的硬件打交道,只是管理文件系统本身当要进行读写时,他会和位于他现编的中间层驱动交互,中间层驱动和底层的驱动交互,底层的驱动才进行实际的物理操作。


当应用程序调用一定的API函数时(如CreateFile、CloseHandle、WriteFile、ReadFile、DeviceIoContril),驱动程序就会调用在DriverEntry中设置好的函数。



你可能感兴趣的:(驱动程序层次)