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 |
---|---|
|
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 . |
|
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 . |
|
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 . |
|
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. |
|
Spécifie un commentaire associé à la ressource partagée. Le paramètre buf pointe vers une structure SHARE_INFO_1004 . |
|
Spécifie un ensemble d’indicateurs décrivant la ressource partagée. Le paramètre buf pointe vers une structure SHARE_INFO_1005 . |
|
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 . |
|
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 |
---|---|
|
L’utilisateur n’a pas accès aux informations demandées. |
|
La valeur spécifiée pour le paramètre de niveau n’est pas valide. |
|
Le paramètre spécifié n’est pas valide. Pour plus d'informations, consultez la section Notes qui suit. |
|
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 |