我在Vista上访问网络驱动器时遇到问题

时间:2010-01-28 08:27:41

标签: c++

步骤是: 我一直在使用UAC运行服务程序,使用WNetAddConnection2函数映射网络驱动器,然后就成功了。

我运行了另一个具有管理员权限的程序(以管理员身份运行)来调用函数GetFileAttribute以获取网络驱动器的属性,但是,它返回0xffffffff并且错误代码为3(找不到特殊路径)。

我也尝试过在网络驱动器上创建文件,但它仍然失败了。

你能帮我解决这个问题吗?

非常感谢。

1 个答案:

答案 0 :(得分:2)

在NT中,“网络驱动器”是从MS-DOS文件系统命名空间到UNC路径的符号链接。每个登录会话都维护这些符号链接。这也意味着管理员拥有自己的一组符号链接。

解决方案是在每个需要访问特定UNC网络路径的登录会话中调用WNetAddConnection2作为驱动器号。

这在the MSDN page上记录:

  

在Windows Server 2003和Windows XP上,   WNet功能创建和删除   MS-DOS中的网络驱动器号   与a关联的设备命名空间   登录会话,因为MS-DOS设备   由AuthenticationID标识(a   本地唯一标识符或LUID,   与登录会话相关联。)这个   会影响调用一个的应用程序   WNet函数创建一个   一个用户下的网络驱动器号   登录,但查询现有网络   在不同的用户下驱动字母   登录。