Função NetServerGetInfo (lmserver.h)
A função NetServerGetInfo recupera informações de configuração atuais para o servidor especificado.
Sintaxe
NET_API_STATUS NET_API_FUNCTION NetServerGetInfo(
[in] LMSTR servername,
[in] DWORD level,
[out] LPBYTE *bufptr
);
Parâmetros
[in] servername
Ponteiro para uma cadeia de caracteres que especifica o nome do servidor remoto no qual a função deve ser executada. Se esse parâmetro for NULL, o computador local será usado.
[in] level
Especifica o nível de informações dos dados. Esse parâmetro pode usar um dos valores a seguir.
Valor | Significado |
---|---|
|
Retornar o nome do servidor e as informações da plataforma. O parâmetro bufptr aponta para uma estrutura SERVER_INFO_100 . |
|
Retornar o nome do servidor, o tipo e o software associado. O parâmetro bufptr aponta para uma estrutura SERVER_INFO_101 . |
|
Retornar o nome do servidor, o tipo, o software associado e outros atributos. O parâmetro bufptr aponta para uma estrutura SERVER_INFO_102 . |
[out] bufptr
Ponteiro para o buffer que recebe os dados. O formato desses dados depende do valor do parâmetro level .
Esse buffer é alocado pelo sistema e deve ser liberado usando a função NetApiBufferFree .
Valor retornado
Se a função for bem-sucedida, o valor retornado será NERR_Success.
Se a função falhar, o valor retornado poderá ser um dos códigos de erro a seguir.
Código de retorno | Descrição |
---|---|
|
O usuário não tem acesso às informações solicitadas. |
|
O valor especificado para o parâmetro level é inválido. |
|
O parâmetro especificado é inválido. |
|
Memória insuficiente disponível. |
|
O serviço de servidor não foi iniciado. |
Comentários
Somente o grupo local Administradores ou Operadores de Servidor, ou aqueles com associação de grupo De impressão ou operador de servidor, pode executar com êxito a função NetServerGetInfo no nível 102. Nenhuma associação de grupo especial é necessária para chamadas de nível 100 ou nível 101.
Se você estiver programando para o Active Directory, poderá chamar determinados métodos ADSI (Active Directory Service Interface) para obter a mesma funcionalidade que você pode obter chamando as funções do servidor de gerenciamento de rede. Para obter mais informações, consulte IADsComputer.
Exemplos
O exemplo de código a seguir demonstra como recuperar informações de configuração atuais para um servidor usando uma chamada para a função NetServerGetInfo . O exemplo chama NetServerGetInfo, especificando o nível de informações 101 (SERVER_INFO_101). Se a chamada for bem-sucedida, o código tentará identificar o tipo de servidor. Por fim, o exemplo libera a memória alocada para o buffer de informações.
#ifndef UNICODE
#define UNICODE
#endif
#pragma comment(lib, "netapi32.lib")
#include <stdio.h>
#include <windows.h>
#include <lm.h>
int wmain(int argc, wchar_t *argv[])
{
DWORD dwLevel = 101;
LPSERVER_INFO_101 pBuf = NULL;
NET_API_STATUS nStatus;
LPTSTR pszServerName = NULL;
if (argc > 2)
{
fwprintf(stderr, L"Usage: %s [\\\\ServerName]\n", argv[0]);
exit(1);
}
// The server is not the default local computer.
//
if (argc == 2)
pszServerName = (LPTSTR) argv[1];
//
// Call the NetServerGetInfo function, specifying level 101.
//
nStatus = NetServerGetInfo(pszServerName,
dwLevel,
(LPBYTE *)&pBuf);
//
// If the call succeeds,
//
if (nStatus == NERR_Success)
{
//
// Check for the type of server.
//
if ((pBuf->sv101_type & SV_TYPE_DOMAIN_CTRL) ||
(pBuf->sv101_type & SV_TYPE_DOMAIN_BAKCTRL) ||
(pBuf->sv101_type & SV_TYPE_SERVER_NT))
printf("This is a server\n");
else
printf("This is a workstation\n");
}
//
// Otherwise, print the system error.
//
else
fprintf(stderr, "A system error has occurred: %d\n", nStatus);
//
// Free the allocated memory.
//
if (pBuf != NULL)
NetApiBufferFree(pBuf);
return 0;
}
Requisitos
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 | lmserver.h (inclua Lm.h) |
Biblioteca | Netapi32.lib |
DLL | Netapi32.dll |
Confira também
Funções de gerenciamento de rede