Функция WNetGetUserA (winnetwk.h)
Функция WNetGetUser извлекает текущее имя пользователя по умолчанию или имя пользователя, используемое для установления сетевого подключения.
Синтаксис
DWORD WNetGetUserA(
[in] LPCSTR lpName,
[out] LPSTR lpUserName,
[in, out] LPDWORD lpnLength
);
Параметры
[in] lpName
Указатель на константу null-завершенную строку, которая указывает имя локального устройства, перенаправленного на сетевой ресурс, или удаленное имя сетевого ресурса, к которому было выполнено подключение, не перенаправляя локальное устройство.
Если этот параметр значение NULL или пустую строку, система возвращает имя текущего пользователя для процесса.
[out] lpUserName
Указатель на буфер, который получает имя пользователя null-terminated.
[in, out] lpnLength
Указатель на переменную, указывающую размер буфера lpUserName в символах. Если вызов завершается ошибкой, так как буфер недостаточно велик, эта переменная содержит требуемый размер буфера.
Возвращаемое значение
Если функция выполнена успешно, возвращаемое значение NO_ERROR.
Если функция завершается ошибкой, возвращаемое значение является системным кодом ошибки, например одно из следующих значений.
Возвращаемый код | Описание |
---|---|
|
Устройство, указанное параметром |
|
Дополнительные записи доступны при последующих вызовах. |
|
Сеть недоступна. |
|
Произошла ошибка, зависявшая от сети. Чтобы получить описание ошибки, вызовите функцию WNetGetLastError. |
|
Ни один из поставщиков не распознает локальное имя как подключение. Однако сеть недоступна по крайней мере для одного поставщика, которому может принадлежать подключение. |
Замечания
Функция WNetGetUser не знает общих папок в распределенной файловой системе (DFS). Если имя, указанное параметром lpName
Примеры
В следующем примере кода показано, как использовать функцию WNetGetUser для получения имени пользователя, связанного с перенаправленным локальным устройством или ресурсом удаленной сети.
#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);
}
}
Заметка
Заголовок winnetwk.h определяет WNetGetUser в качестве псевдонима, который автоматически выбирает версию ANSI или Юникод этой функции на основе определения константы препроцессора ЮНИКОДа. Сочетание использования псевдонима, нейтрального для кодирования, с кодом, не зависящим от кодирования, может привести к несоответствиям, которые приводят к ошибкам компиляции или среды выполнения. Дополнительные сведения см. в соглашениях о прототипах функций.
Требования
Требование | Ценность |
---|---|
минимальные поддерживаемые клиентские | Windows 2000 Профессиональный [только классические приложения] |
минимальный поддерживаемый сервер | Windows 2000 Server [только классические приложения] |
целевая платформа | Виндоус |
заголовка | winnetwk.h |
библиотеки |
Mpr.lib |
DLL | Mpr.dll |
См. также
Обзор сети Windows (WNet)