我试图找到为Windows安装新驱动程序时会发生什么。 (修改了哪些内核数据结构。)有没有人知道关于这个主题的任何好的文档。调试它有点痛苦。
由于
答案 0 :(得分:1)
安装驱动程序后,它会被放入驱动程序存储区(请参阅http://msdn.microsoft.com/en-us/library/ff544868%28v=vs.85%29.aspx)
当发现没有当前驱动程序关联的新设备时,PNP管理器会查看驱动程序存储区以查看是否有任何存储的驱动程序与新设备匹配。
如果PNP管理器找到与设备匹配的驱动程序,它将执行drivers inf文件中的指令。这通常会在注册表中创建一个服务条目( HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ services ),将驱动程序二进制文件复制到 \ Windows \ System32 \ drivers 等处。此外, PNP管理器将创建该设备与该驱动程序的关联(我认为 HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Enum ),以便下次可以快速完成该过程。
我不认为安装驱动程序时会修改任何内核数据结构。你的意思是问驱动程序何时加载?