gpt4 book ai didi

c++ - ADsOpenObject() 返回 -2147024882 (0x8007000E) -> OUT_OF_MEMORY

转载 作者:可可西里 更新时间:2023-11-01 16:15:26 24 4
gpt4 key购买 nike

我有一个用于身份验证的 C++ DLL,它会在每次登录时由 Windows 服务加载。

在该 DLL 中,我使用了 Windows ADSI 函数 ADsOpenObject()Active Directory 获取用户对象。

HRESULT hr = ADsOpenObject(L"LDAP://rootDSE",
L"username",
L"password",
m_dwADSFlags,
IID_IDirectorySearch,
(void**)&m_DSSearch);

通常这多年来一直有效。但目前我得到错误代码

-2147024882 (0x8007000E)

这是OUT_OF_MEMORY .当我重新启动使用我的 DLL 的服务时,它可以正常运行数周,但随后开始出现错误。

现在我找不到内存不足的什么了。任务调度程序看起来不错,可用内存充足。
我该怎么做才能解决这个问题?

最佳答案

which is OUT_OF_MEMORY.

是E_OUTOFMEMORY,一个COM错误码。描述不是很有帮助,Microsoft 代码往往会针对任何“资源不足”错误返回此错误代码,而不仅仅是内存。可能是达到了内部限制,可能是失败的 winapi 调用。

而且不一定局限于直接涉及的软件。例如,泄漏内核池内存的错误设备驱动程序可能是错误的间接来源。

如果您能在应用程序事件日志中找到一些东西,您会很幸运,同时查看报告错误的机器和域服务器。任务管理器可能会提供线索,添加句柄、GDI 对象、用户对象、提交大小、页面池和 NP 池列。除此之外很难给出具体的建议。毫无疑问,这是一次泄漏,当您必须定期重新启动机器以恢复时,它会发出很大的嘎嘎声。祝你好运。

关于c++ - ADsOpenObject() 返回 -2147024882 (0x8007000E) -> OUT_OF_MEMORY,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20419852/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com