Funzione WNetUseConnectionA (winnetwk.h)
La funzione WNetUseConnection
La funzione WNetUseConnection
Sintassi
DWORD WNetUseConnectionA(
[in] HWND hwndOwner,
[in] LPNETRESOURCEA lpNetResource,
[in] LPCSTR lpPassword,
[in] LPCSTR lpUserId,
[in] DWORD dwFlags,
[out] LPSTR lpAccessName,
[in, out] LPDWORD lpBufferSize,
[out] LPDWORD lpResult
);
Parametri
[in] hwndOwner
Handle in una finestra che il provider di risorse di rete può usare come finestra di proprietario per le finestre di dialogo. Usare questo parametro se si imposta il valore CONNECT_INTERACTIVE nel parametro
[in] lpNetResource
Puntatore a una struttura
È necessario specificare i membri seguenti della struttura di NETRESOURCE
La funzione WNetUseConnection
[in] lpPassword
Puntatore a una costante nullstringa con terminazione che specifica una password da usare per stabilire la connessione di rete.
Se lpPassword è NULL, la funzione usa la password predefinita corrente associata all'utente specificato da lpUserID.
Se lpPassword punta a una stringa vuota, la funzione non usa una password.
Se la connessione non riesce a causa di una password non valida e il valore CONNECT_INTERACTIVE viene impostato nel parametro dwFlags
[in] lpUserId
Puntatore a una costante nullstringa con terminazione che specifica un nome utente per la connessione.
Se lpUserID è NULL, la funzione usa il nome utente predefinito. Il contesto utente per il processo fornisce il nome utente predefinito.
Il parametro lpUserID viene specificato quando gli utenti vogliono connettersi a una risorsa di rete per cui sono stati assegnati un nome utente o un account diverso dal nome utente o dall'account predefinito.
La stringa nome utente rappresenta un contesto di sicurezza . Può essere specifico di un provider di rete.
[in] dwFlags
Set di flag di bit che descrivono la connessione. Questo parametro può essere qualsiasi combinazione dei valori seguenti.
Valore | Significato |
---|---|
|
Se questo flag è impostato, il sistema operativo può interagire con l'utente a scopo di autenticazione. |
|
Questo flag indica al sistema di non usare impostazioni predefinite per nomi utente o password senza offrire all'utente la possibilità di fornire un'alternativa. Questo flag viene ignorato a meno che non sia impostato anche CONNECT_INTERACTIVE. |
|
Questo flag forza il reindirizzamento di un dispositivo locale quando si effettua la connessione.
Se il lpLocalName membro di NETRESOURCE specifica un dispositivo locale da reindirizzare, questo flag non ha alcun effetto, perché il sistema operativo tenta comunque di reindirizzare il dispositivo specificato. Quando il sistema operativo sceglie automaticamente un dispositivo locale, il membro dwType Se questo flag non è impostato, un dispositivo locale viene scelto automaticamente per il reindirizzamento solo se la rete richiede il reindirizzamento di un dispositivo locale. Windows XP: Quando il sistema assegna automaticamente lettere di unità di rete, le lettere vengono assegnate a partire da Z:, quindi Y:, e terminando con C:. In questo modo si riduce il conflitto tra lettere di unità per accesso (ad esempio lettere di unità di rete) e lettere di unità globali (ad esempio le unità disco). Si noti che le versioni precedenti assegnano lettere di unità che iniziano con C: e terminano con Z:. |
|
Questo flag indica al sistema operativo di archiviare la connessione alla risorsa di rete.
Se questo flag di bit è impostato, il sistema operativo tenta automaticamente di ripristinare la connessione quando l'utente accede. Il sistema memorizza solo le connessioni riuscite che reindirizzano i dispositivi locali. Non ricorda le connessioni non riuscite o senza dispositivo. Una connessione senza dispositivo si verifica quando lpLocalName è NULL o quando punta a una stringa vuota. Se questo flag di bit è chiaro, il sistema operativo non ripristina automaticamente la connessione all'accesso. |
|
Se questo flag è impostato, il sistema operativo chiede all'utente di eseguire l'autenticazione usando la riga di comando anziché un'interfaccia utente grafica (GUI). Questo flag viene ignorato a meno che non sia impostato anche CONNECT_INTERACTIVE.
Windows 2000/NT e Windows Me/98/95: Questo valore non è supportato. |
|
Se questo flag è impostato e il sistema operativo richiede una credenziale, le credenziali devono essere salvate dal gestore delle credenziali. Se gestione credenziali è disabilitato per la sessione di accesso del chiamante o se il provider di rete non supporta il salvataggio delle credenziali, questo flag viene ignorato. Questo flag viene ignorato anche a meno che non si imposti il flag di CONNECT_COMMANDLINE.
Windows 2000/NT e Windows Me/98/95: Questo valore non è supportato. |
[out] lpAccessName
Puntatore a un buffer che riceve le richieste di sistema sulla connessione. Questo parametro può essere NULL.
Se si specifica questo parametro e il membro
In caso contrario, il nome copiato nel buffer è quello di una risorsa remota. Se specificato, questo buffer deve essere almeno grande come la stringa a cui punta il membro lpRemoteName.
[in, out] lpBufferSize
Puntatore a una variabile che specifica le dimensioni del buffer lpAccessName, in caratteri. Se la chiamata non riesce perché il buffer non è sufficientemente grande, la funzione restituisce le dimensioni del buffer necessarie in questa posizione. Per altre informazioni, vedere le descrizioni del parametro
[out] lpResult
Puntatore a una variabile che riceve informazioni aggiuntive sulla connessione. Questo parametro può essere il valore seguente.
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 |
---|---|
|
Il chiamante non ha accesso alla risorsa di rete. |
|
Il dispositivo locale specificato dal membro lpLocalName è già connesso a una risorsa di rete. |
|
Il valore specificato da lpLocalName non è valido. |
|
Il valore specificato dal membro lpRemoteName non è accettabile per nessun provider di risorse di rete perché il nome della risorsa non è valido o perché la risorsa denominata non può essere individuata. |
|
Il valore specificato dal membro |
|
Il tentativo di effettuare la connessione è stato annullato dall'utente tramite una finestra di dialogo da uno dei provider di risorse di rete o da una risorsa chiamata. |
|
Si è verificato un errore specifico della rete. Per ottenere una descrizione dell'errore, chiamare la funzione WNetGetLastError |
|
Il chiamante ha passato un puntatore a un buffer a cui non è possibile accedere. |
|
Questo errore è il risultato di una delle condizioni seguenti:
|
|
La password specificata non è valida e il flag CONNECT_INTERACTIVE non è impostato. |
|
Il buffer lpAccessName è troppo piccolo.
Se un dispositivo locale viene reindirizzato, il buffer deve essere sufficientemente grande da contenere il nome del dispositivo locale. In caso contrario, il buffer deve essere sufficientemente grande da contenere la stringa a cui punta lpRemoteNameo il nome della risorsa connettibile a cui punta l'alias lpRemoteName. Se viene restituito questo errore, non è stata stabilita alcuna connessione. |
|
Il sistema operativo non può scegliere automaticamente un reindirizzamento locale perché tutti i dispositivi locali validi sono in uso. |
|
Impossibile completare l'operazione, perché un componente di rete non è avviato o perché il nome della risorsa specificato non viene riconosciuto. |
|
La rete non è disponibile. |
Osservazioni
Windows Server 2003 e Windows XP: Le funzioni WNet creano ed eliminano lettere di unità di rete nello spazio dei nomi dei dispositivi MS-DOS associato a una sessione di accesso perché i dispositivi MS-DOS sono identificati da AuthenticationID. AuthenticationID è l'identificatore univoco locale o LUID associato a una sessione di accesso. Ciò può influire sulle applicazioni che chiamano una delle funzioni WNet per creare una lettera di unità di rete con un accesso utente, ma eseguire una query per le lettere di unità di rete esistenti con un accesso utente diverso. Un esempio di questa situazione può essere quando viene creato il secondo accesso di un utente all'interno di una sessione di accesso, ad esempio chiamando la funzione CreateProcessAsUser e il secondo accesso esegue un'applicazione che chiama la funzione GetLogicalDrives. getLogicalDrives non restituisce lettere di unità di rete create da una funzione WNet sotto il primo accesso. Si noti che nell'esempio precedente la prima sessione di accesso esiste ancora e l'esempio può essere applicato a qualsiasi sessione di accesso, inclusa una sessione di Servizi terminal. Per altre informazioni, vedere Definizione di un nome di dispositivo MS-DOS.
Nota
L'intestazione winnetwk.h definisce WNetUseConnection 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
Panoramica rete Windows