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


Функция WNetGetUserA (winnetwk.h)

Функция WNetGetUser извлекает текущее имя пользователя по умолчанию или имя пользователя, используемое для установки сетевого подключения.

Синтаксис

DWORD WNetGetUserA(
  [in]      LPCSTR  lpName,
  [out]     LPSTR   lpUserName,
  [in, out] LPDWORD lpnLength
);

Параметры

[in] lpName

Указатель на константную строку, завершающуюся значением NULL, которая указывает либо имя локального устройства, которое было перенаправлено на сетевой ресурс, либо удаленное имя сетевого ресурса, к которому было установлено подключение без перенаправления локального устройства.

Если этот параметр имеет значение NULL или пустую строку, система возвращает имя текущего пользователя для процесса.

[out] lpUserName

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

[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 Professional [только классические приложения]
Минимальная версия сервера Windows 2000 Server [только классические приложения]
Целевая платформа Windows
Header winnetwk.h
Библиотека Mpr.lib
DLL Mpr.dll

См. также раздел

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

WNetGetConnection

Общие сведения о сети Windows (WNet)

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