Source code of Windows XP (NT5)
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

52 lines
1.0 KiB

/* CheckPtr.c
Pointer validation routine
Written by t-jasonf.
*/
#include "windows.h"
#include "dde.h"
#include "ole.h"
#include "cmacs.h"
#include "srvr.h"
/* CheckPointer()
Parameters :
LPVOID lp - pointer to check
int nREADWRITE - READ_ACCESS or WRITE_ACCESS
Returns:
0 if process does not have that kind of access to memory at lp.
1 if process does have access.
*/
WORD CheckPointer (void *lp, int nReadWrite)
{
char ch;
WORD iRet;
try
{
switch (nReadWrite)
{
case READ_ACCESS:
ch = *((volatile char *)lp);
break;
case WRITE_ACCESS:
ch = *((volatile char *)lp);
*((volatile char *)lp) = ch;
break;
}
iRet = 1;
}
except ( /*
GetExceptionCode == STATUS_ACCESS_VIOLATION
? EXCEPTION_EXECUTE_HANDLER
: EXCEPTION_CONTINUE_SEARCH
*/
EXCEPTION_EXECUTE_HANDLER
)
{
iRet = 0;
}
return iRet;
}