-
-
蓝屏求解
-
发表于: 2011-8-25 12:53 3742
-
irp = IoBuildSynchronousFsdRequest( IRP_MJ_PNP,
DeviceObject,
NULL,
0,
NULL,
&event,
&ioStatusBlock );
irpStack = IoGetNextIrpStackLocation( irp );
irpStack->MinorFunction = IRP_MN_QUERY_ID;
irpStack->Parameters.QueryId.IdType=BusQueryInstanceID;
irp->IoStatus.Status = STATUS_NOT_SUPPORTED ;
status = IoCallDriver( DeviceObject, irp );
if (status == STATUS_PENDING)
{
KeWaitForSingleObject( &event, Executive, KernelMode, FALSE, NULL );
status = ioStatusBlock.Status;
}
if(NT_SUCCESS(irp->IoStatus.Status))
{
}
我处理驱动的代码:
if(NT_SUCCESS(irp->IoStatus.Status))
这句执行时蓝了,各位大侠帮忙看下,是因为驱动程序将IRP 传递个下一个驱动之后,就不再拥有这个IRP,并且不能试图再去访问这
个它。这个原因导致的吗
DeviceObject,
NULL,
0,
NULL,
&event,
&ioStatusBlock );
irpStack = IoGetNextIrpStackLocation( irp );
irpStack->MinorFunction = IRP_MN_QUERY_ID;
irpStack->Parameters.QueryId.IdType=BusQueryInstanceID;
irp->IoStatus.Status = STATUS_NOT_SUPPORTED ;
status = IoCallDriver( DeviceObject, irp );
if (status == STATUS_PENDING)
{
KeWaitForSingleObject( &event, Executive, KernelMode, FALSE, NULL );
status = ioStatusBlock.Status;
}
if(NT_SUCCESS(irp->IoStatus.Status))
{
}
我处理驱动的代码:
if(NT_SUCCESS(irp->IoStatus.Status))
这句执行时蓝了,各位大侠帮忙看下,是因为驱动程序将IRP 传递个下一个驱动之后,就不再拥有这个IRP,并且不能试图再去访问这
个它。这个原因导致的吗
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课
赞赏
他的文章
赞赏
雪币:
留言: