yihang00
驱动牛犊
驱动牛犊
  • 注册日期2008-06-06
  • 最后登录2008-08-11
  • 粉丝0
  • 关注0
  • 积分3分
  • 威望12点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
阅读:1207回复:0

filemon的疑惑

楼主#
更多 发布于:2008-07-04 16:25
在filemon的下面这个函数中完成卸载named pipe file or mail slot system

VOID
UnhookSpecialFs(
    FILE_SYSTEM_TYPE FsType
    )
{
    PHOOK_EXTENSION   hookExt;

    if( FsType == NPFS && NamedPipeHookDevice ) {
        
        hookExt = NamedPipeHookDevice->DeviceExtension;
        hookExt->Hooked = FALSE;
        NamedPipeHookDevice = NULL;

    } else if( FsType == MSFS && MailSlotHookDevice ) {

        hookExt = MailSlotHookDevice->DeviceExtension;
        hookExt->Hooked = FALSE;
        MailSlotHookDevice = NULL;
    }
}
很奇怪的是这里简单的的把设备对象的hook标志设置为false以及把指针设置为null,并没有做额外的DetachDevice和DeleteDevice操作。。。。而在HookSpecialFs函数中,又会重新创建设备对象,进而attach到文件对象设备堆栈上,请问各位大大,这样做对吗,还是我理解的有问题!!
游客

返回顶部