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
STYPE_DISKTREE
Laufwerk.
STYPE_PRINTQ
Druckwarteschlange.
STYPE_DEVICE
Kommunikationsgerät.
STYPE_IPC
Interprocess Communication (IPC).
 

Darüber hinaus können eines oder beide der folgenden Flags angegeben werden.

Wert Bedeutung
STYPE_SPECIAL
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.
STYPE_TEMPORARY
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
ERROR_NOT_ENOUGH_MEMORY
Es ist nicht genügend Arbeitsspeicher verfügbar.
NERR_DeviceNotShared
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

Weitere Informationen

NetShareEnum

NetShareGetInfo

Netzwerkverwaltungsfunktionen

Übersicht über die Netzwerkverwaltung

Netzwerkfreigabefunktionen