NetShareDel 函数 (lmshare.h)

从服务器的共享资源列表中删除共享名称,断开与共享资源的所有连接。

扩展函数 NetShareDelEx 允许调用方指定 SHARE_INFO_0SHARE_INFO_1SHARE_INFO_2SHARE_INFO_502SHARE_INFO_503 结构。

语法

NET_API_STATUS NET_API_FUNCTION NetShareDel(
  [in] LMSTR servername,
  [in] LMSTR netname,
       DWORD reserved
);

parameters

[in] servername

指向字符串的指针,该字符串指定要在其中执行函数的远程服务器的 DNS 或 NetBIOS 名称。 如果此参数为 NULL,则使用本地计算机。

如果定义了 _WIN32_WINNTFORCE_UNICODE ,则此字符串为 Unicode。

[in] netname

指向指定要删除的共享名称的字符串的指针。

如果定义了 _WIN32_WINNTFORCE_UNICODE ,则此字符串为 Unicode。

reserved

保留,必须为 0。

返回值

如果函数成功,则返回值NERR_Success。

如果函数失败,则返回值可能是以下错误代码之一。

返回代码 说明
ERROR_ACCESS_DENIED
用户无权访问请求的信息。
ERROR_INVALID_PARAMETER
指定的参数无效。
ERROR_NOT_ENOUGH_MEMORY
可用内存不足。
NERR_NetNameNotFound
共享名称不存在。

注解

此函数仅适用于 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

另请参阅

NetShareAdd

NetShareDelEx

网络管理功能

网络管理概述

网络共享函数