NetShareSetInfo-Funktion (lmshare.h)

Legt die Parameter einer freigegebenen Ressource fest.

Syntax

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

Parameter

[in] servername

Zeiger auf eine Zeichenfolge, die den DNS- oder NetBIOS-Namen des Remoteservers angibt, auf dem die Funktion ausgeführt werden soll. Wenn dieser Parameter NULL ist, wird der lokale Computer verwendet.

[in] netname

Zeiger auf eine Zeichenfolge, die den Namen der Freigabe angibt, für die Informationen festgelegt werden sollen.

[in] level

Gibt die Informationsebene der Daten an. Dieser Parameter kann einen der folgenden Werte annehmen.

Wert Bedeutung
1
Gibt Informationen zur freigegebenen Ressource an, einschließlich des Namens und Typs der Ressource und eines Kommentars, der der Ressource zugeordnet ist. Der buf-Parameter verweist auf eine SHARE_INFO_1-Struktur .
2
Gibt Informationen zur freigegebenen Ressource an, einschließlich des Namens der Ressource, des Typs und der Berechtigungen, des Kennworts und der Anzahl der Verbindungen. Der buf-Parameter verweist auf eine SHARE_INFO_2 Struktur.
502
Gibt Informationen zur freigegebenen Ressource an, einschließlich des Namens und Typs der Ressource, der erforderlichen Berechtigungen, der Anzahl der Verbindungen und anderer relevanter Informationen. Der buf-Parameter verweist auf eine SHARE_INFO_502-Struktur .
503
Gibt den Namen der freigegebenen Ressource an. Der buf-Parameter verweist auf eine SHARE_INFO_503-Struktur . Alle Elemente dieser Struktur mit Ausnahme von shi503_servername werden von der NetShareSetInfo-Funktion ignoriert.

Windows Server 2003 und Windows XP: Diese Informationsebene wird nicht unterstützt.

1004
Gibt einen Kommentar an, der der freigegebenen Ressource zugeordnet ist. Der buf-Parameter verweist auf eine SHARE_INFO_1004-Struktur .
1005
Gibt eine Reihe von Flags an, die die freigegebene Ressource beschreiben. Der buf-Parameter verweist auf eine SHARE_INFO_1005-Struktur .
1006
Gibt die maximale Anzahl gleichzeitiger Verbindungen an, die die freigegebene Ressource aufnehmen kann. Der buf-Parameter verweist auf eine SHARE_INFO_1006-Struktur .
1501
Gibt den SECURITY_DESCRIPTOR an, der der angegebenen Freigabe zugeordnet ist. Der buf-Parameter verweist auf eine SHARE_INFO_1501-Struktur .

[in] buf

Zeiger auf den Puffer, der die Daten angibt. Das Format dieser Daten hängt vom Wert des Ebenenparameters ab. Weitere Informationen finden Sie unter Netzwerkverwaltungsfunktionspuffer.

[out] parm_err

Zeiger auf einen Wert, der den Index des ersten Members der Freigabeinformationsstruktur empfängt, der den ERROR_INVALID_PARAMETER Fehler verursacht. Wenn dieser Parameter NULL ist, wird der Index nicht bei einem Fehler zurückgegeben. Weitere Informationen finden Sie im folgenden Abschnitt "Hinweise".

Rückgabewert

Wenn die Funktion erfolgreich ist, wird der Rückgabewert NERR_Success.

Wenn die Funktion fehlschlägt, kann der Rückgabewert einer der folgenden Fehlercodes sein.

Rückgabecode Beschreibung
ERROR_ACCESS_DENIED
Der Benutzer besitzt keinen Zugriff auf die angeforderten Informationen.
ERROR_INVALID_LEVEL
Der für den Levelparameter angegebene Wert ist ungültig.
ERROR_INVALID_PARAMETER
Der angegebene Parameter ist ungültig. Weitere Informationen finden Sie im folgenden Abschnitt "Hinweise".
NERR_NetNameNotFound
Der Freigabename ist nicht vorhanden.

Hinweise

Diese Funktion gilt nur für SMB-Freigaben (Server Message Block). Verwenden Sie für andere Freigabetypen, z. B. verteiltes Dateisystem (DFS) oder WebDAV-Freigaben, Windows-Netzwerkfunktionen (WNet), die alle Arten von Freigaben unterstützen.

Nur Mitglieder der lokalen Gruppe "Administratoren", "Power Users" oder "Print" oder "Server Operator" können die NetShareSetInfo-Funktion erfolgreich ausführen. Der Druckoperator kann nur Informationen zu Druckerfreigaben festlegen.

Wenn die NetShareSetInfo-FunktionERROR_INVALID_PARAMETER zurückgibt, können Sie den parameter parm_err verwenden, um das erste ungültige Element der Freigabeinformationsstruktur anzugeben. (Eine Freigabeinformationsstruktur beginnt mit SHARE_INFO_ , und ihr Format wird durch den Levelparameter angegeben.) In der folgenden Tabelle sind die Werte aufgeführt, die im parm_err-Parameter zurückgegeben werden können, und dem entsprechenden Strukturmember, der fehlerhaft ist. (Das Präfix shi* gibt an, dass das Element mit mehreren Präfixen beginnen kann, z. B. shi2 oder shi502_.)

Wert Member
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
 

Wenn Sie für Active Directory programmieren, können Sie möglicherweise bestimmte ADSI-Methoden (Active Directory Service Interface) aufrufen, um dieselbe Funktionalität zu erzielen, die Sie durch aufrufen der Netzwerkverwaltungsfreigabefunktionen erreichen können. Weitere Informationen finden Sie unter IADsFileShare.

Wenn 503 für den Levelparameter angegeben wird, muss der im shi503_servername Member der SHARE_INFO_503-Struktur angegebene Remoteserver mithilfe der NetServerTransportAddEx-Funktion an ein Transportprotokoll gebunden worden sein. Beim Aufruf von NetServerTransportAddEx muss entweder 2 oder 3 für den Levelparameter angegeben worden sein, und das SVTI2_SCOPED_NAME-Flag muss in der SERVER_TRANSPORT_INFO_2-Struktur für das Transportprotokoll angegeben worden sein.

Beispiele

Im folgenden Codebeispiel wird veranschaulicht, wie der Kommentar festgelegt wird, der einer freigegebenen Ressource zugeordnet ist, indem Sie die NetShareSetInfo-Funktion aufrufen. Hierzu gibt das Beispiel die Informationsebene 1004 (SHARE_INFO_1004) an.

#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;
}

Anforderungen

   
Unterstützte Mindestversion (Client) Windows XP [nur Desktop-Apps]
Unterstützte Mindestversion (Server) Windows Server 2003 [nur Desktop-Apps]
Zielplattform Windows
Kopfzeile lmshare.h (lm.h einschließen)
Bibliothek Netapi32.lib
DLL Netapi32.dll

Weitere Informationen

NetServerTransportAddEx

NetShareGetInfo

Netzwerkverwaltungsfunktionen

Übersicht über die Netzwerkverwaltung

Netzwerkfreigabefunktionen

SHARE_INFO_1

SHARE_INFO_1004

SHARE_INFO_1005

SHARE_INFO_1006

SHARE_INFO_1501

SHARE_INFO_2

SHARE_INFO_502

SHARE_INFO_503