Condividi tramite


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
1
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 .
2
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 .
502
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 .
503
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.

1004
Specifica un commento associato alla risorsa condivisa. Il parametro buf punta a una struttura SHARE_INFO_1004 .
1005
Specifica un set di flag che descrivono la risorsa condivisa. Il parametro buf punta a una struttura SHARE_INFO_1005 .
1006
Specifica il numero massimo di connessioni simultanee che la risorsa condivisa può ospitare. Il parametro buf punta a una struttura SHARE_INFO_1006 .
1501
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
ERROR_ACCESS_DENIED
L'utente non ha accesso alle informazioni richieste.
ERROR_INVALID_LEVEL
Il valore specificato per il parametro di livello non è valido.
ERROR_INVALID_PARAMETER
Il parametro specificato non è valido. Per ulteriori informazioni, vedere la sezione Osservazioni successiva.
NERR_NetNameNotFound
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

NetServerTransportAddEx

NetShareGetInfo

Funzioni di gestione di rete

Panoramica della gestione della rete

Funzioni di condivisione di rete

SHARE_INFO_1

SHARE_INFO_1004

SHARE_INFO_1005

SHARE_INFO_1006

SHARE_INFO_1501

SHARE_INFO_2

SHARE_INFO_502

SHARE_INFO_503