阅读:3139回复:3
郁闷啊!读写磁盘时构造IRP蓝屏,是什么原因呢?
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: 大虾帮我看看嘛! |
|
沙发#
发布于:2008-09-16 14:17
IoAllocateIrp构造什么类型的IRP啊?
一般用IoBuild..... |
|
板凳#
发布于:2008-10-16 02:59
创建IRP处理使用IoAllocateIrp创建IRP外还要设置它的MajorFunction 和MiniorFunction.为读或者写,等。。然后判断它是直接IO还是带缓冲的IO,如果是直接IO那么就要调用IOAllocateMdl将分配的Buffer关联起来。如果是带缓冲的IO则不需要。
|
|
地板#
发布于:2009-01-16 10:59
学习了
|
|
|