Funzione NetShareSetInfo (lmshare.h)
Imposta i parametri di una risorsa condivisa.
Sintassi
NET_API_STATUS NET_API_FUNCTION NetShareSetInfo(
[in] LMSTR servername,
[in] LMSTR netname,
[in] DWORD level,
[in] LPBYTE buf,
[out] LPDWORD parm_err
);
Parametri
[in] servername
Puntatore a una stringa che specifica il nome DNS o NetBIOS del server remoto in cui eseguire la funzione. Se questo parametro è NULL, viene usato il computer locale.
[in] netname
Puntatore a una stringa che specifica il nome della condivisione su cui impostare le informazioni.
[in] level
Specifica il livello di informazioni dei dati. Questo parametro può avere uno dei valori seguenti.
Valore | Significato |
---|---|
|
Specifica informazioni sulla risorsa condivisa, incluso il nome e il tipo della risorsa e un commento associato alla risorsa. Il parametro buf punta a una struttura SHARE_INFO_1 . |
|
Specifica informazioni sulla risorsa condivisa, incluso il nome della risorsa, il tipo e le autorizzazioni, la password e il numero di connessioni. Il parametro buf punta a una struttura SHARE_INFO_2 . |
|
Specifica informazioni sulla risorsa condivisa, incluso il nome e il tipo della risorsa, le autorizzazioni necessarie, il numero di connessioni e altre informazioni pertinenti. Il parametro buf punta a una struttura SHARE_INFO_502 . |
|
Specifica il nome della risorsa condivisa. Il parametro buf punta a una struttura SHARE_INFO_503 . Tutti i membri di questa struttura tranne shi503_servername vengono ignorati dalla funzione NetShareSetInfo .
Windows Server 2003 e Windows XP: Questo livello di informazioni non è supportato. |
|
Specifica un commento associato alla risorsa condivisa. Il parametro buf punta a una struttura SHARE_INFO_1004 . |
|
Specifica un set di flag che descrivono la risorsa condivisa. Il parametro buf punta a una struttura SHARE_INFO_1005 . |
|
Specifica il numero massimo di connessioni simultanee che la risorsa condivisa può ospitare. Il parametro buf punta a una struttura SHARE_INFO_1006 . |
|
Specifica la SECURITY_DESCRIPTOR associata alla condivisione specificata. Il parametro buf punta a una struttura SHARE_INFO_1501 . |
[in] buf
Puntatore al buffer che specifica i dati. Il formato di questi dati dipende dal valore del parametro di livello . Per altre informazioni, vedere Buffer delle funzioni di gestione della rete.
[out] parm_err
Puntatore a un valore che riceve l'indice del primo membro della struttura di informazioni di condivisione che causa l'errore di ERROR_INVALID_PARAMETER . Se questo parametro è NULL, l'indice non viene restituito in caso di errore. Per ulteriori informazioni, vedere la sezione Osservazioni successiva.
Valore restituito
Se la funzione ha esito positivo, il valore restituito è NERR_Success.
Se la funzione ha esito negativo, il valore restituito può essere uno dei codici di errore seguenti.
Codice restituito | Descrizione |
---|---|
|
L'utente non ha accesso alle informazioni richieste. |
|
Il valore specificato per il parametro di livello non è valido. |
|
Il parametro specificato non è valido. Per ulteriori informazioni, vedere la sezione Osservazioni successiva. |
|
Il nome della condivisione non esiste. |
Commenti
Questa funzione si applica solo alle condivisioni SMB (Server Message Block). Per altri tipi di condivisioni, ad esempio File System distribuito (DFS) o condivisioni WebDAV, usare funzioni di Rete Windows (WNet), che supportano tutti i tipi di condivisioni.
Solo i membri del gruppo locale Administrators o Power Users o quelli con appartenenza al gruppo Print o Server Operator possono eseguire correttamente la funzione NetShareSetInfo . L'operatore di stampa può impostare informazioni solo sulle condivisioni stampanti.
Se la funzione NetShareSetInfo restituisce ERROR_INVALID_PARAMETER, è possibile usare il parametro parm_err per indicare il primo membro della struttura delle informazioni di condivisione non valida. Una struttura di informazioni di condivisione inizia con SHARE_INFO_ e il relativo formato viene specificato dal parametro di livello . Nella tabella seguente sono elencati i valori che possono essere restituiti nel parametro parm_err e nel membro della struttura corrispondente in errore. Il prefisso shi* indica che il membro può iniziare con più prefissi, ad esempio shi2 o shi502_.
Valore | Membro |
---|---|
SHARE_NETNAME_PARMNUM | shi*_netname |
SHARE_TYPE_PARMNUM | shi*_type |
SHARE_REMARK_PARMNUM | shi*_remark |
SHARE_PERMISSIONS_PARMNUM | shi*_permissions |
SHARE_MAX_USES_PARMNUM | shi*_max_uses |
SHARE_CURRENT_USES_PARMNUM | shi*_current_uses |
SHARE_PATH_PARMNUM | shi*_path |
SHARE_PASSWD_PARMNUM | shi*_passwd |
SHARE_FILE_SD_PARMNUM | shi*_security_descriptor |
Se si sta programmando per Active Directory, è possibile chiamare determinati metodi di Active Directory Service Interface (ADSI) per ottenere la stessa funzionalità che è possibile ottenere chiamando le funzioni di condivisione di gestione di rete. Per altre informazioni, vedere IADsFileShare.
Se per il parametro di livello viene specificato 503, il server remoto specificato nel membro shi503_servername della struttura SHARE_INFO_503 deve essere stato associato a un protocollo di trasporto usando la funzione NetServerTransportAddEx . Nella chiamata a NetServerTransportAddEx è necessario specificare 2 o 3 per il parametro di livello e il flag di SVTI2_SCOPED_NAME deve essere stato specificato nella struttura SERVER_TRANSPORT_INFO_2 per il protocollo di trasporto.
Esempio
Nell'esempio di codice seguente viene illustrato come impostare il commento associato a una risorsa condivisa usando una chiamata alla funzione NetShareSetInfo . A tale scopo, l'esempio specifica il livello di informazioni 1004 (SHARE_INFO_1004).
#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[ ])
{
SHARE_INFO_1004 p;
NET_API_STATUS res;
DWORD parm_err = 0;
if(argc<4)
printf("Usage: SetInfo server share \"remark\"\n");
else
{
//
// Fill in SHARE_INFO_1004 structure member.
//
p.shi1004_remark=argv[3];
//
// Call the NetShareSetInfo function,
// specifying information level 1004.
//
res=NetShareSetInfo(argv[1], argv[2], 1004, (LPBYTE)&p, &parm_err);
//
// Display the result of the call.
//
if(res==0)
printf("Remark set.\n");
else
printf("Error: %u\tparmerr=%u\n", res, parm_err);
}
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 |
Vedi anche
Panoramica della gestione della rete