我有疑问,比如我有两个一样的鼠标,安装时选择相同驱动程序,那么加载时DriverEntry调用几次?IO管理器对这两个鼠标设备创建了几个DriverObject? addevice 我理解应该是每次都要调用。因为要挂在到PDO上
采用chatgpt:
在这种情况下,当你安装两个相同的鼠标,并选择相同的驱动程序进行安装时,加载时的DriverEntry只会被调用一次。无论你安装多少个相同的设备,驱动程序的入口点只会被执行一次。
对于IO管理器来说,它会为每个设备创建一个DeviceObject,该对象表示设备在系统中的实例。因此,在你的情况下,IO管理器将为每个鼠标设备创建一个DeviceObject。这意味着会有两个不同的DeviceObject,每个对象对应一个鼠标设备。
对于AddDevice函数,它在每次添加设备时都会被调用。当你将鼠标设备插入计算机时,IO管理器检测到新的设备并调用驱动程序中的AddDevice函数,使驱动程序可以为该设备执行必要的初始化和配置操作。因此,AddDevice函数会在每次添加鼠标设备时都被调用。
以上描述是基于一般的驱动程序开发和Windows操作系统的工作原理。不同的驱动程序和操作系统版本可能会有细微的差异,但基本原理通常是相似的。
一次,相同驱动只会加载一次的,并且为该驱动创建单一的对象object,如有错误勿喷