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 |
---|---|
|
O dispositivo especificado pelo parâmetro lpName não é um dispositivo redirecionado ou um nome de rede conectado. |
|
Mais entradas estão disponíveis com chamadas subsequentes. |
|
A rede não está disponível. |
|
Ocorreu um erro específico da rede. Para obter uma descrição do erro, chame a função WNetGetLastError . |
|
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 |