x1aon1ao
驱动牛犊
驱动牛犊
  • 注册日期2009-12-04
  • 最后登录2012-02-25
  • 粉丝0
  • 关注0
  • 积分26分
  • 威望211点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1626回复:5

[求助]sfilter代码,在SfCleanupClose中加了一句调用SfDisplayCreateName,就蓝屏了

楼主#
更多 发布于:2009-12-10 14:22
sfilter的其他代码都没用改动过,只在SfCleanupClose中函数中加了一句SfDisplayCreateFileName( Irp );  就蓝屏了。
下面是我的SfCleanupClose,大家请指教,帮一下新手吧。谢了

NTSTATUS  SfCleanupClose ( IN PDEVICE_OBJECT DeviceObject,   IN PIRP Irp )
{
   NTSTATUS status;
    PAGED_CODE();
    VALIDATE_IRQL(Irp);

    if (IS_MY_CONTROL_DEVICE_OBJECT(DeviceObject)) {

        Irp->IoStatus.Status = STATUS_SUCCESS;
        Irp->IoStatus.Information = 0;

        IoCompleteRequest( Irp, IO_NO_INCREMENT );
        return STATUS_SUCCESS;
    }

    ASSERT(IS_MY_DEVICE_OBJECT( DeviceObject ));

    SfDisplayCreateFileName( Irp ); //**********************这一句是我自己加的
    
    IoSkipCurrentIrpStackLocation( Irp );

    return IoCallDriver( ((PSFILTER_DEVICE_EXTENSION) DeviceObject->DeviceExtension)->AttachedToDeviceObject, Irp );
}
x1aon1ao
驱动牛犊
驱动牛犊
  • 注册日期2009-12-04
  • 最后登录2012-02-25
  • 粉丝0
  • 关注0
  • 积分26分
  • 威望211点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2009-12-10 15:54
顶起来,继续求助  
x1aon1ao
驱动牛犊
驱动牛犊
  • 注册日期2009-12-04
  • 最后登录2012-02-25
  • 粉丝0
  • 关注0
  • 积分26分
  • 威望211点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2009-12-11 09:16
 顶起来,求助
x1aon1ao
驱动牛犊
驱动牛犊
  • 注册日期2009-12-04
  • 最后登录2012-02-25
  • 粉丝0
  • 关注0
  • 积分26分
  • 威望211点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2009-12-11 10:42
这儿有错误信息,哪位热心人帮忙一下呀,我是新手

kd> !analyze -v
*******************************************************************************
*                                                                             *
*                        Bugcheck Analysis                                    *
*                                                                             *
*******************************************************************************

PAGE_FAULT_IN_NONPAGED_AREA (50)
Invalid system memory was referenced.  This cannot be protected by try-except,
it must be protected by a Probe.  Typically the address is just plain bad or it
is pointing at freed memory.
Arguments:
Arg1: bad0b148, memory referenced.
Arg2: 00000000, value 0 = read operation, 1 = write operation.
Arg3: 8092b6e2, If non-zero, the instruction address which referenced the bad memory
    address.
Arg4: 00000000, (reserved)

Debugging Details:
------------------


READ_ADDRESS:  bad0b148

FAULTING_IP:
nt!ObpRemoveObjectRoutine+c4
8092b6e2 3918            cmp     dword ptr [eax],ebx

MM_INTERNAL_CODE:  0

DEFAULT_BUCKET_ID:  DRIVER_FAULT

BUGCHECK_STR:  0x50

PROCESS_NAME:  System

CURRENT_IRQL:  1

TRAP_FRAME:  f78c2ce4 -- (.trap 0xfffffffff78c2ce4)
ErrCode = 00000000
eax=bad0b148 ebx=00000000 ecx=8246e028 edx=00000000 esi=00000000 edi=00000000
eip=8092b6e2 esp=f78c2d58 ebp=f78c2d68 iopl=0         nv up ei ng nz na pe nc
cs=0008  ss=0010  ds=0023  es=0023  fs=0030  gs=0000             efl=00010286
nt!ObpRemoveObjectRoutine+0xc4:
8092b6e2 3918            cmp     dword ptr [eax],ebx  ds:0023:bad0b148=????????
Resetting default scope

LAST_CONTROL_TRANSFER:  from 80825b3b to 8086cf14

STACK_TEXT:  
f78c2854 80825b3b 00000003 bad0b148 00000000 nt!RtlpBreakWithStatusInstruction
f78c28a0 80826a2f 00000003 c05d6858 82595b40 nt!KiBugCheckDebugBreak+0x19
f78c2c38 80826dc7 00000050 bad0b148 00000000 nt!KeBugCheck2+0x5d1
f78c2c58 8085a507 00000050 bad0b148 00000000 nt!KeBugCheckEx+0x1b
f78c2ccc 808868a0 00000000 bad0b148 00000000 nt!MmAccessFault+0xa91
f78c2ccc 8092b6e2 00000000 bad0b148 00000000 nt!KiTrap0E+0xd8
f78c2d68 8092b744 8246e028 00000001 82595b40 nt!ObpRemoveObjectRoutine+0xc4
f78c2d80 8087adbd 00000000 00000000 82595b40 nt!ObpProcessRemoveObjectQueue+0x36
f78c2dac 809418f4 00000000 00000000 00000000 nt!ExpWorkerThread+0xeb
f78c2ddc 80887f4a 8087acd2 00000000 00000000 nt!PspSystemThreadStartup+0x2e
00000000 00000000 00000000 00000000 00000000 nt!KiThreadStartup+0x16


STACK_COMMAND:  kb

FOLLOWUP_IP:
nt!ObpRemoveObjectRoutine+c4
8092b6e2 3918            cmp     dword ptr [eax],ebx

SYMBOL_STACK_INDEX:  6

SYMBOL_NAME:  nt!ObpRemoveObjectRoutine+c4

FOLLOWUP_NAME:  MachineOwner

MODULE_NAME: nt

IMAGE_NAME:  ntkrnlpa.exe

DEBUG_FLR_IMAGE_TIMESTAMP:  45ec0a19

FAILURE_BUCKET_ID:  0x50_BADMEMREF_nt!ObpRemoveObjectRoutine+c4

BUCKET_ID:  0x50_BADMEMREF_nt!ObpRemoveObjectRoutine+c4

Followup: MachineOwner
---------
bestshow
驱动牛犊
驱动牛犊
  • 注册日期2009-10-31
  • 最后登录2010-09-26
  • 粉丝0
  • 关注0
  • 积分25分
  • 威望231点
  • 贡献值1点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2009-12-11 10:46
问题和lz的一样,求解释哈!!
feng_zhibing
驱动牛犊
驱动牛犊
  • 注册日期2009-12-11
  • 最后登录2009-12-23
  • 粉丝0
  • 关注0
  • 积分20分
  • 威望191点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2009-12-11 12:18
回 4楼(bestshow) 的帖子
应该是中断级问题!在dispatch级别上出现了缺页中断的访问!纯属个人意见!自己验证验证!
游客

返回顶部