You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用NetShareDelEx触发ERROR_INVALID_LEVEL(错误124)的问题排查

问题分析与解决

你遇到的ERROR_INVALID_LEVEL(错误124),核心原因是NetShareDelEx的参数规范和NetShareAdd/NetShareDel完全不同——它不接受SHARE_INFO系列结构体,而是要求使用专门的SHARE_DEL_INFO系列结构体,且level参数仅支持0或1,分别对应SHARE_DEL_INFO_0和SHARE_DEL_INFO_1。

关键错误点

你尝试传入SHARE_INFO_0/1/2结构体给NetShareDelEx,这完全不符合函数的参数要求,无论level设为0、1还是2,都会触发错误124。

正确用法示例

NetShareDelEx的设计目的是支持强制删除(比如踢掉当前连接的用户),以下是修正后的调用代码:

方案1:使用level 0(仅指定共享名)

SHARE_DEL_INFO_0 delInfo0;
ZeroMemory(&delInfo0, sizeof(SHARE_DEL_INFO_0));
delInfo0.sdli0_netname = L"SharedFolderEx"; // 要删除的共享名

DWORD status = NetShareDelEx(NULL, 0, (LPBYTE)&delInfo0);
if (status != NERR_Success) {
    printf("NetShareDelEx failed, Error code: %d\n", status);
    return;
}

方案2:使用level 1(支持强制删除)

如果需要强制删除正在被使用的共享,可以指定SD_DEL_FORCE标志:

SHARE_DEL_INFO_1 delInfo1;
ZeroMemory(&delInfo1, sizeof(SHARE_DEL_INFO_1));
delInfo1.sdli1_netname = L"SharedFolderEx";
delInfo1.sdli1_flags = SD_DEL_FORCE; // 强制删除,踢掉连接用户

DWORD status = NetShareDelEx(NULL, 1, (LPBYTE)&delInfo1);
if (status != NERR_Success) {
    printf("NetShareDelEx failed, Error code: %d\n", status);
    return;
}

额外说明

  • SHARE_DEL_INFO_0仅包含共享名字段,功能和NetShareDel基本一致;
  • SHARE_DEL_INFO_1多了一个sdli1_flags字段,支持SD_DEL_FORCE(强制删除)和SD_DEL_STICKY(删除粘性共享)两种标志,这也是NetShareDelEx相对于NetShareDel的核心优势。

内容的提问来源于stack exchange,提问作者Eisen

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.14 23:48:20