Windows NT 4.0 source code leak
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.
 
 
 
 
 
 

62 lines
1.7 KiB

/****************************** Module Header ******************************\
* Module Name: process.h
*
* Copyright (c) 1985-91, Microsoft Corporation
*
* This module contains processor specific routines.
*
* History:
* 25-Oct-1995 JimA Created.
\***************************************************************************/
#include "precomp.h"
#include <imagehlp.h>
#include <ntdbg.h>
#include <ntsdexts.h>
#define NOEXTAPI
#include <wdbgexts.h>
#include <stdexts.h>
#define GETOUTPUTDATA(pEProcess, field, pvData, cbData) \
pvData = (PBYTE)pEProcess + FIELD_OFFSET(EPROCESS, field); \
cbData = sizeof(((PEPROCESS)0)->field);
PVOID GetEProcessData(
PEPROCESS pEProcess,
UINT iData,
PVOID pBuffer)
{
PVOID pvData;
ULONG cbData;
switch (iData) {
case PROCESS_PROCESSLINK:
GETOUTPUTDATA(pEProcess, ActiveProcessLinks, pvData, cbData);
break;
case PROCESS_WIN32PROCESS:
GETOUTPUTDATA(pEProcess, Win32Process, pvData, cbData);
break;
case PROCESS_IMAGEFILENAME:
GETOUTPUTDATA(pEProcess, ImageFileName, pvData, cbData);
break;
case PROCESS_THREADLIST:
GETOUTPUTDATA(pEProcess, Pcb.ThreadListHead, pvData, cbData);
break;
case PROCESS_PRIORITYCLASS:
GETOUTPUTDATA(pEProcess, PriorityClass, pvData, cbData);
break;
case PROCESS_PROCESSHEAD:
return CONTAINING_RECORD(pEProcess, EPROCESS, ActiveProcessLinks);
case PROCESS_PROCESSID:
GETOUTPUTDATA(pEProcess, UniqueProcessId, pvData, cbData);
break;
default:
return NULL;
}
if (!tryMoveBlock(pBuffer, pvData, cbData))
return NULL;
return pvData;
}