2005-07-13 08:48:49 +00:00
|
|
|
#include "w32k.h"
|
|
|
|
|
|
|
|
NTSTATUS _MmCopyFromCaller( PVOID Target, PVOID Source, UINT Bytes ) {
|
|
|
|
NTSTATUS Status = STATUS_SUCCESS;
|
2007-10-19 23:21:45 +00:00
|
|
|
|
2009-02-12 15:33:06 +00:00
|
|
|
_SEH2_TRY
|
|
|
|
{
|
|
|
|
/* ProbeForRead(Source,Bytes,1); */
|
2005-07-22 20:51:36 +00:00
|
|
|
RtlCopyMemory(Target,Source,Bytes);
|
2009-02-12 15:33:06 +00:00
|
|
|
}
|
|
|
|
_SEH2_EXCEPT(EXCEPTION_EXECUTE_HANDLER)
|
|
|
|
{
|
|
|
|
Status = _SEH2_GetExceptionCode();
|
|
|
|
}
|
|
|
|
_SEH2_END;
|
2005-07-13 08:48:49 +00:00
|
|
|
|
2005-07-22 20:51:36 +00:00
|
|
|
return Status;
|
|
|
|
}
|
|
|
|
|
|
|
|
NTSTATUS _MmCopyToCaller( PVOID Target, PVOID Source, UINT Bytes ) {
|
|
|
|
NTSTATUS Status = STATUS_SUCCESS;
|
2007-10-19 23:21:45 +00:00
|
|
|
|
2009-02-12 15:33:06 +00:00
|
|
|
_SEH2_TRY
|
|
|
|
{
|
|
|
|
/* ProbeForWrite(Target,Bytes,1); */
|
2005-07-22 20:51:36 +00:00
|
|
|
RtlCopyMemory(Target,Source,Bytes);
|
2009-02-12 15:33:06 +00:00
|
|
|
}
|
|
|
|
_SEH2_EXCEPT(EXCEPTION_EXECUTE_HANDLER)
|
|
|
|
{
|
|
|
|
Status = _SEH2_GetExceptionCode();
|
|
|
|
}
|
|
|
|
_SEH2_END;
|
2005-07-13 08:48:49 +00:00
|
|
|
|
|
|
|
return Status;
|
|
|
|
}
|