zmb921
驱动牛犊
驱动牛犊
  • 注册日期2005-11-15
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分91分
  • 威望146点
  • 贡献值1点
  • 好评度21点
  • 原创分0分
  • 专家分0分
阅读:3139回复:3

郁闷啊!读写磁盘时构造IRP蓝屏,是什么原因呢?

楼主#
更多 发布于:2008-09-10 10:27
FOLLOWUP_IP:
hdsec!HDSec_Read+25 [d:\work\research\4.0\hdsec\hdinfo.c @ 454]
f7f399d5 8945f0          mov     dword ptr [ebp-10h],eax

FAULTING_SOURCE_CODE:  
   450:     IO_STATUS_BLOCK IoStatusBlock;
   451:     PIO_STACK_LOCATION ioStackLocation;
   452:    
   453:     KeInitializeEvent(&event, SynchronizationEvent, FALSE);
>  454:     irp = IoAllocateIrp(DeviceObject->StackSize, FALSE);
   455:     if(!irp)
   456:     {
   457:         return FALSE;
   458:     }  
   459:    

大虾帮我看看嘛!
petsatan
驱动牛犊
驱动牛犊
  • 注册日期2007-09-03
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分12分
  • 威望133点
  • 贡献值0点
  • 好评度17点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2008-09-16 14:17
IoAllocateIrp构造什么类型的IRP啊?
一般用IoBuild.....
sjvollyball
驱动牛犊
驱动牛犊
  • 注册日期2007-11-22
  • 最后登录2015-06-12
  • 粉丝0
  • 关注0
  • 积分7分
  • 威望72点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2008-10-16 02:59
创建IRP处理使用IoAllocateIrp创建IRP外还要设置它的MajorFunction 和MiniorFunction.为读或者写,等。。然后判断它是直接IO还是带缓冲的IO,如果是直接IO那么就要调用IOAllocateMdl将分配的Buffer关联起来。如果是带缓冲的IO则不需要。
idcdong
驱动牛犊
驱动牛犊
  • 注册日期2009-01-15
  • 最后登录2009-01-16
  • 粉丝0
  • 关注0
  • 积分-6分
  • 威望111点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2009-01-16 10:59
学习了
动雷主机5元起www.idcdong.com
游客

返回顶部