Funzione WNetGetUserA (winnetwk.h)
La funzione WNetGetUser recupera il nome utente predefinito corrente o il nome utente usato per stabilire una connessione di rete.
Sintassi
DWORD WNetGetUserA(
[in] LPCSTR lpName,
[out] LPSTR lpUserName,
[in, out] LPDWORD lpnLength
);
Parametri
[in] lpName
Puntatore a una stringa con terminazione null costante che specifica il nome di un dispositivo locale reindirizzato a una risorsa di rete o al nome remoto di una risorsa di rete a cui è stata eseguita una connessione senza reindirizzare un dispositivo locale.
Se questo parametro è NULL o la stringa vuota, il sistema restituisce il nome dell'utente corrente per il processo.
[out] lpUserName
Puntatore a un buffer che riceve il nome utente con terminazione null.
[in, out] lpnLength
Puntatore a una variabile che specifica le dimensioni del buffer lpUserName , in caratteri. Se la chiamata ha esito negativo perché il buffer non è sufficiente, questa variabile contiene le dimensioni del buffer necessarie.
Valore restituito
Se la funzione ha esito positivo, il valore restituito è NO_ERROR.
Se la funzione ha esito negativo, il valore restituito è un codice di errore di sistema, ad esempio uno dei valori seguenti.
Codice restituito | Descrizione |
---|---|
|
Il dispositivo specificato dal parametro lpName non è un dispositivo reindirizzato o un nome di rete connesso. |
|
Altre voci sono disponibili con chiamate successive. |
|
La rete non è disponibile. |
|
Si è verificato un errore specifico della rete. Per ottenere una descrizione dell'errore, chiamare la funzione WNetGetLastError . |
|
Nessuno dei provider riconosce il nome locale come connessione. Tuttavia, la rete non è disponibile per almeno un provider a cui la connessione può appartenere. |
Commenti
La funzione WNetGetUser non è a conoscenza delle condivisioni nel file system distribuito (DFS). Se il nome specificato dal parametro lpName è un dispositivo locale reindirizzato a una condivisione DFS o a una risorsa remota che rappresenta una condivisione DFS, la funzione WNetGetUser ha esito negativo con ERROR_NOT_CONNECTED.
Esempio
L'esempio di codice seguente illustra come usare la funzione WNetGetUser per recuperare il nome dell'utente associato a un dispositivo locale reindirizzato o a una risorsa di rete remota.
#ifndef UNICODE
#define UNICODE
#endif
#pragma comment(lib, "mpr.lib")
#include <windows.h>
#include <tchar.h>
#include <stdio.h>
#include <Winnetwk.h>
int wmain(int argc, wchar_t * argv[])
{
DWORD dwRetVal;
WCHAR UserName[MAX_PATH];
DWORD dwNameLength = MAX_PATH;
if (argc != 2) {
wprintf
(L"Usage: %s [Redirected-LocalDevice or Network-Resource-Remote-name\n",
argv[0]);
exit(1);
}
wprintf(L"Calling WNetGetUser with Network-Resource = %s\n", argv[1]);
dwRetVal = WNetGetUser(argv[1], UserName, &dwNameLength);
//
// If the call succeeds, print the user information.
//
if (dwRetVal == NO_ERROR) {
wprintf(L"WNetGetUser returned success\n");
wprintf(L"\tUsername=%s NameLength=%d\n", &UserName, dwNameLength);
exit(0);
}
else {
wprintf(L"WNetGetUser failed with error: %u\n", dwRetVal);
exit(1);
}
}
Nota
L'intestazione winnetwk.h definisce WNetGetUser come alias che seleziona automaticamente la versione ANSI o Unicode di questa funzione in base alla definizione della costante preprocessore UNICODE. La combinazione dell'utilizzo dell'alias di codifica neutrale con il codice che non è neutrale dalla codifica può causare errori di corrispondenza che causano errori di compilazione o runtime. Per altre informazioni, vedere Convenzioni per i prototipi di funzione.
Requisiti
Requisito | Valore |
---|---|
Client minimo supportato | Windows 2000 Professional [solo app desktop] |
Server minimo supportato | Windows 2000 Server [solo app desktop] |
Piattaforma di destinazione | Windows |
Intestazione | winnetwk.h |
Libreria | Mpr.lib |
DLL | Mpr.dll |