LoadLibrary引用计数

时间:2010-09-28 04:49:44

标签: windows shared-libraries internals

来自MSDN

  

系统维护所有已加载模块的每进程引用计数。调用LoadLibrary会增加引用计数。

存储引用计数在哪里?

2 个答案:

答案 0 :(得分:6)

实际的Windows加载程序位于NTDLL.dll的LdrLoadDll函数中。此函数未记录,其内部功能在将来的Windows版本中可能会更改;只有那些有权访问Windows源代码的人才能确定幕后发生的事情。

但是,wine的来源可用,您可以看到where it increments the reference count;它存储在LDR_MODULE堆结构的LoadCount成员中。由于这似乎不是葡萄酒内部结构,因此这种结构可能基于真正的,逆向工程的窗口结构,因此窗口可能以相同的方式存储它。但是,由于这是未记录的,因此在将来的任何Windows版本中都可能会发生变化,甚至可能会出现微小的Windows补丁。

答案 1 :(得分:0)

这只是一个猜测,但它可能是kernel32.dll中的一个全局变量(这是填充LoadLibrary的DLL)。