2010-09-28 5 views
5

Da MSDN:LoadLibrary Riferimento conteggio

Il sistema mantiene un conteggio di riferimento per-process su tutti i moduli caricati. La chiamata a LoadLibrary incrementa il conteggio dei riferimenti.

Dove viene memorizzato il conteggio dei riferimenti?

risposta

6

Il caricatore di Windows effettivo si trova nella funzione LdrLoadDll di NTDLL.dll. Questa funzione non è documentata e le sue funzionalità interne sono soggette a modifiche nelle versioni future di Windows; solo chi ha accesso al codice sorgente di Windows potrebbe affermare con certezza cosa succede dietro le quinte.

Tuttavia, la sorgente di wine è disponibile e è possibile vedere where it increments the reference count; è memorizzato nel membro LoadCount della struttura heap LDR_MODULE. Dal momento che questa non sembra essere una struttura interna al vino, è probabile che questa struttura si basi sulle strutture di finestre reali, con reverse engineering, e quindi Windows probabilmente la memorizza nello stesso modo. Tuttavia, poiché questo è non documentato, è soggetto a modifiche in qualsiasi versione futura di Windows, o anche con piccole patch di Windows.

+0

Perfetto, esattamente quello che stavo cercando. Grazie! – mrduclaw

0

Questa è solo una supposizione, ma probabilmente è una variabile globale all'interno di kernel32.dll (è la DLL che implementa LoadLibrary).