WNetGetUserA-Funktion (winnetwk.h)
Die WNetGetUser--Funktion ruft den aktuellen Standardbenutzernamen oder den Benutzernamen ab, mit dem eine Netzwerkverbindung hergestellt wird.
Syntax
DWORD WNetGetUserA(
[in] LPCSTR lpName,
[out] LPSTR lpUserName,
[in, out] LPDWORD lpnLength
);
Parameter
[in] lpName
Ein Zeiger auf eine Konstante null-terminated string, die entweder den Namen eines lokalen Geräts angibt, das an eine Netzwerkressource umgeleitet wurde, oder den Remotenamen einer Netzwerkressource, an die eine Verbindung vorgenommen wurde, ohne ein lokales Gerät umzuleiten.
Wenn dieser Parameter NULL- oder die leere Zeichenfolge ist, gibt das System den Namen des aktuellen Benutzers für den Prozess zurück.
[out] lpUserName
Ein Zeiger auf einen Puffer, der den null-terminated Benutzername empfängt.
[in, out] lpnLength
Ein Zeiger auf eine Variable, die die Größe des lpUserName- Puffers in Zeichen angibt. Wenn der Aufruf fehlschlägt, da der Puffer nicht groß genug ist, enthält diese Variable die erforderliche Puffergröße.
Rückgabewert
Wenn die Funktion erfolgreich ist, wird der Rückgabewert NO_ERROR.
Wenn die Funktion fehlschlägt, ist der Rückgabewert ein Systemfehlercode, z. B. einer der folgenden Werte.
Rückgabecode | Beschreibung |
---|---|
|
Das durch den parameter lpName angegebene Gerät ist kein umgeleitetes Gerät oder ein verbundener Netzwerkname. |
|
Weitere Einträge stehen bei nachfolgenden Aufrufen zur Verfügung. |
|
Das Netzwerk ist nicht verfügbar. |
|
Es ist ein netzwerkspezifischer Fehler aufgetreten. Rufen Sie zum Abrufen einer Beschreibung des Fehlers die WNetGetLastError--Funktion auf. |
|
Keiner der Anbieter erkennt den lokalen Namen als Verbindung. Das Netzwerk ist jedoch nicht für mindestens einen Anbieter verfügbar, zu dem die Verbindung gehören kann. |
Bemerkungen
Die WNetGetUser--Funktion ist nicht über Freigaben für das verteilte Dateisystem (Distributed File System, DFS) informiert. Wenn der durch den parameter lpName angegebene Name ein lokales Gerät ist, das an eine DFS-Freigabe oder eine Remoteressource umgeleitet wird, die eine DFS-Freigabe darstellt, schlägt die WNetGetUser--Funktion mit ERROR_NOT_CONNECTED fehl.
Beispiele
Das folgende Codebeispiel veranschaulicht, wie Sie die WNetGetUser--Funktion verwenden, um den Namen des Benutzers abzurufen, der einem umgeleiteten lokalen Gerät oder einer Remotenetzwerkressource zugeordnet ist.
#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);
}
}
Anmerkung
Der winnetwk.h-Header definiert WNetGetUser als Alias, der automatisch die ANSI- oder Unicode-Version dieser Funktion basierend auf der Definition der UNICODE-Präprozessorkonstante auswählt. Das Mischen der Verwendung des codierungsneutralen Alias mit Code, der nicht codierungsneutral ist, kann zu Nichtübereinstimmungen führen, die zu Kompilierungs- oder Laufzeitfehlern führen. Weitere Informationen finden Sie unter Konventionen für Funktionsprototypen.
Anforderungen
Anforderung | Wert |
---|---|
mindestens unterstützte Client- | Windows 2000 Professional [nur Desktop-Apps] |
mindestens unterstützte Server- | Windows 2000 Server [nur Desktop-Apps] |
Zielplattform- | Fenster |
Header- | winnetwk.h |
Library | Mpr.lib |
DLL- | Mpr.dll |
Siehe auch
übersicht über Windows Networking (WNet)