如何通过一个打开的文件夹句柄获得文件夹的完整路径

我在msdn上看到了一个例子,可以从一个打开的文件句柄获取到文件名,但是
那种方法对于文件夹的句柄是没有用的,msdn示例的链接地址:
http://msdn.microsoft.com/zh-cn/library/windows/desktop/aa366789(v=vs.85).aspx

我期望能够从一个文件夹句柄得到该文件夹的完成路径,不知道谁可以帮助我!

问题已解决,使用NtQueryObject()解决的。

这里的句柄说的是CreateFile/ReadFile用的句柄,不是FindFirstFile/FindNextFile的句柄。

我要实现的功能是文件隐藏,需要隐藏一个目录下的所有文件,
我hook了NtQueryDirectoryFile这个API,里面能够获取的信息很有限,
如果不能得到explorer.exe当前正在浏览目录的完成信息,可能会误将一个同名字目录下的文件都隐藏,希望高手解答。

我在网上找到了一个和我遇到同问题的朋友,他的帖子2楼里提到用NtQueryObject可以解决,
我仔细的研究了NtQueryObject这个API,发现是不能够得到的。
原帖地址如下:
http://stackoverflow.com/questions/3820836/how-to-get-the-directory-name-path-from-an-opened-handle

隐藏文件直接写shell扩展就可以了。

文件系统驱动过滤,filter

如果上层应用,也可以通过ShellExtension来做。自己控制explore的行为

但是Shell Extension等,对命令行没用,用户可以用命令行,dir查看

dir用的是ntdll,除非用ifs,否则还是无效的。那就大费周章了。

实际上windows提供了完善的文件系统权限管理,这种程序本身就是多此一举。

写一个Shell扩展有点大费周章了,简单一点的可以通过获取com接口来取得当前浏览的目录,
或者通过枚举explorer的黄口,也可以。这两个方法是我的备选方案。