NetShareDel 函数 (lmshare.h)
从服务器的共享资源列表中删除共享名称,断开与共享资源的所有连接。
扩展函数 NetShareDelEx 允许调用方指定 SHARE_INFO_0、 SHARE_INFO_1、 SHARE_INFO_2、 SHARE_INFO_502 或 SHARE_INFO_503 结构。
语法
NET_API_STATUS NET_API_FUNCTION NetShareDel(
[in] LMSTR servername,
[in] LMSTR netname,
DWORD reserved
);
parameters
[in] servername
指向字符串的指针,该字符串指定要在其中执行函数的远程服务器的 DNS 或 NetBIOS 名称。 如果此参数为 NULL,则使用本地计算机。
如果定义了 _WIN32_WINNT 或 FORCE_UNICODE ,则此字符串为 Unicode。
[in] netname
指向指定要删除的共享名称的字符串的指针。
如果定义了 _WIN32_WINNT 或 FORCE_UNICODE ,则此字符串为 Unicode。
reserved
保留,必须为 0。
返回值
如果函数成功,则返回值NERR_Success。
如果函数失败,则返回值可能是以下错误代码之一。
返回代码 | 说明 |
---|---|
|
用户无权访问请求的信息。 |
|
指定的参数无效。 |
|
可用内存不足。 |
|
共享名称不存在。 |
注解
此函数仅适用于 SMB) 共享 (服务器消息块。 对于其他类型的共享(例如分布式文件系统 (DFS) 或 WebDAV 共享),请使用支持所有类型的共享的 Windows 网络 (WNet) 函数。
只有管理员、服务器操作员或 Power Users 本地组的成员,或者具有服务器操作员组成员身份的成员,才能通过调用 NetShareDel 函数成功删除文件共享。 打印操作员可以删除打印机共享。
如果要对 Active Directory 进行编程,则可以调用某些 Active Directory 服务接口 (ADSI) 方法来实现通过调用网络管理共享函数可以实现的相同功能。 有关详细信息,请参阅 IADsFileShare。
示例
下面的代码示例演示如何使用对 NetShareDel 函数的调用删除共享。
#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;
if(argc<3)
printf("Usage: NetShareDel server share\n");
else
{
//
// Call the NetShareDel function to delete the share.
//
res=NetShareDel(argv[1], argv[2], 0);
//
// Display the result of the call.
//
if(res==0)
printf("Share Removed.\n");
else
printf("Error: %u\n", res);
}
return;
}
要求
最低受支持的客户端 | Windows XP [仅限桌面应用] |
最低受支持的服务器 | Windows Server 2003 [仅限桌面应用] |
目标平台 | Windows |
标头 | lmshare.h (包括 Lm.h) |
Library | Netapi32.lib |
DLL | Netapi32.dll |