C++ 使用符号链接链访问远程系统上的目标文件

C++ 使用符号链接链访问远程系统上的目标文件,c++,windows,winapi,filesystems,symlink,C++,Windows,Winapi,Filesystems,Symlink,我正在vista上的远程目标文件上创建一个符号链接链(最多64个)。将新符号链接连接到此链时,我正在验证是否能够使用新添加的符号链接打开目标文件。我看到的是,在一个链中添加20个符号链接可以正常工作,但是当我将第21个符号链接添加到链中并尝试使用此新链打开目标文件时,我得到一个错误: error 1921 (The name of the file cannot be resolved by the system). 当我试图通过记事本打开该符号链接时,我看到了相同的错误,但当我在命令提示下

我正在vista上的远程目标文件上创建一个符号链接链(最多64个)。将新符号链接连接到此链时,我正在验证是否能够使用新添加的符号链接打开目标文件。我看到的是,在一个链中添加20个符号链接可以正常工作,但是当我将第21个符号链接添加到链中并尝试使用此新链打开目标文件时,我得到一个错误:

error 1921 (The name of the file cannot be resolved by the system). 
当我试图通过记事本打开该符号链接时,我看到了相同的错误,但当我在命令提示下打开该符号链接时,目标文件打开得很好,因此该链接似乎已连接,但在使用
CreateFile winapi
with
OpenExisting
标记打开同一符号链接时,不知何故返回1921错误。我不知道为什么会有这种行为


如果有人能帮我解决这个问题,那将非常有帮助。

只是出于好奇:20个符号链接的长链有什么用?有一个基于某些DB/system req的用例,这与问题完全无关。我不需要一个64的链,但我需要一个足够长的链来满足要求。你的问题提到了文件系统,但你给出的链接提到了注册表。@Luke:在链接中,我想让你读的段落是:“服务器必须支持递归符号链接。如果符号链接的目标具有符号链接的KEYTYPE,则服务器必须跟随符号链接到下一个目标键。服务器必须链接符号链接链的最大深度,即“64”。"这个问题与登记处无关。符号概念与文件系统相关。该文档专门讨论注册表中的符号链接,而不是文件系统。文件系统可能也有类似的考虑,但您无法从有关注册表的文档中推断出这一点。