--- Jonathan Wilson jonwil@tpgi.com.au wrote:
No, thats not brain damaged. Thats the way Microsoft does things. (at least on XP) HeapAlloc doesnt exist at all, all it is is a forwarder to NTDLL. Therefore, all the code in kernel32 should just call RtlAllocateHeap. Given that kernel32.dll is very much linked to ReactOS and wont run anywhere else there should be no problem.
Its already implemented in Wine ntdll. It was my mistake. BTW: Do they forward it by linker magic like we did on ReactOS or did they do it inline like in Wine?
http://cvs.winehq.com/cvsweb/wine/dlls/kernel/heap.c?rev=1.4&content-typ...
/* These are needed so that we can call the functions from inside kernel itself */
LPVOID WINAPI HeapAlloc( HANDLE heap, DWORD flags, SIZE_T size ) { return RtlAllocateHeap( heap, flags, size ); }
BOOL WINAPI HeapFree( HANDLE heap, DWORD flags, LPVOID ptr ) { return RtlFreeHeap( heap, flags, ptr ); }
LPVOID WINAPI HeapReAlloc( HANDLE heap, DWORD flags, LPVOID ptr, SIZE_T size ) { return RtlReAllocateHeap( heap, flags, ptr, size ); }
SIZE_T WINAPI HeapSize( HANDLE heap, DWORD flags, LPVOID ptr ) { return RtlSizeHeap( heap, flags, ptr ); }
I am just going to add this code to ReactOS in kernel32 and then its "problem solved". Wine can still attempt to run what ever dll/program under Win9x for testing that calls HeapAlloc and we dont have to make changes to all of the Wine sources.
Thanks Steven
__________________________________ Do you Yahoo!? Free Pop-Up Blocker - Get it now http://companion.yahoo.com/