Função NetGroupEnum (lmaccess.h)

A função NetGroupEnum recupera informações sobre cada grupo global no banco de dados de segurança, que é o banco de dados SAM (gerenciador de contas de segurança) ou, no caso de controladores de domínio, o Active Directory.

A função NetQueryDisplayInformation fornece um mecanismo eficiente para enumerar grupos globais. Quando possível, é recomendável que você use NetQueryDisplayInformation em vez da função NetGroupEnum .

Sintaxe

NET_API_STATUS NET_API_FUNCTION NetGroupEnum(
  [in]      LPCWSTR    servername,
  [in]      DWORD      level,
  [out]     LPBYTE     *bufptr,
  [in]      DWORD      prefmaxlen,
  [out]     LPDWORD    entriesread,
  [out]     LPDWORD    totalentries,
  [in, out] PDWORD_PTR resume_handle
);

Parâmetros

[in] servername

Ponteiro para uma cadeia de caracteres constante que especifica o nome DNS ou NetBIOS 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
0
Retornar o nome do grupo global. O parâmetro bufptr aponta para uma matriz de estruturas GROUP_INFO_0 .
1
Retornar o nome do grupo global e um comentário. O parâmetro bufptr aponta para uma matriz de estruturas GROUP_INFO_1 .
2
Retornar informações detalhadas sobre o grupo global. O parâmetro bufptr aponta para uma matriz de estruturas GROUP_INFO_2 . Observe que, no Windows XP e posterior, é recomendável que você use GROUP_INFO_3 em vez disso.
3
Retornar informações detalhadas sobre o grupo global. O parâmetro bufptr aponta para uma matriz de estruturas GROUP_INFO_3 .

Windows 2000: Não há suporte para esse nível.

[out] bufptr

Ponteiro para o buffer para receber a estrutura de informações do grupo global. O formato desses dados depende do valor do parâmetro level .

O sistema aloca a memória para esse buffer. Você deve chamar a função NetApiBufferFree para desalocar a memória. Observe que você deve liberar o buffer mesmo que a função falhe com ERROR_MORE_DATA.

[in] prefmaxlen

Especifica o comprimento máximo preferencial dos dados retornados, em bytes. Se você especificar MAX_PREFERRED_LENGTH, a função alocará a quantidade de memória necessária para armazenar os dados. Se você especificar outro valor nesse parâmetro, ele poderá restringir o número de bytes retornados pela função. Se o tamanho do buffer for insuficiente para manter todas as entradas, a função retornará ERROR_MORE_DATA. Para obter mais informações, consulte Buffers de função de gerenciamento de rede e Comprimentos de buffer de função de gerenciamento de rede.

[out] entriesread

Ponteiro para um valor que recebe a contagem de elementos realmente enumerados.

[out] totalentries

Ponteiro para um valor que recebe o número total de entradas que poderiam ter sido enumeradas da posição de currículo atual. O número total de entradas é apenas uma dica. Para obter mais informações sobre como determinar o número exato de entradas, consulte a seção Comentários a seguir.

[in, out] resume_handle

Ponteiro para uma variável que contém um identificador de retomada usado para continuar a enumeração de grupo global. O identificador deve ser zero na primeira chamada e deixado inalterado para chamadas subsequentes. Se esse parâmetro for NULL, nenhum identificador de retomada será armazenado.

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
ERROR_ACCESS_DENIED
O usuário não tem acesso às informações solicitadas.
NERR_InvalidComputer
O nome do computador é inválido.
ERROR_MORE_DATA
Mais entradas estão disponíveis. Especifique um buffer grande o suficiente para receber todas as entradas.

Comentários

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 grupo de gerenciamento de rede. Para obter mais informações, consulte IADsGroup.

Se você chamar essa função em um controlador de domínio que está executando o Active Directory, o acesso será permitido ou negado com base na ACL (lista de controle de acesso) do objeto protegível. A ACL padrão permite que todos os usuários autenticados e membros do grupo "Acesso compatível com o Pré-Windows 2000" exibam as informações. Se você chamar essa função em um servidor membro ou estação de trabalho, todos os usuários autenticados poderão exibir as informações. Para obter informações sobre acesso anônimo e restringir o acesso anônimo nessas plataformas, consulte Requisitos de segurança para as funções de gerenciamento de rede. Para obter mais informações sobre ACLs, ACEs e tokens de acesso, consulte Controle de Acesso Model.

A função retorna apenas informações para as quais o chamador tem acesso de Leitura. O chamador deve ter acesso de Conteúdo de Lista ao objeto Domain e enumerar todo o acesso ao domínio SAM no objeto servidor SAM localizado no contêiner Do sistema.

Para determinar o número total exato de grupos, você deve enumerar a árvore inteira, que pode ser uma operação dispendiosa. Para enumerar a árvore inteira, use o parâmetro resume_handle para continuar a enumeração para chamadas consecutivas e use o parâmetro entriesread para acumular o número total de grupos. Se o aplicativo estiver se comunicando com um controlador de domínio, considere usar o Provedor LDAP ADSI para recuperar esse tipo de dados com mais eficiência. O Provedor LDAP ADSI implementa um conjunto de objetos ADSI que dão suporte a várias interfaces ADSI. Para obter mais informações, consulte Provedores de Serviços ADSI.

Os nomes de conta de usuário são limitados a 20 caracteres e os nomes de grupo são limitados a 256 caracteres. Além disso, os nomes de conta não podem ser encerrados por um período e não podem incluir vírgulas ou qualquer um dos seguintes caracteres imprimíveis: ", /, , [, ], :, |, <, >, +, =, ;, ?, *. Os nomes também não podem incluir caracteres no intervalo de 1 a 31, que são não imprimíveis.

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 lmaccess.h (inclua Lm.h)
Biblioteca Netapi32.lib
DLL Netapi32.dll

Confira também

GROUP_INFO_0

GROUP_INFO_1

GROUP_INFO_3

Funções de grupo

NetApiBufferFree

NetGroupGetInfo

NetGroupGetUsers

NetQueryDisplayInformation

Funções de gerenciamento de rede

Visão geral do gerenciamento de rede