Advanced Debugging
About AdvDbg Consult Train Services Products Tools Community Contact  
欢迎光临 高端调试 登录 | 注册 | FAQ
 
  ACPI调试
Linux内核调试
Windows内核调试
 
  调试战役
调试原理
新工具观察
 
  Linux
Windows Vista
Windows
 
  Linux驱动
WDF
WDM
 
  PCI Express
PCI/PCI-X
USB
无线通信协议
 
  64位CPU
ARM
IA-32
  CPU Info Center
 
  ACPI标准
系统认证
Desktop
服务器
 
  Embedded Linux
嵌入式开发工具
VxWorks
WinCE
嵌入式Windows
 
  格蠹调试套件(GDK)
  格蠹学院
  小朱书店
  老雷的微博
  《软件调试》
  《格蠹汇编》
  《软件调试(第二版)》
沪ICP备11027180号-1

Windows内核调试

帖子发起人: zmsx   发起时间: 2010-02-05 10:54 上午   回复: 4

Print Search
帖子排序:    
   2010-02-05, 10:54 上午
zmsx 离线,最后访问时间: 2010/2/27 12:58:11 zmsx

发帖数前75位
注册: 2008-06-08
发 贴: 17
windbg有没有什么命令能看文件是被谁持有?
Reply Quote

在 IRP_MJ_Set_Information 里读要删除的文件时会发现无法复制该文件.

The process cannot access the file because it is being used by another process.

想看看是谁锁住了这个文件。不知道有没有相关的命令。谢谢


IP 地址: 已记录   报告
   2010-02-05, 12:40 下午
lgq198660837 离线,最后访问时间: 2009/12/19 14:35:08 Oak

发帖数前100位
注册: 2009-10-19
发 贴: 14
Re: windbg有没有什么命令能看文件是被谁持有?
Reply Quote
这个没有,建议用filemonitor sysinternal出的。
IP 地址: 已记录   报告
   2010-02-05, 17:28 下午
nightxie 离线,最后访问时间: 2010/4/3 8:32:07 nightxie

发帖数前25位
注册: 2008-06-09
发 贴: 43
Re: windbg有没有什么命令能看文件是被谁持有?
Reply Quote
直接看irp->thread 再看thread是哪个process的。
这是我删除一个txt时显示的:
kd> !irp 81c77590
Irp is active with 8 stacks 8 is current (= 0x81c776fc)
No Mdl: System buffer=82235bd8: Thread 81dd5db0: Irp stack trace.
.....

kd> !thread -p 81dd5db0 0
PROCESS 81cecbf8 SessionId: 0 Cid: 01c0 Peb: 7ffdc000 ParentCid: 01a8
DirBase: 11829000 ObjectTable: e15a4aa0 HandleCount: 298.
Image: explorer.exe

THREAD 81dd5db0 Cid 01c0.00b4 Teb: 7ffd3000 Win32Thread: e1b81b68 RUNNING on processor 0

这里看到是explorer.exe再删除文件~~~ :D
IP 地址: 已记录   报告
   2010-02-05, 20:27 下午
zmsx 离线,最后访问时间: 2010/2/27 12:58:11 zmsx

发帖数前75位
注册: 2008-06-08
发 贴: 17
Re: windbg有没有什么命令能看文件是被谁持有?
Reply Quote
嗯嗯 好办法。我试试。:)
IP 地址: 已记录   报告
   2010-02-06, 04:05 上午
WANGyu 离线,最后访问时间: 2012/9/10 3:34:00 王宇

发帖数前10位
男
注册: 2007-05-08
发 贴: 306
Re: windbg有没有什么命令能看文件是被谁持有?
Reply Quote

仿照 Process Explorer 实现一份也不复杂的。枚举、搜索句柄表再 ObQueryNameString() 找名字就 OK。如图:



我的:


IP 地址: 已记录   报告
高端调试 » 软件调试 » Windows内核调试 » windbg有没有什么命令能看文件是被谁持有?

 
Legal Notice Privacy Statement Corporate Governance Corporate Governance
(C)2004-2020 ADVDBG.ORG All Rights Reserved.