From: Hermès Bélusca-Maïto Date: Fri, 13 Mar 2015 23:26:33 +0000 (+0000) Subject: [NTVDM] X-Git-Tag: ReactOS-0.3.17-CLT2015~77 X-Git-Url: https://git.reactos.org/?p=reactos.git;a=commitdiff_plain;h=c73bb5a49f7c01a7b3dbcf520240c170e2fce679 [NTVDM] - Export VDDInstallMemoryHook and VDDDeInstallMemoryHook. - Stubplement and export VDDAllocMem, VDDFreeMem, VDDIncludeMem and VDDExcludeMem (undocumented). svn path=/trunk/; revision=66670 --- diff --git a/reactos/include/ddk/nt_vdd.h b/reactos/include/ddk/nt_vdd.h index b64c08b4982..1a9c1aab7ac 100644 --- a/reactos/include/ddk/nt_vdd.h +++ b/reactos/include/ddk/nt_vdd.h @@ -251,6 +251,42 @@ VDDDeInstallMemoryHook IN DWORD dwCount ); +BOOL +WINAPI +VDDAllocMem +( + IN HANDLE hVdd, + IN PVOID Address, + IN ULONG Size +); + +BOOL +WINAPI +VDDFreeMem +( + IN HANDLE hVdd, + IN PVOID Address, + IN ULONG Size +); + +BOOL +WINAPI +VDDIncludeMem +( + IN HANDLE hVdd, + IN PVOID Address, + IN ULONG Size +); + +BOOL +WINAPI +VDDExcludeMem +( + IN HANDLE hVdd, + IN PVOID Address, + IN ULONG Size +); + #ifdef __cplusplus } #endif diff --git a/reactos/subsystems/mvdm/ntvdm/memory.c b/reactos/subsystems/mvdm/ntvdm/memory.c index 7b3074c9e78..c838299b5f6 100644 --- a/reactos/subsystems/mvdm/ntvdm/memory.c +++ b/reactos/subsystems/mvdm/ntvdm/memory.c @@ -425,6 +425,50 @@ VDDDeInstallMemoryHook(IN HANDLE hVdd, return TRUE; } +BOOL +WINAPI +VDDAllocMem(IN HANDLE hVdd, + IN PVOID Address, + IN ULONG Size) +{ + // FIXME + UNIMPLEMENTED; + return FALSE; +} + +BOOL +WINAPI +VDDFreeMem(IN HANDLE hVdd, + IN PVOID Address, + IN ULONG Size) +{ + // FIXME + UNIMPLEMENTED; + return FALSE; +} + +BOOL +WINAPI +VDDIncludeMem(IN HANDLE hVdd, + IN PVOID Address, + IN ULONG Size) +{ + // FIXME + UNIMPLEMENTED; + return FALSE; +} + +BOOL +WINAPI +VDDExcludeMem(IN HANDLE hVdd, + IN PVOID Address, + IN ULONG Size) +{ + // FIXME + UNIMPLEMENTED; + return FALSE; +} + BOOLEAN @@ -494,7 +538,8 @@ MemCleanup(VOID) SIZE_T MemorySize = MAX_ADDRESS; PLIST_ENTRY Pointer; - while (!IsListEmpty(&HookList)) + // while (!IsListEmpty(&HookList)) + while (HookList.Flink != &HookList) { Pointer = RemoveHeadList(&HookList); RtlFreeHeap(RtlGetProcessHeap(), 0, CONTAINING_RECORD(Pointer, MEM_HOOK, Entry)); diff --git a/reactos/subsystems/mvdm/ntvdm/ntvdm.h b/reactos/subsystems/mvdm/ntvdm/ntvdm.h index 1bfe64f6dc8..ffc788470e9 100644 --- a/reactos/subsystems/mvdm/ntvdm/ntvdm.h +++ b/reactos/subsystems/mvdm/ntvdm/ntvdm.h @@ -38,6 +38,11 @@ DWORD WINAPI SetLastConsoleEventActive(VOID); */ // #define STANDALONE +/* + * Activate this line for Win2k compliancy + */ +// #define WIN2K_COMPLIANT + /* FUNCTIONS ******************************************************************/ #ifndef STANDALONE diff --git a/reactos/subsystems/mvdm/ntvdm/ntvdm.spec b/reactos/subsystems/mvdm/ntvdm/ntvdm.spec index 4cd48a8c776..18adf3c8604 100644 --- a/reactos/subsystems/mvdm/ntvdm/ntvdm.spec +++ b/reactos/subsystems/mvdm/ntvdm/ntvdm.spec @@ -211,6 +211,14 @@ @ stdcall VdmMapFlat(long long long) ;@ stdcall VdmUnmapFlat(long long ptr long) ; Not exported on x86 +@ stdcall VDDInstallMemoryHook(long ptr long ptr) +@ stdcall VDDDeInstallMemoryHook(long ptr long) + +@ stdcall VDDAllocMem(long ptr long) +@ stdcall VDDFreeMem(long ptr long) +@ stdcall VDDIncludeMem(long ptr long) +@ stdcall VDDExcludeMem(long ptr long) + @ stdcall call_ica_hw_interrupt(long long long) @ stdcall VDDReserveIrqLine(long long) @ stdcall VDDReleaseIrqLine(long long)