共用方式為


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 網路 (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
標頭 lmshare.h (包含 Lm.h)
程式庫 Netapi32.lib
Dll Netapi32.dll

另請參閱

NetShareEnum

NetShareGetInfo

網路管理功能

網路管理概觀

網路共用函式