WNetGetUniversalName功能为网络资源采用基于驱动器的路径,并获取包含更通用形式的名称的数据结构。
DWORD WNetGetUniversalName(
LPCTSTR 【lpLocalPath】, | //指向网络资源的基于驱动器的路径 |
DWORD 【dwInfoLevel】, | //指定要获取的通用名称的形式 |
LPVOID 【lpBuffer】, | //指向缓冲区的指针,用于接收通用名称数据结构 |
LPDWORD 【lpBufferSize】 | //指向指定缓冲区大小的变量的指针 |
); |
参数
【lpLocalPath】
指向作为网络资源的基于驱动器的路径的以null结尾的字符串。
例如,如果驱动器H已映射到网络驱动器共享,并且感兴趣的网络资源是该共享目录\\ WIN32 \\ EXAMPLES中的名为SAMPLE.DOC的文件,则基于驱动器的路径为H:\\ WIN32 \\举例\\了Sample.doc。
【dwInfoLevel】
指定函数将在【lpBuffer】指向的缓冲区中存储的数据结构的类型。此参数可以是以下值之一:
值 | 含义 |
UNIVERSAL_NAME_INFO_LEVEL | 该函数将在缓冲区中存储一个UNIVERSAL_NAME_INFO数据结构。 |
REMOTE_NAME_INFO_LEVEL_ | 该函数将在缓冲区中存储一个REMOTE_NAME_INFO数据结构。 |
数据结构UNIVERSAL_NAME_INFO指向通用命名约定(UNC)名称字符串。
【lpBuffer】
指向接收由【dwInfoLevel】参数指定的数据结构类型的缓冲区。
【lpBufferSize】
指向一个变量,指定【lpBuffer】指向的缓冲区大小(以字节为单位)。
如果函数成功,它将指定的变量【lpBufferSize】设置为缓冲区中存储的数据结构的大小(以字节为单位)。如果该函数失败,因为缓冲区太小,由ERROR_MORE_DATA错误代码指示,它将所指向的变量【lpBufferSize】设置为所需的缓冲区大小。
返回值
如果函数成功,返回值为NO_ERROR。
如果函数失败,则返回值是错误代码。要获取扩展错误信息,请调用GetLastError.GetLastError可能会返回以下错误代码之一:
值 | 含义 |
ERROR_BAD_DEVICE | 【lpLocalPath】指向的字符串无效。 |
ERROR_CONNECTION_UNAVAIL | 没有与远程设备的当前连接,但是有一个记忆(持久)连接。 |
ERROR_EXTENDED_ERROR | 发生网络特定错误。使用WNetGetLastError 功能获取错误的描述。 |
ERROR_MORE_DATA | 【lpBuffer】指向的缓冲区太小。该函数将【lpBufferSize】指向的变量设置为所需的缓冲区大小。更多条目可用于后续呼叫。 |
ERROR_NOT_SUPPORTED | 【dwInfoLevel】参数设置为UNIVERSAL_NAME_INFO_LEVEL,但网络提供商不支持UNC名称。任何网络提供商都不支持此函数。 |
ERROR_NO_NET_OR_BAD_PATH | 没有一个提供商将本地名称识别为具有连接。但是,该网络不可用于连接可能属于的至少一个提供商。 |
ERROR_NO_NETWORK | 没有网络存在。 |
ERROR_NOT_CONNECTED | 【lpLocalPath】指定的设备未重定向。 |
备注
本地基于驱动器的路径的通用形式以明确的,独立于计算机的方式来标识网络资源。然后可以将该名称传递给其他计算机上的进程,从而允许这些进程获取对资源的访问。
WNetGetUniversalName功能目前支持通用名称形式:通用命名约定(UNC)名称,如下所示:
\\\\服务器名\\共享名\\路径\\文件
使用【lpLocalPath】参数前面描述的示例,如果共享网络驱动器位于名为COOLSERVER的服务器上,共享名称为HOTSHARE,则其驱动器名称为H:\\ WIN32的网络资源的UNC名称\\ EXAMPLES \\ SAMPLE.DOC将会
\\\\ coolserver \\ hotshare \\ WIN32 \\例子\\了Sample.doc
UNIVERSAL_NAME_INFO数据结构包含指向UNC名称字符串的指针。REMOTE_NAME_INFO数据结构包含指向UNC名称字符串的指针。它还包括指向另外两个有用的字符串的指针。进程可以将lpszConnectionInfo结构的lpszConnectionInfo成员传递到WNetAddConnection2函数中,以将本地设备连接到网络资源,然后将lpszRemainingPath成员指向的字符串附加到本地设备字符串。生成的字符串可以传递给使用基于驱动器的路径的Win32函数。
也可以看看
REMOTE_NAME_INFO, UNIVERSAL_NAME_INFO, WNetAddConnection2, WNetGetLastError