如何使用 WinApi 创建连接点?

Posted

技术标签:

【中文标题】如何使用 WinApi 创建连接点?【英文标题】:How to create a Junction Point using WinApi? 【发布时间】:2011-04-06 14:52:46 【问题描述】:

CreateHardLink函数来创建硬链接。(Win2000起) 而且自Vista发布以来就有CreateSymbolicLink功能。

但是为什么没有CreateJunction

mklink 是如何连接的? 以及如何编写代码以在我的应用中建立连接?

【问题讨论】:

【参考方案1】:

它们是重解析点,因此 FSCTL_SET_REPARSE_POINT 是神奇的 FSCTL。这是一个示例,从未尝试过,但似乎正确:

http://www.flexhex.com/docs/articles/hard-links.phtml

-斯科特

【讨论】:

@efotinis 你从哪里得到这些信息的?文档没有提到这一点。 @teivaz,我不知道我为什么写这个……我的错。【参考方案2】:

目前没有像符号链接或硬链接那样用于创建联结的内置单一函数。就像 snoone 说的,这是一个重解析点,所以你必须使用DeviceIoControl 来与之交互。如果我没记错的话,他链接的来源与我试图弄清楚这一点时使用的来源相同,我认为我没有遇到任何问题。

或者,如果您不反对在应用程序中使用外部库,并且您需要读取/检查/删除连接的功能,您可能需要查看reparselib,这是一个相当不错的库包装结点、符号链接、挂载点和自定义重解析点。

【讨论】:

以上是关于如何使用 WinApi 创建连接点?的主要内容,如果未能解决你的问题,请参考以下文章

WinAPI:如何确定网络何时识别?

winapi - 如何使用所有控件禁用组框框架

如何使用winapi实现类似Steam的窗口?

winApi使用c++创建进程

如何安全地调用 TerminateThread 和 FreeLibrary (WinAPI, C++)

如何预先测量静态尺寸? WINAPI