zzbwang
驱动牛犊
驱动牛犊
  • 注册日期2009-03-18
  • 最后登录2016-01-09
  • 粉丝1
  • 关注0
  • 积分62分
  • 威望611点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分1分
阅读:1052回复:1

各位大拿帮忙看看是什么原因?

楼主#
更多 发布于:2009-03-31 22:05
在使用fltmc unload filter的时候出现异常,现象是该命令启动后不退出,用windbg跟了一下,发现是在过滤器卸载的时候调用了FltUnregisterFilter(),这个函数没有返回。但是这个函数的参数是没有问题的,跟过滤器注册时的值一样。虽然函数不返回,但是虚拟机的工作还是正常的,除了那个运行unload命令没有退出的DOS窗口。

请问有哪些可能会导致函数不返回?

以下是驱动卸载例程:
NTSTATUS
FilterUnload (
    __in FLT_FILTER_UNLOAD_FLAGS Flags
    )
{
    PAGED_CODE();

    UNREFERENCED_PARAMETER( Flags );

    //
    //  Unregister from FLT mgr
    //

    FltUnregisterFilter( gFilterHandle );

    //
    //  Delete lookaside list
    //

    ExDeleteNPagedLookasideList( &Pre2PostContextList );

    return STATUS_SUCCESS;
}
zzbwang
驱动牛犊
驱动牛犊
  • 注册日期2009-03-18
  • 最后登录2016-01-09
  • 粉丝1
  • 关注0
  • 积分62分
  • 威望611点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分1分
沙发#
发布于:2009-04-01 16:16
原因找到了,在DriverEntry中创建了通信端口没有关闭。
游客

返回顶部