一个进程拥有自己的模块链表,但它对其他进程加载的模组却一无所知。把每个进程都有的模块链表和全局模块数组关联起来的就是modref结构。每个进程(除了奇怪的kernel32.dll)都有的模块链表实际上一个modref链表,其中一个modref时针对进程自身的,其他modrefs时针对进程使用的每一个win32 dlls。modrefs所需的内存来自kernel32(内核)的heap中,这就意味着该内存位于2gb之上。
笔记:
根据对原文的理解,每个进程的modref链表是位于系统共享全局堆中的,所以一个进程可以读取其他进程的modref链表。但这一点在windows 2000及其后续版本中是否仍然有效,目前还未知。(2004-11-26)