Поделиться через


Функция 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.

Если функция завершается ошибкой, возвращаемое значение является системным кодом ошибки, например одно из следующих значений.

Возвращаемый код Описание
ERROR_NOT_CONNECTED
Устройство, указанное параметром lpName, не является перенаправленным устройством или подключенным сетевым именем.
ERROR_MORE_DATA
Дополнительные записи доступны при последующих вызовах.
ERROR_NO_NETWORK
Сеть недоступна.
ERROR_EXTENDED_ERROR
Произошла ошибка, зависявшая от сети. Чтобы получить описание ошибки, вызовите функцию WNetGetLastError.
ERROR_NO_NET_OR_BAD_PATH
Ни один из поставщиков не распознает локальное имя как подключение. Однако сеть недоступна по крайней мере для одного поставщика, которому может принадлежать подключение.

Замечания

Функция WNetGetUser не знает общих папок в распределенной файловой системе (DFS). Если имя, указанное параметром lpName , является локальным устройством, перенаправленным на общую папку DFS или удаленный ресурс, представляющий общую папку DFS, функция WNetGetUser завершается сбоем с ERROR_NOT_CONNECTED.

Примеры

В следующем примере кода показано, как использовать функцию 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

См. также

получение имени пользователя

WNetGetConnection

Обзор сети Windows (WNet)

Сетевые функции Windows