又一个问题代码,引用的是IamRainLiang朋友的代码,居然调试不通过,怪闷的。
http://blog.csdn.net/iamrainliang/archive/2008/01/25/2065572.aspx
#define MAX_PROC_NAME_LEN 256
#pragma INITCODE
BOOLEAN EnumProcessList2()
{
PEPROCESS curproc;
char *nameptr;
ULONG i;
static CHAR szName[MAX_PROC_NAME_LEN];
BOOLEAN find2=FALSE;
DbgPrint(("Find Current Process Name begin!/n"));
curproc = PsGetCurrentProcess(); //获取当前进程信息
//
// Scan for 12KB, hopping the KPEB never grows that big!
//
for( i = 0; i < 3*PAGE_SIZE; i++ ) { //在WDM.h中定义#define PAGE_SIZE 0x1000
DbgPrint(("Process Name:%s/n",(PCHAR) curproc + i));
if(strcmp("NOTEPAD.EXE", (PCHAR) curproc + i)==0)
{
nameptr = (PCHAR) curproc + i;
strncpy( szName, nameptr, MAX_PROC_NAME_LEN-1 );
find2=TRUE;
break;
}
}
if(find2)
DbgPrint(("Current Process Name:%s/n",szName));
else
DbgPrint(("Current Process Name:no find!/n"));
return TRUE;
}