驱动对象和设备对象的区别

本文只讨论windows驱动领域的,对于Linux驱动不认识,也没讨论价值。

在Windows驱动开发中,初学者往往混淆驱动对象和设备对象的概念,误以为两者是一样的,其实不是这样的。

驱动对象(DRIVER_OBJECT)生成多个设备对象

设备对象(DEVICE_OBJECT)可以是硬件(硬盘等),也可以是软件,比如NTFS文件系统。它们都属于设备对象。

对设备的操作都是操作系统以请求分发下来的,直接往设备对象分发,这些请求就是被驱动对象的分发函数所捕获,当内核向一个设备发送请求时候,驱动对象的分发函数中某个函数会自然而然被调用来处理这个请求


你可能感兴趣的:(驱动对象和设备对象的区别)