Condividi tramite


Funzione WNetOpenEnumA (winnetwk.h)

La funzione WNetOpenEnum avvia un'enumerazione delle risorse di rete o delle connessioni esistenti. È possibile continuare l'enumerazione chiamando la funzione WNetEnumResource .

Sintassi

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

Parametri

[in] dwScope

Ambito dell'enumerazione. Questo parametro può essere uno dei valori seguenti.

Valore Significato
RESOURCE_CONNECTED
Enumerare tutte le risorse attualmente connesse. La funzione ignora il parametro dwUsage. Per altre informazioni, vedere la sezione Osservazioni seguente.
RESOURCE_CONTEXT
Enumerare solo le risorse nel contesto di rete del chiamante. Specificare questo valore per una visualizzazione Quartiere di rete. La funzione ignora il parametro dwUsage.
RESOURCE_GLOBALNET
Enumerare tutte le risorse nella rete.
RESOURCE_REMEMBERED
Enumerare tutte le connessioni memorizzate (persistenti). La funzione ignora il parametro dwUsage.

[in] dwType

Tipi di risorse da enumerare. Questo parametro può essere una combinazione dei valori seguenti.

Valore Significato
RESOURCETYPE_ANY
Tutte le risorse. Questo valore non può essere combinato con RESOURCETYPE_DISK o RESOURCETYPE_PRINT.
RESOURCETYPE_DISK
Tutte le risorse del disco.
RESOURCETYPE_PRINT
Tutte le risorse di stampa.
 

Se un provider di rete non riesce a distinguere tra le risorse di stampa e disco, può enumerare tutte le risorse.

[in] dwUsage

Tipo di utilizzo delle risorse da enumerare. Questo parametro può essere una combinazione dei valori seguenti.

Valore Significato
0
Tutte le risorse.
RESOURCEUSAGE_CONNECTABLE
Tutte le risorse collegabili.
RESOURCEUSAGE_CONTAINER
Tutte le risorse del contenitore.
RESOURCEUSAGE_ATTACHED
Se si imposta questo valore, WNetOpenEnum non riesce se l'utente non è autenticato. La funzione ha esito negativo anche se la rete consente l'enumerazione senza autenticazione.
RESOURCEUSAGE_ALL
L'impostazione di questo valore equivale all'impostazione di RESOURCEUSAGE_CONNECTABLE, RESOURCEUSAGE_CONTAINER e RESOURCEUSAGE_ATTACHED.
 

Questo parametro viene ignorato a meno che il parametro dwScope sia uguale a RESOURCE_GLOBALNET. Per altre informazioni, vedere la sezione Osservazioni seguente.

[in] lpNetResource

Puntatore a una struttura di NETRESOURCE che specifica il contenitore da enumerare. Se il parametro dwScope non è RESOURCE_GLOBALNET, questo parametro deve essere NULL.

Se questo parametro è NULL, si presuppone la radice della rete. Il sistema organizza una rete come gerarchia. La radice è il contenitore più in alto nella rete.

Se questo parametro non è null, deve puntare a una struttura di NETRESOURCE . Questa struttura può essere compilata dall'applicazione oppure può essere restituita da una chiamata alla funzione WNetEnumResource . La struttura NETRESOURCE deve specificare una risorsa contenitore; ovvero, il valore RESOURCEUSAGE_CONTAINER deve essere specificato nel parametro dwUsage.

Per enumerare tutte le risorse di rete, un'applicazione può iniziare l'enumerazione chiamando WNetOpenEnum con il parametro lpNetResource impostato su NULLe quindi usare l'handle restituito per chiamare WNetEnumResource per enumerare le risorse. Se una delle risorse nella matrice NETRESOURCE restituita dalla funzione WNetEnumResource è una risorsa contenitore, è possibile chiamare WNetOpenEnum per aprire la risorsa per un'ulteriore enumerazione.

[out] lphEnum

Puntatore a un handle di enumerazione che può essere usato in una chiamata successiva a WNetEnumResource.

Valore restituito

Se la funzione ha esito positivo, il valore restituito è NO_ERROR.

Se la funzione ha esito negativo, il valore restituito è un codice di errore di sistema , ad esempio uno dei valori seguenti.

Codice restituito Descrizione
ERROR_NOT_CONTAINER
Il parametro lpNetResource non punta a un contenitore.
ERROR_INVALID_PARAMETER
Il dwScope o il parametro dwType non è valido oppure esiste una combinazione non valida di parametri.
ERROR_NO_NETWORK
La rete non è disponibile.
ERROR_EXTENDED_ERROR
Si è verificato un errore specifico della rete. Per ottenere una descrizione dell'errore, chiamare la funzione WNetGetLastError .
ERROR_INVALID_ADDRESS
Nome della risorsa di rete remota specificato nella struttura di NETRESOURCE risolto in un indirizzo di rete non valido.

Osservazioni

Se il parametro dwScope è uguale a RESOURCE_CONNECTED, una connessione di rete effettuata tramite la rete di Microsoft LAN Manager viene omessa dall'enumerazione se la connessione è stata effettuata da un'applicazione in esecuzione in una sessione di accesso diversa rispetto all'applicazione che chiama la funzione WNetOpenEnum . Ciò è dovuto al fatto che le connessioni effettuate con Microsoft LAN Manager sono visibili solo alle applicazioni in esecuzione nella stessa sessione di accesso dell'applicazione che ha effettuato la connessione. Per includere la connessione nell'enumerazione, non è sufficiente che l'applicazione sia in esecuzione nell'account utente che ha creato la connessione.

L'interpretazione esatta dei RESOURCE_CONTEXT nel parametro dwScope dipende dalle reti installate nel computer.

La funzione WNetOpenEnum viene usata per iniziare l'enumerazione delle risorse in un singolo contenitore. Gli esempi seguenti illustrano la struttura gerarchica di una rete Microsoft LAN Manager e una rete Novell NetWare e identificano i contenitori.

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) 

Esempi

Per un esempio di codice che illustra una funzione definita dall'applicazione che enumera tutte le risorse in una rete, vedere Enumerazione delle risorse di rete.

Nota

L'intestazione winnetwk.h definisce WNetOpenEnum come alias che seleziona automaticamente la versione ANSI o Unicode di questa funzione in base alla definizione della costante del preprocessore UNICODE. La combinazione dell'utilizzo dell'alias indipendente dalla codifica con il codice non indipendente dalla codifica può causare mancate corrispondenze che generano errori di compilazione o di runtime. Per altre informazioni, vedere convenzioni di per i prototipi di funzioni.

Fabbisogno

Requisito Valore
client minimo supportato Windows 2000 Professional [solo app desktop]
server minimo supportato Windows 2000 Server [solo app desktop]
piattaforma di destinazione Finestre
intestazione winnetwk.h
libreria Mpr.lib
dll Mpr.dll

Vedere anche

NETRESOURCE

WNetCloseEnum

WNetEnumResource

Panoramica rete Windows

Funzioni di rete di Windows