有没有办法列出
Win32 Device Namespaces
(UNC 路径前缀:\\.\
)和 Win32 File Namespaces
(UNC 路径前缀:\\?\
)的内容?
目标是拥有一个适合用作 命令行(1) 工具的应用程序,可以使用 UNC(通用命名约定)进行导航。是否已经为此编写了工具?我知道 WinObj 但它不是开源的,也不是一个 GUI 工具。
同样,如何列出
NT namespace
下可用的命名空间?
是否有 Windows API 调用可以处理这些问题?更新 2WinApi 不适合于此,NT Native API 是,正如评论中指出的那样
汉斯·帕桑特和罗杰·利普斯科姆。
更新1 如果它们不是由winapi公开的,WinObj如何列出它们?
参考: http://msdn.microsoft.com/en-us/library/aa365247%28VS.85%29.aspx#paths
(1): Win32 控制台
正如评论中提到的,您可以查看 WinObjEx64 代码。只需查看 ListObjectDirectoryTree 代码即可。
NtOpenDirectoryObject、NtQueryDirectoryObject、NtOpenSymbolicLinkObject 和 NtQuerySymbolicLinkObject 是有助于枚举 NT 对象的主要 API。
此外,这篇旧文章描述了如何使用对象管理器接口 API: https://www.drdobbs.com/using-nts-undocumented-object-manager-in/184416468