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 |
---|---|
|
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 . |
|
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. |
|
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 . |
|
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. |
|
Gibt einen Kommentar an, der der freigegebenen Ressource zugeordnet ist. Der buf-Parameter verweist auf eine SHARE_INFO_1004-Struktur . |
|
Gibt eine Reihe von Flags an, die die freigegebene Ressource beschreiben. Der buf-Parameter verweist auf eine SHARE_INFO_1005-Struktur . |
|
Gibt die maximale Anzahl gleichzeitiger Verbindungen an, die die freigegebene Ressource aufnehmen kann. Der buf-Parameter verweist auf eine SHARE_INFO_1006-Struktur . |
|
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 |
---|---|
|
Der Benutzer besitzt keinen Zugriff auf die angeforderten Informationen. |
|
Der für den Levelparameter angegebene Wert ist ungültig. |
|
Der angegebene Parameter ist ungültig. Weitere Informationen finden Sie im folgenden Abschnitt "Hinweise". |
|
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 |