Função WNetGetUserA (winnetwk.h)

A função WNetGetUser recupera o nome de usuário padrão atual ou o nome de usuário usado para estabelecer uma conexão de rede.

Sintaxe

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

Parâmetros

[in] lpName

Um ponteiro para uma cadeia de caracteres terminada em nulo constante que especifica o nome de um dispositivo local que foi redirecionado para um recurso de rede ou o nome remoto de um recurso de rede para o qual uma conexão foi feita sem redirecionar um dispositivo local.

Se esse parâmetro for NULL ou a cadeia de caracteres vazia, o sistema retornará o nome do usuário atual para o processo.

[out] lpUserName

Um ponteiro para um buffer que recebe o nome de usuário terminado em nulo.

[in, out] lpnLength

Um ponteiro para uma variável que especifica o tamanho do buffer lpUserName , em caracteres. Se a chamada falhar porque o buffer não é grande o suficiente, essa variável contém o tamanho do buffer necessário.

Retornar valor

Se a função for bem-sucedida, o valor retornado será NO_ERROR.

Se a função falhar, o valor retornado será um código de erro do sistema, como um dos valores a seguir.

Código de retorno Descrição
ERROR_NOT_CONNECTED
O dispositivo especificado pelo parâmetro lpName não é um dispositivo redirecionado ou um nome de rede conectado.
ERROR_MORE_DATA
Mais entradas estão disponíveis com chamadas subsequentes.
ERROR_NO_NETWORK
A rede não está disponível.
ERROR_EXTENDED_ERROR
Ocorreu um erro específico da rede. Para obter uma descrição do erro, chame a função WNetGetLastError .
ERROR_NO_NET_OR_BAD_PATH
Nenhum dos provedores reconhece o nome local como tendo uma conexão. No entanto, a rede não está disponível para pelo menos um provedor ao qual a conexão pode pertencer.

Comentários

A função WNetGetUser não está ciente dos compartilhamentos no DFS (Sistema de Arquivos Distribuído). Se o nome especificado pelo parâmetro lpName for um dispositivo local redirecionado para um compartilhamento DFS ou um recurso remoto que representa um compartilhamento DFS, a função WNetGetUser falhará com ERROR_NOT_CONNECTED.

Exemplos

O exemplo de código a seguir ilustra como usar a função WNetGetUser para recuperar o nome do usuário associado a um dispositivo local redirecionado ou a um recurso de rede remota.

#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);
    }
}


Observação

O cabeçalho winnetwk.h define WNetGetUser como um alias que seleciona automaticamente a versão ANSI ou Unicode dessa função com base na definição da constante de pré-processador UNICODE. Misturar o uso do alias neutro de codificação com código que não seja neutro em codificação pode levar a incompatibilidades que resultam em erros de compilação ou de runtime. Para obter mais informações, consulte Convenções para protótipos de função.

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows 2000 Professional [somente aplicativos da área de trabalho]
Servidor mínimo com suporte Windows 2000 Server [somente aplicativos da área de trabalho]
Plataforma de Destino Windows
Cabeçalho winnetwk.h
Biblioteca Mpr.lib
DLL Mpr.dll

Confira também

Recuperando o nome de usuário

WNetGetConnection

Visão geral da rede do Windows (WNet)

Funções de rede do Windows