NetShareCheck 函数 (lmshare.h)
检查服务器是否正在共享设备。
语法
NET_API_STATUS NET_API_FUNCTION NetShareCheck(
[in] LMSTR servername,
[in] LMSTR device,
[out] LPDWORD type
);
parameters
[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) |
Library | Netapi32.lib |
DLL | Netapi32.dll |