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
變數的指標,該變數會接收指定共用裝置類型的旗標位元遮罩。 只有在函式傳回成功時,才會設定此參數。
可以指定下列其中一個旗標。
值 | 意義 |
---|---|
|
磁碟機。 |
|
列印佇列。 |
|
通訊裝置。 |
|
IPC) (處理序間通訊。 |
此外,也可以指定下列其中一個或兩個旗標。
值 | 意義 |
---|---|
|
保留給處理序間通訊的特殊共用 (IPC$) 或遠端管理伺服器 (ADMIN$) 。 也可以參考系統管理共用,例如 C$、D$、E$等等。 如需詳細資訊,請參閱 網路共用函式。 |
|
暫存共用。 |
傳回值
如果函式成功,傳回值會 NERR_Success。
如果函式失敗,傳回值可以是下列其中一個錯誤碼。
傳回碼 | 描述 |
---|---|
|
記憶體不足。 |
|
裝置未共用。 |
備註
此函式僅適用于 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 |