NetShareSetInfo, fonction (lmshare.h)

Définit les paramètres d’une ressource partagée.

Syntaxe

NET_API_STATUS NET_API_FUNCTION NetShareSetInfo(
  [in]  LMSTR   servername,
  [in]  LMSTR   netname,
  [in]  DWORD   level,
  [in]  LPBYTE  buf,
  [out] LPDWORD parm_err
);

Paramètres

[in] servername

Pointeur vers une chaîne qui spécifie le nom DNS ou NetBIOS du serveur distant sur lequel la fonction doit s’exécuter. Si ce paramètre a la valeur NULL, l’ordinateur local est utilisé.

[in] netname

Pointeur vers une chaîne qui spécifie le nom du partage sur lequel définir des informations.

[in] level

Spécifie le niveau d’informations des données. Ce paramètre peut prendre les valeurs suivantes.

Valeur Signification
1
Spécifie des informations sur la ressource partagée, notamment le nom et le type de la ressource, ainsi qu’un commentaire associé à la ressource. Le paramètre buf pointe vers une structure SHARE_INFO_1 .
2
Spécifie des informations sur la ressource partagée, notamment le nom de la ressource, le type et les autorisations, le mot de passe et le nombre de connexions. Le paramètre buf pointe vers une structure SHARE_INFO_2 .
502
Spécifie des informations sur la ressource partagée, notamment le nom et le type de la ressource, les autorisations requises, le nombre de connexions et d’autres informations pertinentes. Le paramètre buf pointe vers une structure SHARE_INFO_502 .
503
Spécifie le nom de la ressource partagée. Le paramètre buf pointe vers une structure SHARE_INFO_503 . Tous les membres de cette structure à l’exception shi503_servername sont ignorés par la fonction NetShareSetInfo .

Windows Server 2003 et Windows XP : Ce niveau d’informations n’est pas pris en charge.

1004
Spécifie un commentaire associé à la ressource partagée. Le paramètre buf pointe vers une structure SHARE_INFO_1004 .
1005
Spécifie un ensemble d’indicateurs décrivant la ressource partagée. Le paramètre buf pointe vers une structure SHARE_INFO_1005 .
1006
Spécifie le nombre maximal de connexions simultanées que la ressource partagée peut prendre en charge. Le paramètre buf pointe vers une structure SHARE_INFO_1006 .
1501
Spécifie le SECURITY_DESCRIPTOR associé au partage spécifié. Le paramètre buf pointe vers une structure SHARE_INFO_1501 .

[in] buf

Pointeur vers la mémoire tampon qui spécifie les données. Le format de ces données dépend de la valeur du paramètre de niveau . Pour plus d’informations, consultez Mémoires tampons de fonction de gestion réseau.

[out] parm_err

Pointeur vers une valeur qui reçoit l’index du premier membre de la structure d’informations de partage qui provoque l’erreur ERROR_INVALID_PARAMETER . Si ce paramètre a la valeur NULL, l’index n’est pas retourné en cas d’erreur. Pour plus d'informations, consultez la section Notes qui suit.

Valeur retournée

Si la fonction réussit, la valeur de retour est NERR_Success.

Si la fonction échoue, la valeur de retour peut être l’un des codes d’erreur suivants.

Code de retour Description
ERROR_ACCESS_DENIED
L’utilisateur n’a pas accès aux informations demandées.
ERROR_INVALID_LEVEL
La valeur spécifiée pour le paramètre de niveau n’est pas valide.
ERROR_INVALID_PARAMETER
Le paramètre spécifié n’est pas valide. Pour plus d'informations, consultez la section Notes qui suit.
NERR_NetNameNotFound
Le nom du partage n’existe pas.

Notes

Cette fonction s’applique uniquement aux partages SMB (Server Message Block). Pour d’autres types de partages, tels que les partages DFS (Distributed File System) ou WebDAV, utilisez les fonctions WNet (Windows Networking), qui prennent en charge tous les types de partages.

Seuls les membres du groupe local Administrateurs ou utilisateurs avec pouvoir, ou ceux qui sont membres d’un groupe d’opérateurs d’impression ou de serveur, peuvent exécuter correctement la fonction NetShareSetInfo . L’opérateur d’impression peut définir des informations uniquement sur les partages d’imprimante.

Si la fonction NetShareSetInfo retourne ERROR_INVALID_PARAMETER, vous pouvez utiliser le paramètre parm_err pour indiquer le premier membre de la structure d’informations de partage qui n’est pas valide. (Une structure d’informations de partage commence par SHARE_INFO_ et son format est spécifié par le paramètre level .) Le tableau suivant répertorie les valeurs qui peuvent être retournées dans le paramètre parm_err et le membre de structure correspondant qui est en erreur. (Le préfixe shi* indique que le membre peut commencer par plusieurs préfixes, par exemple shi2 ou shi502_.)

Valeur Membre
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
 

Si vous programmez pour Active Directory, vous pouvez peut-être appeler certaines méthodes ADSI (Active Directory Service Interface) pour obtenir les mêmes fonctionnalités que celles que vous pouvez obtenir en appelant les fonctions de partage de gestion réseau. Pour plus d’informations, consultez IADsFileShare.

Si 503 est spécifié pour le paramètre de niveau , le serveur distant spécifié dans le shi503_servername membre de la structure SHARE_INFO_503 doit avoir été lié à un protocole de transport à l’aide de la fonction NetServerTransportAddEx . Dans l’appel à NetServerTransportAddEx, 2 ou 3 doivent avoir été spécifiés pour le paramètre de niveau , et l’indicateur SVTI2_SCOPED_NAME doit avoir été spécifié dans la structure SERVER_TRANSPORT_INFO_2 pour le protocole de transport.

Exemples

L’exemple de code suivant montre comment définir le commentaire associé à une ressource partagée à l’aide d’un appel à la fonction NetShareSetInfo . Pour ce faire, l’exemple spécifie le niveau d’informations 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;
}

Spécifications

   
Client minimal pris en charge Windows XP [applications de bureau uniquement]
Serveur minimal pris en charge Windows Server 2003 [applications de bureau uniquement]
Plateforme cible Windows
En-tête lmshare.h (include Lm.h)
Bibliothèque Netapi32.lib
DLL Netapi32.dll

Voir aussi

NetServerTransportAddEx

NetShareGetInfo

Fonctions de gestion réseau

Vue d’ensemble de la gestion du réseau

Fonctions de partage réseau

SHARE_INFO_1

SHARE_INFO_1004

SHARE_INFO_1005

SHARE_INFO_1006

SHARE_INFO_1501

SHARE_INFO_2

SHARE_INFO_502

SHARE_INFO_503