NetShareCheck-Funktion (lmshare.h)
Überprüft, ob ein Server ein Gerät gemeinsam verwendet.
Syntax
NET_API_STATUS NET_API_FUNCTION NetShareCheck(
[in] LMSTR servername,
[in] LMSTR device,
[out] LPDWORD type
);
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] device
Zeiger auf eine Zeichenfolge, die den Namen des Geräts angibt, das auf freigegebenen Zugriff überprüft werden soll.
[out] type
Zeiger auf eine Variable, die eine Bitmaske von Flags empfängt, die den Typ des freigegebenen Geräts angeben. Dieser Parameter wird nur festgelegt, wenn die Funktion erfolgreich zurückgegeben wird.
Eines der folgenden Flags kann angegeben werden.
Wert | Bedeutung |
---|---|
|
Laufwerk. |
|
Druckwarteschlange. |
|
Kommunikationsgerät. |
|
Interprocess Communication (IPC). |
Darüber hinaus können eines oder beide der folgenden Flags angegeben werden.
Wert | Bedeutung |
---|---|
|
Spezielle Freigabe, die für die Interprocess-Kommunikation (IPC$) oder die Remoteverwaltung des Servers (ADMIN$) reserviert ist. Kann auch auf administrative Freigaben wie C$, D$, E$ usw. verweisen. Weitere Informationen finden Sie unter Netzwerkfreigabefunktionen. |
|
Eine temporäre Freigabe. |
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 |
---|---|
|
Es ist nicht genügend Arbeitsspeicher verfügbar. |
|
Das Gerät wird nicht freigegeben. |
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.
Für die erfolgreiche Ausführung der NetShareCheck-Funktion ist keine spezielle Gruppenmitgliedschaft erforderlich.
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.
Beispiele
Im folgenden Codebeispiel wird veranschaulicht, wie Sie mithilfe eines Aufrufs der NetShareCheck-Funktion überprüfen, ob ein Server ein Gerät gemeinsam nutzt. Die Funktion gibt den Typ des freigegebenen Geräts zurück, wie in der vorherigen Dokumentation für den Type-Parameter beschrieben.
#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[ ])
{
NET_API_STATUS res;
DWORD devType = 0;
if(argc<3)
printf("Usage: NetShareCheck server device\n");
else
{
//
// Call the NetShareCheck function.
//
res=NetShareCheck(argv[1], argv[2], &devType);
//
// If the function succeeds, inform the user.
//
if(res==0)
printf("Device is shared as type %u.\n",devType);
//
// Otherwise, print the error.
//
else
printf("Error: %u\n", res);
}
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 |