Поделиться через


Функция NetShareCheck (lmshare.h)

Проверяет, предоставляет ли сервер общий доступ к устройству.

Синтаксис

NET_API_STATUS NET_API_FUNCTION NetShareCheck(
  [in]  LMSTR   servername,
  [in]  LMSTR   device,
  [out] LPDWORD type
);

Параметры

[in] servername

Указатель на строку, указывающую DNS- или NetBIOS-имя удаленного сервера, на котором выполняется функция. Если этот параметр имеет значение NULL, используется локальный компьютер.

[in] device

Указатель на строку, указывающую имя устройства, проверка для общего доступа.

[out] type

Указатель на переменную, получающую битовую маску флагов, указывающих тип общего устройства. Этот параметр задается только в том случае, если функция возвращает успешно.

Можно указать один из следующих флагов.

Значение Значение
STYPE_DISKTREE
Дисковый накопитель.
STYPE_PRINTQ
Очередь печати.
STYPE_DEVICE
Устройство связи.
STYPE_IPC
Межпроцессная связь (IPC).
 

Кроме того, можно указать один или оба следующих флага.

Значение Значение
STYPE_SPECIAL
Специальный общий ресурс, зарезервированный для межпроцессного взаимодействия (IPC$) или удаленного администрирования сервера (ADMIN$). Также может ссылаться на административные общие папки, такие как C$, D$, E$и т. д. Дополнительные сведения см. в разделе Функции общего сетевого ресурса.
STYPE_TEMPORARY
Временная общая папка.

Возвращаемое значение

Если функция выполнена успешно, возвращаемое значение будет NERR_Success.

Если функция завершается ошибкой, возвращаемое значение может быть одним из следующих кодов ошибок.

Код возврата Описание
ERROR_NOT_ENOUGH_MEMORY
Недостаточно памяти.
NERR_DeviceNotShared
Устройство не является общим.

Комментарии

Эта функция применяется только к общим папкам SMB. Для других типов общих папок, таких как распределенная файловая система (DFS) или общие папки WebDAV, используйте функции windows Networking (WNet), которые поддерживают все типы общих папок.

Для успешного выполнения функции NetShareCheck не требуется специальное членство в группе.

При программировании для Active Directory вы можете вызвать определенные методы интерфейса службы Active Directory (ADSI), чтобы достичь тех же функций, которые можно достичь, вызвав функции общего доступа для управления сетью. Дополнительные сведения см. в разделе IADsFileShare.

Примеры

В следующем примере кода показано, как проверка, предоставляет ли сервер общий доступ к устройству, с помощью вызова функции NetShareCheck. Функция возвращает тип совместно используемого устройства, как описано в предыдущей документации для параметра типа .

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

Требования

   
Минимальная версия клиента Windows XP [только классические приложения]
Минимальная версия сервера Windows Server 2003 [только классические приложения]
Целевая платформа Windows
Header lmshare.h (включая Lm.h)
Библиотека Netapi32.lib
DLL Netapi32.dll

См. также раздел

NetShareEnum

NetShareGetInfo

Функции управления сетью

Общие сведения об управлении сетью

Функции общих сетевых файлов