【发布时间】:2013-12-06 09:00:59
【问题描述】:
我有一个用于身份验证的 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 的服务时,它可以正常运行数周,但随后开始出现错误。
现在我找不到 什么 内存不足。任务调度程序看起来不错,可用内存充足。
我能做些什么来解决这个问题?
【问题讨论】:
-
ActiveDirectory 服务器是否内存不足?
-
不,不是。其他应用程序也没有任何问题。
-
如果我查看源文件“winerror.h”中的错误 14L,然后我看到 MessageText 为 没有足够的存储空间来完成此操作。这是存储问题?请参阅here,了解我使用 14L 的原因。
-
不,存储可用。
-
“任务计划程序看起来不错,可用内存充足。”是什么意思?您是在查看系统的可用 RAM 还是进程的虚拟大小?
标签: c++ active-directory out-of-memory adsi