WNetGetUserA, fonction (winnetwk.h)
La fonction WNetGetUser récupère le nom d’utilisateur par défaut actuel ou le nom d’utilisateur utilisé pour établir une connexion réseau.
Syntaxe
DWORD WNetGetUserA(
[in] LPCSTR lpName,
[out] LPSTR lpUserName,
[in, out] LPDWORD lpnLength
);
Paramètres
[in] lpName
Pointeur vers une constante chaîne null-terminated qui spécifie le nom d’un appareil local qui a été redirigé vers une ressource réseau, ou le nom distant d’une ressource réseau vers laquelle une connexion a été établie sans rediriger un appareil local.
Si ce paramètre est NULL ou la chaîne vide, le système retourne le nom de l’utilisateur actuel pour le processus.
[out] lpUserName
Pointeur vers une mémoire tampon qui reçoit le nom d’utilisateur null-terminated user name.
[in, out] lpnLength
Pointeur vers une variable qui spécifie la taille de la mémoire tampon lpUserName, en caractères. Si l’appel échoue, car la mémoire tampon n’est pas suffisamment grande, cette variable contient la taille de mémoire tampon requise.
Valeur de retour
Si la fonction réussit, la valeur de retour est NO_ERROR.
Si la fonction échoue, la valeur de retour est un code d’erreur système , par exemple l’une des valeurs suivantes.
Retourner le code | Description |
---|---|
|
L’appareil spécifié par le paramètre lpName n’est pas un appareil redirigé ni un nom de réseau connecté. |
|
D’autres entrées sont disponibles avec les appels suivants. |
|
Le réseau n’est pas disponible. |
|
Une erreur spécifique au réseau s’est produite. Pour obtenir une description de l’erreur, appelez la fonction WNetGetLastError |
|
Aucun des fournisseurs ne reconnaît le nom local comme ayant une connexion. Toutefois, le réseau n’est pas disponible pour au moins un fournisseur auquel la connexion peut appartenir. |
Remarques
La fonction WNetGetUser n’est pas consciente des partages sur le système de fichiers distribué (DFS). Si le nom spécifié par le paramètre lpName est un appareil local redirigé vers un partage DFS ou une ressource distante qui représente un partage DFS, la fonction WNetGetUser échoue avec ERROR_NOT_CONNECTED.
Exemples
L’exemple de code suivant montre comment utiliser la fonction WNetGetUser pour récupérer le nom de l’utilisateur associé à un appareil local redirigé ou à une ressource réseau distante.
#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);
}
}
Note
L’en-tête winnetwk.h définit WNetGetUser comme alias qui sélectionne automatiquement la version ANSI ou Unicode de cette fonction en fonction de la définition de la constante de préprocesseur UNICODE. Le mélange de l’utilisation de l’alias neutre en encodage avec du code qui n’est pas neutre en encodage peut entraîner des incompatibilités qui entraînent des erreurs de compilation ou d’exécution. Pour plus d’informations, consultez Conventions pour les prototypes de fonction.
Exigences
Exigence | Valeur |
---|---|
client minimum pris en charge | Windows 2000 Professionnel [applications de bureau uniquement] |
serveur minimum pris en charge | Windows 2000 Server [applications de bureau uniquement] |
plateforme cible | Windows |
d’en-tête | winnetwk.h |
bibliothèque | Mpr.lib |
DLL | Mpr.dll |
Voir aussi
récupération du nom d’utilisateur
Vue d’ensemble mise en réseau Windows (WNet)