WNetGetUser

This is used to determine either the current default username, or the user identification used to establish a network connection.


DWORD WNetGetUser(
    LPTSTR lpName,
    LPTSTR lpUserID,
    LPDWORD lpBufferSize
    );

lpName

Contains the name of the local device the caller is interested in, or the name of a remote network resource that the user has made a connection to, or the name of a network provider, or NULL or the empty string if the caller is interested in the name of the user currently logged on to the system.

lpUserID

Points to a buffer to receive the user profile name. This is an identification string that the user made to establish the connection (for example, a user name, or group name).

If the name passed in is a network provider and the network does not have a network wide logon, then an empty string is returned.

If a network resource name is passed in, and the user is connected to that resource using different names, it is possible that a NP cannot resolve which user profile name to return. In this case the NP may make an arbitrary choice amongst the possible usernames.

lpBufferSize

This is used to specify the size of the buffer passed in. If the call fails because the buffer is not big enough, this location is used to return the required buffer size.

WN_NOT_LOGGED_ON

the user is not logged on to the system (lpName empty) or network (lpName a valid provider name).

WN_NOT_CONNECTED

lpName not a redirected device nor a connected network name.

WN_NOT_SUPPORTED

lpName is the name of a network that does not support network wide logon.

WN_MORE_DATA

the buffer is too small

WN_FUNCTION_BUSY

The MPR or NP is busy (possibly initializing). The caller should retry.

WN_NO_NETWORK

network is not present.

WN_EXTENDED_ERROR

a network specific error occurred. WNetGetLastError should be called to obtain a description of the error.