WNetGetUniversalName
The WNetGetUniversalName
function takes a drive-based path for a network resource and obtains a data
structure that contains a more universal form of the name.
DWORD WNetGetUniversalName(
LPCTSTR lpLocalPath, |
// pointer to
drive-based path for a network resource |
DWORD dwInfoLevel, |
// specifies form
of universal name to be obtained |
LPVOID lpBuffer, |
// pointer to
buffer that receives universal name data structure |
LPDWORD lpBufferSize |
// pointer to
variable that specifies size of buffer |
); |
|
Parameters
lpLocalPath
Points to a
null-terminated string that is a drive-based path for a network resource.
For example, if drive H has been mapped to a network drive share, and
the network resource of interest is a file named SAMPLE.DOC in the directory
\WIN32\EXAMPLES on that share, the drive-based path is
H:\WIN32\EXAMPLES\SAMPLE.DOC.
dwInfoLevel
Specifies the
type of data structure that the function will store in the buffer pointed to by
lpBuffer. This parameter can be one of the following values:
Value |
Meaning |
UNIVERSAL_NAME_INFO_LEVEL |
The
function will store a UNIVERSAL_NAME_INFO data structure in the buffer. |
REMOTE_NAME_INFO_LEVEL_ |
The
function will store a REMOTE_NAME_INFO data structure in the buffer. |
The UNIVERSAL_NAME_INFO
lpBuffer
Points to a
buffer that receives the type of data structure specified by the dwInfoLevel
parameter.
lpBufferSize
Points to a
variable that specifies the size in bytes of the buffer pointed to by lpBuffer.
If the function succeeds, it sets the variable pointed to by lpBufferSize
to the size in bytes of the data structure stored in the buffer. If the
function fails because the buffer is too small, indicated by the ERROR_MORE_DATA
error code, it sets the variable pointed to by lpBufferSize to the
required buffer size.
Return Values
If the
function succeeds, the return value is NO_ERROR.
If the
function fails, the return value is an error code. To get extended error
information, call GetLastError
Value |
Meaning |
ERROR_BAD_DEVICE |
The string
pointed to by lpLocalPath is invalid. |
ERROR_CONNECTION_UNAVAIL |
There is no
current connection to the remote device, but there is a remembered
(persistent) connection to it. |
ERROR_EXTENDED_ERROR |
A
network-specific error occurred. Use the WNetGetLastError |
ERROR_MORE_DATA |
The buffer
pointed to by lpBuffer is too small. The function sets the variable
pointed to by lpBufferSize to the required buffer size. More entries
are available with subsequent calls. |
ERROR_NOT_SUPPORTED |
The dwInfoLevel
parameter was set to UNIVERSAL_NAME_INFO_LEVEL, but the network provider does
not support UNC names. This function
is not supported by any of the network providers. |
ERROR_NO_NET_OR_BAD_PATH |
None of the
providers recognized this local name as having a connection. However, the
network is not available for at least one provider to whom the connection may
belong. |
ERROR_NO_NETWORK |
There is no
network present. |
ERROR_NOT_CONNECTED |
The device
specified by lpLocalPath is not redirected. |
Remarks
A universal
form of a local drive-based path identifies a network resource in an
unambiguous, computer-independent manner. The name can then be passed to
processes on other computers, allowing those processes to obtain access to the
resource.
The WNetGetUniversalName
function currently supports one universal name form: universal naming
convention (UNC) names, which look like the following:
\\servername\sharename\path\file
Using the
example from the preceding description of the lpLocalPath parameter, if
the shared network drive is on a server named COOLSERVER, and the share name is
HOTSHARE, the UNC name for the network resource whose drive-based name is
H:\WIN32\EXAMPLES\SAMPLE.DOC would be
\\coolserver\hotshare\win32\examples\sample.doc
The UNIVERSAL_NAME_INFO
data structure contains a pointer to a UNC name string. The REMOTE_NAME_INFO
data structure contains a pointer to a UNC name string. It also includes
pointers to two other useful strings. A process can pass the REMOTE_NAME_INFO
structure s lpszConnectionInfo member into the WNetAddConnection2
function to connect a local device to the network resource, and then append the
string pointed to by the lpszRemainingPath member to the local device
string. The resulting string can be passed to Win32 functions that use a
drive-based path.
See Also