stop exporting MmCopyFromCaller and kin and make a local version in the last place we use it, now based on SEH. we'll remove the copy from caller hack from ntoskrnl soon. Modified: trunk/reactos/ntoskrnl/ntoskrnl.def Added: trunk/reactos/subsys/win32k/include/mmcopy.h Modified: trunk/reactos/subsys/win32k/include/win32k.h Added: trunk/reactos/subsys/win32k/misc/copy.c Modified: trunk/reactos/subsys/win32k/w32k.h Modified: trunk/reactos/subsys/win32k/win32k.xml _____
Modified: trunk/reactos/ntoskrnl/ntoskrnl.def --- trunk/reactos/ntoskrnl/ntoskrnl.def 2005-07-13 02:45:53 UTC (rev 16551) +++ trunk/reactos/ntoskrnl/ntoskrnl.def 2005-07-13 08:48:49 UTC (rev 16552) @@ -690,8 +690,8 @@
MmAllocatePagesForMdl@28 MmBuildMdlForNonPagedPool@4 MmCanFileBeTruncated@8 -MmCopyFromCaller@12 -MmCopyToCaller@12 +;MmCopyFromCaller@12 +;MmCopyToCaller@12 MmCreateMdl@12 MmCreateSection@32 MmDbgTranslatePhysicalAddress@8 _____
Added: trunk/reactos/subsys/win32k/include/mmcopy.h --- trunk/reactos/subsys/win32k/include/mmcopy.h 2005-07-13 02:45:53 UTC (rev 16551) +++ trunk/reactos/subsys/win32k/include/mmcopy.h 2005-07-13 08:48:49 UTC (rev 16552) @@ -0,0 +1,11 @@
+#ifndef NDK_MMCOPY_H +#define NDK_MMCOPY_H + +#include <pseh/pseh.h> + +NTSTATUS _MmCopyFromCaller( PVOID Target, PVOID Source, UINT Bytes ); + +#define MmCopyFromCaller(x,y,z) _MmCopyFromCaller((PCHAR)(x),(PCHAR)(y),(UINT)(z)) +#define MmCopyToCaller(x,y,z) MmCopyFromCaller(x,y,z) + +#endif/*NDK_MMCOPY_H*/ _____
Modified: trunk/reactos/subsys/win32k/include/win32k.h --- trunk/reactos/subsys/win32k/include/win32k.h 2005-07-13 02:45:53 UTC (rev 16551) +++ trunk/reactos/subsys/win32k/include/win32k.h 2005-07-13 08:48:49 UTC (rev 16552) @@ -54,8 +54,8 @@
#include <include/window.h> #include <include/winpos.h> #include <include/winsta.h> +#include <include/mmcopy.h> #include <eng/objects.h> #include <eng/misc.h> #include <dib/dib.h> - /* EOF */ _____
Added: trunk/reactos/subsys/win32k/misc/copy.c --- trunk/reactos/subsys/win32k/misc/copy.c 2005-07-13 02:45:53 UTC (rev 16551) +++ trunk/reactos/subsys/win32k/misc/copy.c 2005-07-13 08:48:49 UTC (rev 16552) @@ -0,0 +1,13 @@
+#include "w32k.h" + +NTSTATUS _MmCopyFromCaller( PVOID Target, PVOID Source, UINT Bytes ) { + NTSTATUS Status = STATUS_SUCCESS; + + _SEH_TRY { + RtlCopyMemory(Target,Source,Bytes); + } _SEH_HANDLE { + Status = _SEH_GetExceptionCode(); + } _SEH_END; + + return Status; +} _____
Modified: trunk/reactos/subsys/win32k/w32k.h --- trunk/reactos/subsys/win32k/w32k.h 2005-07-13 02:45:53 UTC (rev 16551) +++ trunk/reactos/subsys/win32k/w32k.h 2005-07-13 08:48:49 UTC (rev 16552) @@ -19,14 +19,6 @@
#include <windows.h> #include <ndk/ntndk.h>
-/* FIXME: ReactOS will be R-Rated if I really write what I'm about to */ -NTSTATUS -STDCALL -MmCopyFromCaller(PVOID Dest, const VOID *Src, ULONG NumberOfBytes); -NTSTATUS -STDCALL -MmCopyToCaller(PVOID Dest, const VOID *Src, ULONG NumberOfBytes); - /* SEH Support with PSEH */ #include <pseh/pseh.h>
_____
Modified: trunk/reactos/subsys/win32k/win32k.xml --- trunk/reactos/subsys/win32k/win32k.xml 2005-07-13 02:45:53 UTC (rev 16551) +++ trunk/reactos/subsys/win32k/win32k.xml 2005-07-13 08:48:49 UTC (rev 16552) @@ -58,6 +58,7 @@
<file>math.c</file> <file>object.c</file> <file>ssec.c</file> + <file>copy.c</file> </directory> <directory name="ntddraw"> <file>ddraw.c</file>