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 chaîne constante terminée par un caractère Null qui spécifie soit le nom d’un appareil local qui a été redirigé vers une ressource réseau, soit le nom distant d’une ressource réseau vers laquelle une connexion a été établie sans rediriger un appareil local.
Si ce paramètre a la valeur 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 terminé par null.
[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 parce que la mémoire tampon n’est pas suffisamment grande, cette variable contient la taille de mémoire tampon requise.
Valeur retournée
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, comme l’une des valeurs suivantes.
Code de retour | Description |
---|---|
|
L’appareil spécifié par le paramètre lpName n’est pas un appareil redirigé ou un nom 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 ne connaît pas les 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);
}
}
Notes
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. La combinaison 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.
Configuration requise
Condition requise | Valeur |
---|---|
Client minimal pris en charge | Windows 2000 Professionnel [applications de bureau uniquement] |
Serveur minimal pris en charge | Windows 2000 Server [applications de bureau uniquement] |
Plateforme cible | Windows |
En-tête | winnetwk.h |
Bibliothèque | Mpr.lib |
DLL | Mpr.dll |
Voir aussi
Récupération du nom d’utilisateur