yyy_3
驱动牛犊
驱动牛犊
  • 注册日期2004-03-16
  • 最后登录2012-02-20
  • 粉丝0
  • 关注0
  • 积分54分
  • 威望305点
  • 贡献值0点
  • 好评度23点
  • 原创分0分
  • 专家分0分
阅读:1155回复:2

wdk驱动程序在2003下上层用FilterUnload() 进入不了驱动的unload()?

楼主#
更多 发布于:2008-09-18 17:26
FLT_REGISTRATION filterRegistration = {
    
    sizeof( FLT_REGISTRATION ),            //  Size
        FLT_REGISTRATION_VERSION,        //  Version
        0,                                //  Flags
        contextRegistration,            //  Context
        callbacks,                        //  Operation callbacks
        DriverUnload,                    //  Filters unload routine
        SefsInstanceSetup,                //  InstanceSetup routine
        SefsInstanceQueryTeardown,        //  InstanceQueryTeardown routine
        NULL,                            //  InstanceTeardownStart routine
        NULL,                            //  InstanceTeardownComplete routine
        NULL, NULL, NULL                //  Unused naming support callbacks
};

 FltRegisterFilter( DriverObject,
                                &filterRegistration,
                                &Globals.Filter );

NTSTATUS
DriverUnload (
  __in FLT_FILTER_UNLOAD_FLAGS Flags
    )
{
    NTSTATUS status = STATUS_SUCCESS;
    
    UNREFERENCED_PARAMETER(Flags);
    
    PAGED_CODE();

    DbgPrint("in UnLoad....\n");
}

在xp下正常,在2003下没有进入DriverUnload(), 用dbgview工具看不到DbgPrint("in UnLoad....\n");

why?
dreamsity
驱动小牛
驱动小牛
  • 注册日期2006-09-01
  • 最后登录2013-07-04
  • 粉丝0
  • 关注0
  • 积分40分
  • 威望821点
  • 贡献值1点
  • 好评度68点
  • 原创分1分
  • 专家分0分
沙发#
发布于:2008-09-19 09:39
或者直接设置HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Debug Print Filter为3;或者ed Kd_IHVVIDEO_Mask 0x3
具体的请搜索《Reading and Filtering Debugging Messages》
一切都是时间问题!
dreamsity
驱动小牛
驱动小牛
  • 注册日期2006-09-01
  • 最后登录2013-07-04
  • 粉丝0
  • 关注0
  • 积分40分
  • 威望821点
  • 贡献值1点
  • 好评度68点
  • 原创分1分
  • 专家分0分
板凳#
发布于:2008-09-19 09:36
2003需要开一个调试信息开关。
一切都是时间问题!
游客

返回顶部