WNetGetUserA-Funktion (winnetwk.h)
Die WNetGetUser-Funktion ruft den aktuellen Standardbenutzernamen oder den Benutzernamen ab, der zum Herstellen einer Netzwerkverbindung verwendet wird.
Syntax
DWORD WNetGetUserA(
[in] LPCSTR lpName,
[out] LPSTR lpUserName,
[in, out] LPDWORD lpnLength
);
Parameter
[in] lpName
Ein Zeiger auf eine konstante NULL-Zeichenfolge, die entweder den Namen eines lokalen Geräts angibt, das an eine Netzwerkressource umgeleitet wurde, oder den Remotenamen einer Netzwerkressource, zu der eine Verbindung hergestellt 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 mit NULL beendeten Benutzernamen empfängt.
[in, out] lpnLength
Ein Zeiger auf eine Variable, die die Größe des puffers lpUserName in Zeichen angibt. Wenn der Aufruf fehlschlägt, weil 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 lpName-Parameter angegebene Gerät ist kein umgeleitetes Gerät oder ein verbundener Netzwerkname. |
|
Weitere Einträge sind bei nachfolgenden Aufrufen verfügbar. |
|
Das Netzwerk ist nicht verfügbar. |
|
Es ist ein netzwerkspezifischer Fehler aufgetreten. Rufen Sie die WNetGetLastError-Funktion auf, um eine Beschreibung des Fehlers zu erhalten. |
|
Keiner der Anbieter erkennt, dass der lokale Name eine Verbindung aufweist. Das Netzwerk ist jedoch nicht für mindestens einen Anbieter verfügbar, zu dem die Verbindung möglicherweise gehört. |
Hinweise
Die WNetGetUser-Funktion kennt keine Freigaben im verteilten Dateisystem (DFS). Wenn der durch den lpName-Parameter 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
Im folgenden Codebeispiel wird 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);
}
}
Hinweis
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 nicht codierungsneutralem Code 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 |
---|---|
Unterstützte Mindestversion (Client) | Windows 2000 Professional [nur Desktop-Apps] |
Unterstützte Mindestversion (Server) | Windows 2000 Server [nur Desktop-Apps] |
Zielplattform | Windows |
Kopfzeile | winnetwk.h |
Bibliothek | Mpr.lib |
DLL | Mpr.dll |