reactos操作系统实现(76)
当键盘类驱动程序或鼠标类驱动程序枚举时,会找到很多设备,这些设备需要使用回调的方式来进行初始化。下面的函数,就是实现回调初始化驱动程序,如下:
#001 VOID
#002 NTAPI
#003 IopReinitializeBootDrivers(VOID)
#004 {
#005 PDRIVER_REINIT_ITEM ReinitItem;
#006 PLIST_ENTRY Entry;
#007
找到需要重新初始化入口列表头。
#008 /* Get the first entry and start looping */
#009 Entry = ExInterlockedRemoveHeadList(&DriverBootReinitListHead,
#010 &DriverBootReinitListLock);
#011 while (Entry)
#012 {
#013 /* Get the item*/
#014 ReinitItem = CONTAINING_RECORD(Entry, DRIVER_REINIT_ITEM, ItemEntry);
#015
增加初始化计数。
#016 /* Increment reinitialization counter */
#017 ReinitItem->DriverObject->DriverExtension->Count++;
#018
删除需要重新初始化的标志。
#019 /* Remove the device object flag */
#020 ReinitItem->DriverObject->Flags &= ~DRVO_BOOTREINIT_REGISTERED;
#021
调用重新初始化函数。
#022 /* Call the routine */
#023 ReinitItem->ReinitRoutine(ReinitItem->DriverObject,
#024 ReinitItem->Context,
#025 ReinitItem->DriverObject->
#026 DriverExtension->Count);
#027
#028 /* Free the entry */
#029 ExFreePool(Entry);
#030
移动下一次节点初始化。
#031 /* Move to the next one */
#032 Entry = ExInterlockedRemoveHeadList(&DriverBootReinitListHead,
#033 &DriverBootReinitListLock);
#034 }
#035 }
相关文章
- 操作系统进程的实现---中---05
- 国产操作系统有实现弯道超车的可能吗?
- 【Windows 11】从Windows 10升级至Windows 11操作系统所需要的设置条件的操作步骤
- rust写操作系统 rCore tutorial 学习笔记:实验指导三 虚拟地址与页表
- [轻量级RTSP服务]Linux|麒麟操作系统下实现屏幕|摄像头|声音采集
- 机器人视觉听觉融合的感知操作系统
- 最新Oracle操作系统优化技巧:实现低优先级挂起闲置状态(oracleidle)
- Linux SGA:实现简单、强大的操作系统(linuxsga)
- 操作系统Linux:实现最稳定桌面操作系统(最稳定的linux桌面)
- :限制字数Linux:现代操作系统之一(linuxps)
- Linux 操作系统:众多分支组成的完美体系(linux的分支)
- 答:Linux操作系统:提高你的工作效率(工作用linux)
- Linux之分支—多样化的操作系统实现(linux的分支)
- Linus Torvalds的Linux操作系统:分支版本发展史(linux的分支)
- Deb Linux 安装详解:轻松实现优秀操作系统的部署(deblinux安装)
- Linux 与其他操作系统的竞争:谁能站在巨人肩膀上?(linux竞争)
- C语言实现Linux操作系统(c语言执行linux)
- Linux操作系统中的字体下载方法(linux字体下载)
- 锐起无盘Linux版:轻松实现无限制的操作系统自由(锐起linux版无盘)
- XP替换Linux:如何更改操作系统(linux系统换成xp)
- Linux操作系统汇总:实现完美体验(linux汇总)
- 如何在Linux操作系统下实现文件并发读写及同步?(linux文件并发)
- Linux操作系统下C语言程序开发(linux下开发c语言)
- 探秘红帽企业Linux:开源操作系统的领军者(红帽企业linux)
- Linux虚拟机使用指南:轻松实现跨操作系统的迁移(linux虚拟机使用教程)
- 掌握Oracle操作系统,轻松实现数据库管理(oracle os)
- js下获得客户端操作系统的函数代码(1:vista,2:windows7,3:2000,4:xp,5:2003,6:2008)