Funzione NetShareCheck (lmshare.h)
Controlla se un server condivide o meno un dispositivo.
Sintassi
NET_API_STATUS NET_API_FUNCTION NetShareCheck(
[in] LMSTR servername,
[in] LMSTR device,
[out] LPDWORD type
);
Parametri
[in] servername
Puntatore a una stringa che specifica il nome DNS o NetBIOS del server remoto in cui deve essere eseguita la funzione. Se questo parametro è NULL, viene utilizzato il computer locale.
[in] device
Puntatore a una stringa che specifica il nome del dispositivo per verificare la presenza di accesso condiviso.
[out] type
Puntatore a una variabile che riceve una maschera di bit di flag che specifica il tipo del dispositivo condiviso. Questo parametro viene impostato solo se la funzione restituisce correttamente.
È possibile specificare uno dei flag seguenti.
Valore | Significato |
---|---|
|
Unità disco rigido. |
|
Coda di stampa. |
|
Dispositivo di comunicazione. |
|
Comunicazione interprocesso (IPC). |
Inoltre, è possibile specificare uno o entrambi i flag seguenti.
Valore | Significato |
---|---|
|
Condivisione speciale riservata per la comunicazione interprocesso (IPC$) o l'amministrazione remota del server (ADMIN$). Può anche fare riferimento a condivisioni amministrative come C$, D$, E$e così via. Per altre informazioni, vedere Funzioni di condivisione di rete. |
|
Una condivisione temporanea. |
Valore restituito
Se la funzione ha esito positivo, il valore restituito viene NERR_Success.
Se la funzione ha esito negativo, il valore restituito può essere uno dei codici di errore seguenti.
Codice restituito | Descrizione |
---|---|
|
Memoria insufficiente disponibile. |
|
Il dispositivo non è condiviso. |
Commenti
Questa funzione si applica solo alle condivisioni SMB (Server Message Block). Per altri tipi di condivisioni, ad esempio DFS (Distributed File System) o WebDAV, usare le funzioni Di rete Windows (WNet), che supportano tutti i tipi di condivisioni.
Per eseguire correttamente la funzione NetShareCheck non è necessaria alcuna appartenenza a gruppi speciali.
Se si esegue la programmazione per Active Directory, è possibile chiamare determinati metodi ADSI (Active Directory Service Interface) per ottenere la stessa funzionalità che è possibile ottenere chiamando le funzioni di condivisione di gestione di rete. Per altre informazioni, vedere IADsFileShare.
Esempio
Nell'esempio di codice seguente viene illustrato come verificare se un server condivide un dispositivo usando una chiamata alla funzione NetShareCheck . La funzione restituisce il tipo di dispositivo condiviso, come descritto nella documentazione precedente per il parametro di tipo .
#ifndef UNICODE
#define UNICODE
#endif
#include <windows.h>
#include <stdio.h>
#include <lm.h>
#pragma comment(lib, "Netapi32.lib")
void wmain( int argc, TCHAR *argv[ ])
{
NET_API_STATUS res;
DWORD devType = 0;
if(argc<3)
printf("Usage: NetShareCheck server device\n");
else
{
//
// Call the NetShareCheck function.
//
res=NetShareCheck(argv[1], argv[2], &devType);
//
// If the function succeeds, inform the user.
//
if(res==0)
printf("Device is shared as type %u.\n",devType);
//
// Otherwise, print the error.
//
else
printf("Error: %u\n", res);
}
return;
}
Requisiti
Client minimo supportato | Windows XP [solo app desktop] |
Server minimo supportato | Windows Server 2003 [solo app desktop] |
Piattaforma di destinazione | Windows |
Intestazione | lmshare.h (include Lm.h) |
Libreria | Netapi32.lib |
DLL | Netapi32.dll |