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

DisconnectNamedPipe返回false且GetLastError()返回1的可能原因

DisconnectNamedPipe返回错误码1(ERROR_INVALID_FUNCTION)的可能情况

错误码1对应Windows系统错误ERROR_INVALID_FUNCTION,以下是导致该错误的常见场景:

  • 管道句柄已失效:尽管代码先调用了isPipeClosed()检查,但存在竞态风险——检查完成后到调用DisconnectNamedPipe前,管道句柄可能被其他线程关闭、释放或复用,此时调用断开操作会触发无效函数错误。
  • 管道状态不允许执行断开操作:
    • 管道实际仍处于CONNECTING_STATE或未完成客户端连接的状态,代码中的status变量可能未与管道真实状态同步,导致跳过判断后执行无效操作;
    • 管道已处于断开、关闭流程中,或已经完成所有I/O操作并被标记为待关闭,此时调用DisconnectNamedPipe属于无效操作。
  • 管道类型或配置不支持断开操作:若创建命名管道时使用了不兼容的参数(例如部分特殊模式的字节流管道,或未正确设置面向连接的属性),DisconnectNamedPipe可能无法正常执行,返回无效函数错误。
  • 多线程操作冲突:其他线程正在对同一管道实例执行CloseHandle、ConnectNamedPipe或I/O读写操作,导致管道状态在调用DisconnectNamedPipe时发生突变,触发无效函数调用。
  • 句柄权限不足:当前进程持有的管道句柄仅拥有读权限,而DisconnectNamedPipe需要更高的操作权限,在某些场景下系统会返回错误码1而非明确的权限错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.16 12:05:08