2010-11-01 69 views

回答

2

是的,這是相當有意不包含在記錄的API中。枚舉打開的文件無法在多任務操作系統上可靠地工作,您無法「凍結」操作系統並阻止其他進程在枚舉文件時打開和關閉文件。競賽條件無法解決。唯一有記錄的方法是嘗試打開沒有共享的文件。

是的,NtQuerySystemInformation是後門。由SysInternals的Handle工具使用。並由他們維護,因爲每個新版本的Windows都需要更新該實用程序。

+0

非常感謝。這回答了! – JKK 2010-11-02 13:29:57

0

您可能可以通過首先枚舉系統上的所有句柄,然後獲取每個句柄的文件名作爲文件句柄。

這是一個枚舉句柄的舊程序,找到那些對某個進程是進程句柄並打印它們的句柄。您需要將其從流程句柄更改爲文件句柄。 http://nopaste.info/eb9917d719.html但它使用NtQuerySystemInformation。

介紹如何獲得從手柄的文件名: http://msdn.microsoft.com/en-us/library/aa366789(VS.85).aspx

相關問題