HANDLE hProcess;
HANDLE hToken;
if(!_wcsicmp(ps.szExeFile, _T("[System Process]"))||!_wcsicmp(ps.szExeFile, _T("System")))
{
bFind=Process32Next(hSnapshot, &ps);
continue;
}
hProcess=OpenProcess(PROCESS_ALL_ACCESS, FALSE, ps.th32ProcessID);
if(hProcess==NULL)
{
MessageBox(_T("can't open this process"));
return;
}
if(!OpenProcessToken(hProcess, TOKEN_QUERY, &hToken))
{
MessageBox(_T("can't open this process's token"));
return;
}
CloseHandle(hProcess);
PTOKEN_USER tokenuser;
DWORD size=0;

if(GetTokenInformation(hToken, TokenUser , NULL, size, &size))
{
tokenuser=NULL;
tokenuser=(PTOKEN_USER)malloc(size);
if(tokenuser==NULL)
{
MessageBox(_T("aaaa"));
return;
}
if(tokenuser==NULL)
{
MessageBox(_T("alloc"));
return;
}

GetTokenInformation(hToken, TokenUser , tokenuser, size, &size);

}我想要做个类似任务管理器的程序  if(GetTokenInformation(hToken, TokenUser , NULL, size, &size))
这行代码老是执行不成功,不知道什么原因,请高手解释下,如果有错,应该怎么做?