IT点滴

我不去想是否能够成功 既然选择了远方 便只顾风雨兼程
  博客园  :: 首页  :: 联系 :: 订阅 订阅  :: 管理

06 2012 档案

摘要:在Windows分层驱动模型中,设备栈中的设备一般都是通过对上层传来的IRP做相应的处理来实现驱动的功能。这里对常用的几种IRP传递及完成的方式进行归纳和总结:1. 在本层驱动中完成1.1 在本层驱动中以同步方式完成在本层同步完成一般做完相应处理后,设置Irp->IoStatus.Status和Irp->IoStatus.Information,调用IoCompleteRequest完成该IRP,return IRP的完成状态即可。1.2 在本层驱动中以异步方式完成在本层异步完成一般是得到IRP后将其入队/起线程另行处理,同时调用IoMarkIrpPending将该IRP标记为Pe 阅读全文

posted @ 2012-06-26 15:35 Ady Lee

摘要:1)当硬件连接到PC或从PC移除时,在硬件上会有信号跳变,BUS Driver会检测到器件的插入和移除,比如DVI的hotplug,再比如USB1.1的1.5K上拉。BUS Driver将调用IOInvalidateDevcieRelations,PNP Manager将知道BUS上的Device关系有所改变。2)为了获得新的Device关系,PNP Manager将调用IRP_MN_QUERY_DEVICE_RELATIONS。BUS Driver将会回应其BUS关系(目录)。3)一旦得知Device之间的关系,PNP Manager就能容易地确定哪些器件没有被初始化。IRP_MN_QUER 阅读全文

posted @ 2012-06-20 08:23 Ady Lee 阅读(409) 评论(0) 推荐(0)

摘要:无意中看到一种通过控制92H端口bit0位,将其置1来实现重启的方法,刚才测试了一下,效果真好 mov al, 01 out 92h, al另一种,模拟键盘的reset mov al, 0xfe out 0x64, al注i8042 :键盘控制器8042的端口在cpu的io空间地址如下:port----Read/Write-----Function0x60----Read----------Read Input Buffer0x60----Write---------Write Output Buffer0x64----Read----------Read Status Register0x6 阅读全文

posted @ 2012-06-14 09:52 Ady Lee 阅读(488) 评论(0) 推荐(0)