IT点滴

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

2012年7月4日

摘要: The NT Insider, Vol 4, Issue 1, Jan-Feb 1997 | Published: 15-Feb-97| Modified: 22-Aug-02Click Here to Download:Code Associated With This ArticleZip Archive, 20KBOne frequent question heard from NT driver writers is how to perform I/O operations from within their driver. This question appears in one 阅读全文

posted @ 2012-07-04 09:05 Ady Lee 阅读(556) 评论(0) 推荐(0) 编辑

摘要: The NT Insider, Vol 4, Issue 3, May-Jun 1997 | Published: 15-Jun-97| Modified: 22-Aug-02Previously we described how to "roll your own IRPs" for performing I/O in the kernel. This is a very powerful technique and one which is highly useful for those building device drivers, file system driv 阅读全文

posted @ 2012-07-04 09:04 Ady Lee 阅读(258) 评论(0) 推荐(0) 编辑

摘要: By The Members of NTDEV and NTFSD | Published: 01-May-03| Modified: 01-May-03IRP Dispatching and HandlingIf a dispatch routine returns STATUS_PENDING, the IRP passed into thedispatch routine must be marked pending with IoMarkIrpPending().If an IRP is marked pending with IoMarkIrpPending() in a dispa 阅读全文

posted @ 2012-07-04 09:03 Ady Lee 阅读(284) 评论(0) 推荐(0) 编辑

摘要: The NT Insider, Vol 5, Issue 1, Jan-Feb 1998 | Published: 15-Feb-98| Modified: 20-Aug-02As part of our effort to address some of the more rudimentary issues in writing NT drivers, we thought it would be a good idea to talk about IRPs and data buffers… a topic we’ve never really covered in any detail 阅读全文

posted @ 2012-07-04 08:58 Ady Lee 阅读(231) 评论(0) 推荐(0) 编辑

摘要: 今天是我的18周岁生日,突然就想发表篇文章,而前几天刚好在做IopfCompleteRequest的分析,所以今天就赶赶急,把分析做做完,发表出来。我在网上认识的一个前辈说过,看网上的文章,学网上已经有的技术,不是真技术;而只有自己研究才是自己所学的,所得的。而其中最为重要的是:开创自己的技术。而开创自己的技术,就需要自己先有研究的基础。本文自然不是什么开创之作,IopfCompleteRequest的伪代码早已漫天飞IopfCompleteRequest也早已没有什么秘密可言。但是我还是坚持一个人独立地看windows的二进制码,凭自己所学,分析那一个个指令。鉴于本人水平有限,从接触编程到现 阅读全文

posted @ 2012-07-04 08:28 Ady Lee 阅读(1457) 评论(0) 推荐(0) 编辑

摘要: /**@implemented*/VOIDFASTCALLIofCompleteRequest(INPIRPIrp,INCCHARPriorityBoost){PIO_STACK_LOCATIONStackPtr,LastStackPtr;PDEVICE_OBJECTDeviceObject;PFILE_OBJECTFileObject;PETHREADThread;NTSTATUSStatus;PMDLMdl,NextMdl;ULONGMasterCount;PIRPMasterIrp;ULONGFlags;NTSTATUSErrorCode=STATUS_SUCCESS;IOTRACE(I 阅读全文

posted @ 2012-07-04 08:27 Ady Lee 阅读(957) 评论(0) 推荐(0) 编辑

摘要: NTSTATUSIoCallDriver( IN PDEVICE_OBJECT DeviceObject, IN OUT PIRP Irp ){ return IofCallDriver (DeviceObject, Irp);}NTSTATUSFASTCALLIofCallDriver( IN PDEVICE_OBJECT DeviceObject, IN OUT PIRP Irp ){ // // This routine will either jump immediately to IopfCallDriver, or rather // IovCallDriver. // retur 阅读全文

posted @ 2012-07-04 08:22 Ady Lee 阅读(628) 评论(0) 推荐(0) 编辑

摘要: 1. 一定不要在没有标注 I/O 请求数据包 (IRP) 挂起 (IoMarkIrpPending) 的情况下通过调度例程返回 STATUS_PENDING。2. 一定不要通过中断服务例程 (ISR) 调用 KeSynchronizeExecution。 它会使系统死锁。3. 一定不要将 DeviceObject->Flags 设置为 DO_BUFFERED_IO 和 DO_DIRECT_IO。 它会扰乱系统并最终导致致命错误。 而且,一定不要在 DeviceObject->Flags 中设置 METHOD_BUFFERED、METHOD_NEITHER、METHOD_IN_DIR 阅读全文

posted @ 2012-07-04 08:20 Ady Lee 阅读(292) 评论(0) 推荐(0) 编辑

摘要: http://support.microsoft.com/default.aspx?scid=kb;EN-US;320275http://support.microsoft.com/default.aspx?scid=kb;EN-US;326315 阅读全文

posted @ 2012-07-04 08:19 Ady Lee 阅读(212) 评论(0) 推荐(0) 编辑