Einzelnen Beitrag anzeigen

Olli
(Gast)

n/a Beiträge
 
#11

Re: Speicherreservierung / Verständnisfrage

  Alt 23. Aug 2005, 01:45
Aus einer sehr kurzen "Analyse" ergibt sich folgendes Bild.
  • GlobalAlloc() & LocalAlloc()
    • RtlAllocateHandle()
    • RtlAllocateHeap()
    • RtlLockHeap()
    • RtlSetUserValueHeap()
    • RtlUnlockHeap()
    Beide benutzen also intern einen Heap. Es gibt offenbar eine Tabelle mit Heaps, habe es mir nicht en detail angeschaut. Beide Funktionen sehen prinzipiell sehr ähnlich aus! Allerdings werden nicht die exakt gleichen Exporte benutzt und GlobalAlloc() ist gestückelt (chunked function).
  • VirtualAlloc() -> (ruft auf) -> VirtualAllocEx()
    • NtAllocateVirtualMemory()
  • HeapAlloc()
    • Function forwarder -> NTDLL.RtlAllocateHeap()
Fazit: die Funktionen basieren auf verschiedenen Native APIs, wobei die grobe Gruppierung schon durch die Listenformatierung deutlich werden sollte. Weiter Infos zu den genannten APIs finden sich unter: http://jedi-apilib.sourceforge.net/n...ativeList.html sowie in unserer Native API Unit: http://jedi-apilib.sourceforge.net/ntapi

Die Analyse erfolgte mit der Kernel32.dll von Windows 2003 Server.
  Mit Zitat antworten Zitat