2010-09-28 6 views
5

De MSDN:LoadLibrary Référence comptage

Le système maintient un compte de référence par processus sur tous les modules chargés. L'appel de LoadLibrary incrémente le nombre de références.

Où ce nombre de références est-il stocké?

Répondre

6

Le chargeur de fenêtres proprement dit se trouve dans la fonction LdrLoadDll de NTDLL.dll. Cette fonction n'est pas documentée et sa fonctionnalité interne est susceptible d'être modifiée dans les futures versions de Windows. Seuls ceux qui ont accès au code source de Windows peuvent déclarer avec certitude ce qui se passe dans les coulisses. Cependant, la source de wine est disponible, et vous pouvez voir where it increments the reference count; Il est stocké dans le membre LoadCount de la structure de tas LDR_MODULE. Étant donné que cela ne semble pas être une structure interne au vin, il est probable que cette structure soit basée sur les vraies structures de fenêtres inversées, et que Windows les stocke probablement de la même manière. Cependant, comme ceci n'est pas documenté, il est sujet à changement dans n'importe quelle future version de Windows, ou même avec des correctifs de fenêtres mineurs.

+0

Parfait, exactement ce que je cherchais. Merci! – mrduclaw

0

Ceci est juste une supposition, mais c'est probablement une variable globale dans kernel32.dll (c'est la DLL qui imprime LoadLibrary).