本文提供了一种解决方法,用于解决 LoadLibrary 函数在 Windows 中模拟线程上返回STATUS_DLL_NOT_FOUND错误的问题。
适用于: Windows Server 2019、Windows Server 2016、Windows 10 - 所有版本
原始 KB 数: 4015510
现象
在 Windows 10 和 Windows Server 版本 1709 或更高版本中,如果在使用 LoadLibrary 函数加载 DLL 时未授予对进程令牌本身的动态链接库(DLL)访问权限,则会在模拟线程上收到“STATUS_DLL_NOT_FOUND”错误消息。
原因
注意
此行为在 Windows 中设计。
发生此行为的原因如下:
- 假设所有基于 Windows 的操作系统都有权访问进程令牌引用的 DLL。
- 无论上述项目符号点中描述的条件如何,在 Windows 10、Windows Server 2016、Windows Server 2019 和 Windows Server 版本 1909 中,此问题在早期版本的 Windows 中更为明显。
解决方法
若要解决此问题,请确保进程令牌有权访问进程加载的所有可执行文件。
Status
Microsoft 已经确认这是一个列于“适用范围”部分的 Microsoft 产品问题。
数据收集
如果需要 Microsoft 支持方面的帮助,建议按照使用 TSS 针对与部署相关的问题收集信息中所述的步骤收集信息。