Função WNetOpenEnumA (winnetwk.h)

A função WNetOpenEnum inicia uma enumeração de recursos de rede ou conexões existentes. Você pode continuar a enumeração chamando a função WNetEnumResource .

Sintaxe

DWORD WNetOpenEnumA(
  [in]  DWORD          dwScope,
  [in]  DWORD          dwType,
  [in]  DWORD          dwUsage,
  [in]  LPNETRESOURCEA lpNetResource,
  [out] LPHANDLE       lphEnum
);

Parâmetros

[in] dwScope

Escopo da enumeração. Esse parâmetro pode usar um dos valores a seguir.

Valor Significado
RESOURCE_CONNECTED
Enumerar todos os recursos conectados no momento. A função ignora o parâmetro dwUsage . Para obter mais informações, consulte a seção Comentários a seguir.
RESOURCE_CONTEXT
Enumerar somente recursos no contexto de rede do chamador. Especifique esse valor para uma exibição de Bairro de Rede. A função ignora o parâmetro dwUsage .
RESOURCE_GLOBALNET
Enumerar todos os recursos na rede.
RESOURCE_REMEMBERED
Enumerar todas as conexões (persistentes) lembradas. A função ignora o parâmetro dwUsage .

[in] dwType

Tipos de recursos a serem enumerados. Esse parâmetro pode ser uma combinação dos seguintes valores.

Valor Significado
RESOURCETYPE_ANY
Todos os recursos. Esse valor não pode ser combinado com RESOURCETYPE_DISK ou RESOURCETYPE_PRINT.
RESOURCETYPE_DISK
Todos os recursos de disco.
RESOURCETYPE_PRINT
Todos os recursos de impressão.
 

Se um provedor de rede não puder distinguir entre recursos de impressão e disco, ele poderá enumerar todos os recursos.

[in] dwUsage

Tipo de uso de recurso a ser enumerado. Esse parâmetro pode ser uma combinação dos seguintes valores.

Valor Significado
0
Todos os recursos.
RESOURCEUSAGE_CONNECTABLE
Todos os recursos conectáveis.
RESOURCEUSAGE_CONTAINER
Todos os recursos de contêiner.
RESOURCEUSAGE_ATTACHED
A configuração desse valor força o WNetOpenEnum a falhar se o usuário não estiver autenticado. A função falhará mesmo que a rede permita a enumeração sem autenticação.
RESOURCEUSAGE_ALL
Definir esse valor é equivalente a definir RESOURCEUSAGE_CONNECTABLE, RESOURCEUSAGE_CONTAINER e RESOURCEUSAGE_ATTACHED.
 

Esse parâmetro é ignorado, a menos que o parâmetro dwScope seja igual a RESOURCE_GLOBALNET. Para obter mais informações, consulte a seção Comentários a seguir.

[in] lpNetResource

Ponteiro para uma estrutura NETRESOURCE que especifica o contêiner a ser enumerado. Se o parâmetro dwScope não for RESOURCE_GLOBALNET, esse parâmetro deverá ser NULL.

Se esse parâmetro for NULL, a raiz da rede será assumida. (O sistema organiza uma rede como uma hierarquia; a raiz é o contêiner mais alto da rede.)

Se esse parâmetro não for NULL, ele deverá apontar para uma estrutura NETRESOURCE . Essa estrutura pode ser preenchida pelo aplicativo ou pode ser retornada por uma chamada para a função WNetEnumResource . A estrutura NETRESOURCE deve especificar um recurso de contêiner; ou seja, o valor RESOURCEUSAGE_CONTAINER deve ser especificado no parâmetro dwUsage .

Para enumerar todos os recursos de rede, um aplicativo pode iniciar a enumeração chamando WNetOpenEnum com o parâmetro lpNetResource definido como NULL e, em seguida, usar o identificador retornado para chamar WNetEnumResource para enumerar recursos. Se um dos recursos na matriz NETRESOURCE retornado pela função WNetEnumResource for um recurso de contêiner, você poderá chamar WNetOpenEnum para abrir o recurso para enumeração adicional.

[out] lphEnum

Ponteiro para um identificador de enumeração que pode ser usado em uma chamada subsequente para WNetEnumResource.

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_CONTAINER
O parâmetro lpNetResource não aponta para um contêiner.
ERROR_INVALID_PARAMETER
O dwScope ou o parâmetro dwType são inválidos ou há uma combinação inválida de parâmetros.
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_INVALID_ADDRESS
Um nome de recurso de rede remota fornecido na estrutura NETRESOURCE resolvido para um endereço de rede inválido.

Comentários

Se o parâmetro dwScope for igual a RESOURCE_CONNECTED, uma conexão de rede feita usando a rede do Microsoft LAN Manager será omitida da enumeração se a conexão tiver sido feita por um aplicativo em execução em uma sessão de logon diferente do aplicativo que chama a função WNetOpenEnum . Isso ocorre porque as conexões feitas usando o Microsoft LAN Manager são visíveis apenas para aplicativos em execução na mesma sessão de logon que o aplicativo que fez a conexão. (Para incluir a conexão na enumeração, não é suficiente que o aplicativo esteja em execução na conta de usuário que criou a conexão.)

A interpretação exata de RESOURCE_CONTEXT no parâmetro dwScope depende das redes instaladas no computador.

A função WNetOpenEnum é usada para iniciar a enumeração dos recursos em um único contêiner. Os exemplos a seguir mostram a estrutura hierárquica de uma rede do Microsoft LAN Manager e uma rede Novell NetWare e identificam os contêineres.

LanMan (container, in this case the provider) 
  ACCOUNTING (container, in this case the domain) 
    \\ACCTSPAY (container, in this case the server) 
      PAYFILES (disk) 
      LASERJET (print) 
 
NetWare (container, in this case the provider) 
  MARKETING (container, in this case the server) 
    SYS (disk, first one on any NetWare server) 
    ANOTHERVOLUME (disk) 
    LASERJET (print) 

Exemplos

Para obter um exemplo de código que ilustra uma função definida pelo aplicativo que enumera todos os recursos em uma rede, consulte Enumerando Recursos de Rede.

Observação

O cabeçalho winnetwk.h define WNetOpenEnum 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

NETRESOURCE

WNetCloseEnum

Wnetenumresource

Visão geral da rede do Windows (WNet)

Funções de rede do Windows