mirror of
https://github.com/reactos/reactos.git
synced 2024-09-11 21:34:09 +00:00
608 lines
8.5 KiB
C
608 lines
8.5 KiB
C
/*
|
|
* PROJECT: ReactOS Kernel
|
|
* LICENSE: GPL - See COPYING in the top level directory
|
|
* FILE: ntoskrnl/include/ps_i.h
|
|
* PURPOSE: Info Classes for the Process Manager
|
|
* PROGRAMMERS: Alex Ionescu (alex.ionescu@reactos.org)
|
|
* Thomas Weidenmueller (w3seek@reactos.org)
|
|
*/
|
|
|
|
//
|
|
// Process Information Classes
|
|
//
|
|
static const INFORMATION_CLASS_INFO PsProcessInfoClass[] =
|
|
{
|
|
/* ProcessBasicInformation */
|
|
IQS_SAME
|
|
(
|
|
PROCESS_BASIC_INFORMATION,
|
|
ULONG,
|
|
ICIF_QUERY
|
|
),
|
|
|
|
/* ProcessQuotaLimits */
|
|
IQS_SAME
|
|
(
|
|
QUOTA_LIMITS,
|
|
ULONG,
|
|
ICIF_QUERY | ICIF_SET
|
|
),
|
|
|
|
/* ProcessIoCounters */
|
|
IQS_SAME
|
|
(
|
|
IO_COUNTERS,
|
|
ULONG,
|
|
ICIF_QUERY
|
|
),
|
|
|
|
/* ProcessVmCounters */
|
|
IQS_SAME
|
|
(
|
|
VM_COUNTERS,
|
|
ULONG,
|
|
ICIF_QUERY
|
|
),
|
|
|
|
/* ProcessTimes */
|
|
IQS_SAME
|
|
(
|
|
KERNEL_USER_TIMES,
|
|
ULONG,
|
|
ICIF_QUERY
|
|
),
|
|
|
|
/* ProcessBasePriority */
|
|
IQS_SAME
|
|
(
|
|
KPRIORITY,
|
|
ULONG,
|
|
ICIF_SET
|
|
),
|
|
|
|
/* ProcessRaisePriority */
|
|
IQS_SAME
|
|
(
|
|
ULONG,
|
|
ULONG,
|
|
ICIF_SET
|
|
),
|
|
|
|
/* ProcessDebugPort */
|
|
IQS_SAME
|
|
(
|
|
HANDLE,
|
|
ULONG,
|
|
ICIF_QUERY
|
|
),
|
|
|
|
/* ProcessExceptionPort */
|
|
IQS_SAME
|
|
(
|
|
HANDLE,
|
|
ULONG,
|
|
ICIF_SET
|
|
),
|
|
|
|
/* ProcessAccessToken */
|
|
IQS_SAME
|
|
(
|
|
PROCESS_ACCESS_TOKEN,
|
|
ULONG,
|
|
ICIF_SET
|
|
),
|
|
|
|
/* ProcessLdtInformation */
|
|
IQS_SAME
|
|
(
|
|
UCHAR,
|
|
ULONG,
|
|
ICIF_QUERY | ICIF_SET
|
|
),
|
|
|
|
/* ProcessLdtSize */
|
|
IQS_SAME
|
|
(
|
|
UCHAR,
|
|
ULONG,
|
|
ICIF_SET
|
|
),
|
|
|
|
/* ProcessDefaultHardErrorMode */
|
|
IQS_SAME
|
|
(
|
|
ULONG,
|
|
ULONG,
|
|
ICIF_QUERY | ICIF_SET
|
|
),
|
|
|
|
/* ProcessIoPortHandlers */
|
|
IQS_SAME
|
|
(
|
|
UCHAR,
|
|
ULONG,
|
|
ICIF_SET
|
|
),
|
|
|
|
/* ProcessPooledUsageAndLimits */
|
|
IQS_SAME
|
|
(
|
|
POOLED_USAGE_AND_LIMITS,
|
|
ULONG,
|
|
ICIF_QUERY
|
|
),
|
|
|
|
/* ProcessWorkingSetWatch */
|
|
IQS_SAME
|
|
(
|
|
PROCESS_WS_WATCH_INFORMATION,
|
|
ULONG,
|
|
ICIF_QUERY | ICIF_SET
|
|
),
|
|
|
|
/* ProcessUserModeIOPL */
|
|
IQS_SAME
|
|
(
|
|
UCHAR,
|
|
ULONG,
|
|
ICIF_SET
|
|
),
|
|
|
|
/* ProcessEnableAlignmentFaultFixup */
|
|
IQS_SAME
|
|
(
|
|
BOOLEAN,
|
|
ULONG,
|
|
ICIF_SET
|
|
),
|
|
|
|
/* ProcessPriorityClass */
|
|
IQS_SAME
|
|
(
|
|
PROCESS_PRIORITY_CLASS,
|
|
USHORT,
|
|
ICIF_QUERY | ICIF_SET
|
|
),
|
|
|
|
/* ProcessWx86Information */
|
|
IQS_SAME
|
|
(
|
|
ULONG,
|
|
ULONG,
|
|
ICIF_QUERY
|
|
),
|
|
|
|
/* ProcessHandleCount */
|
|
IQS_SAME
|
|
(
|
|
ULONG,
|
|
ULONG,
|
|
ICIF_QUERY
|
|
),
|
|
|
|
/* ProcessAffinityMask */
|
|
IQS_SAME
|
|
(
|
|
KAFFINITY,
|
|
ULONG,
|
|
ICIF_SET
|
|
),
|
|
|
|
/* ProcessPriorityBoost */
|
|
IQS_SAME
|
|
(
|
|
ULONG,
|
|
ULONG,
|
|
ICIF_QUERY | ICIF_SET
|
|
),
|
|
|
|
/* ProcessDeviceMap */
|
|
IQS
|
|
(
|
|
((PROCESS_DEVICEMAP_INFORMATION*)0)->Query,
|
|
((PROCESS_DEVICEMAP_INFORMATION*)0)->Set,
|
|
ULONG,
|
|
ULONG,
|
|
ICIF_QUERY | ICIF_SET
|
|
),
|
|
|
|
/* ProcessSessionInformation */
|
|
IQS_SAME
|
|
(
|
|
PROCESS_SESSION_INFORMATION,
|
|
ULONG,
|
|
ICIF_QUERY | ICIF_SET
|
|
),
|
|
|
|
/* ProcessForegroundInformation */
|
|
IQS_SAME
|
|
(
|
|
BOOLEAN,
|
|
ULONG,
|
|
ICIF_SET
|
|
),
|
|
|
|
/* ProcessWow64Information */
|
|
IQS_SAME
|
|
(
|
|
ULONG,
|
|
ULONG,
|
|
ICIF_QUERY
|
|
),
|
|
|
|
/* ProcessImageFileName */
|
|
IQS_SAME
|
|
(
|
|
UNICODE_STRING,
|
|
ULONG,
|
|
ICIF_QUERY | ICIF_SIZE_VARIABLE
|
|
),
|
|
|
|
/* ProcessLUIDDeviceMapsEnabled */
|
|
IQS_SAME
|
|
(
|
|
UCHAR,
|
|
UCHAR,
|
|
0
|
|
),
|
|
|
|
/* ProcessBreakOnTermination */
|
|
IQS_SAME
|
|
(
|
|
ULONG,
|
|
ULONG,
|
|
ICIF_QUERY | ICIF_SET
|
|
),
|
|
|
|
/* ProcessDebugObjectHandle */
|
|
IQS_SAME
|
|
(
|
|
UCHAR,
|
|
UCHAR,
|
|
0
|
|
),
|
|
|
|
/* ProcessDebugFlags */
|
|
IQS_SAME
|
|
(
|
|
UCHAR,
|
|
UCHAR,
|
|
0
|
|
),
|
|
|
|
/* ProcessHandleTracing */
|
|
IQS_SAME
|
|
(
|
|
UCHAR,
|
|
UCHAR,
|
|
0
|
|
),
|
|
|
|
/* ProcessIoPriority */
|
|
IQS_SAME
|
|
(
|
|
UCHAR,
|
|
UCHAR,
|
|
0
|
|
),
|
|
|
|
/* ProcessExecuteFlags */
|
|
IQS_SAME
|
|
(
|
|
UCHAR,
|
|
UCHAR,
|
|
0
|
|
),
|
|
|
|
/* ProcessTlsInformation */
|
|
IQS_SAME
|
|
(
|
|
UCHAR,
|
|
UCHAR,
|
|
0
|
|
),
|
|
|
|
/* ProcessCookie */
|
|
IQS_SAME
|
|
(
|
|
UCHAR,
|
|
UCHAR,
|
|
0
|
|
),
|
|
|
|
/* ProcessImageInformation */
|
|
IQS_SAME
|
|
(
|
|
UCHAR,
|
|
UCHAR,
|
|
0
|
|
),
|
|
|
|
/* ProcessCycleTime */
|
|
IQS_SAME
|
|
(
|
|
UCHAR,
|
|
UCHAR,
|
|
0
|
|
),
|
|
|
|
/* ProcessPagePriority */
|
|
IQS_SAME
|
|
(
|
|
UCHAR,
|
|
UCHAR,
|
|
0
|
|
),
|
|
|
|
/* ProcessInstrumentationCallback */
|
|
IQS_SAME
|
|
(
|
|
UCHAR,
|
|
UCHAR,
|
|
0
|
|
),
|
|
};
|
|
|
|
//
|
|
// Thread Information Classes
|
|
//
|
|
static const INFORMATION_CLASS_INFO PsThreadInfoClass[] =
|
|
{
|
|
/* ThreadBasicInformation */
|
|
IQS_SAME
|
|
(
|
|
THREAD_BASIC_INFORMATION,
|
|
ULONG,
|
|
ICIF_QUERY
|
|
),
|
|
|
|
/* ThreadTimes */
|
|
IQS_SAME
|
|
(
|
|
KERNEL_USER_TIMES,
|
|
ULONG,
|
|
ICIF_QUERY
|
|
),
|
|
|
|
/* ThreadPriority */
|
|
IQS_SAME
|
|
(
|
|
KPRIORITY,
|
|
ULONG,
|
|
ICIF_QUERY
|
|
),
|
|
|
|
/* ThreadBasePriority */
|
|
IQS_SAME
|
|
(
|
|
LONG,
|
|
ULONG,
|
|
ICIF_QUERY
|
|
),
|
|
|
|
/* ThreadAffinityMask */
|
|
IQS_SAME
|
|
(
|
|
KAFFINITY,
|
|
ULONG,
|
|
ICIF_QUERY
|
|
),
|
|
|
|
/* ThreadImpersonationToken */
|
|
IQS_SAME
|
|
(
|
|
HANDLE,
|
|
ULONG,
|
|
ICIF_QUERY | ICIF_SET
|
|
),
|
|
|
|
/* ThreadDescriptorTableEntry */
|
|
IQS_SAME
|
|
(
|
|
UCHAR,
|
|
UCHAR,
|
|
ICIF_QUERY
|
|
),
|
|
|
|
/* ThreadEnableAlignmentFaultFixup */
|
|
IQS_SAME
|
|
(
|
|
UCHAR,
|
|
UCHAR,
|
|
ICIF_QUERY
|
|
),
|
|
|
|
/* ThreadEventPair_Reusable */
|
|
IQS_SAME
|
|
(
|
|
UCHAR,
|
|
UCHAR,
|
|
ICIF_QUERY
|
|
),
|
|
|
|
/* ThreadQuerySetWin32StartAddress */
|
|
IQS_SAME
|
|
(
|
|
PVOID,
|
|
ULONG,
|
|
ICIF_QUERY | ICIF_SET
|
|
),
|
|
|
|
/* ThreadZeroTlsCell */
|
|
IQS_SAME
|
|
(
|
|
UCHAR,
|
|
UCHAR,
|
|
ICIF_QUERY
|
|
),
|
|
|
|
/* ThreadPerformanceCount */
|
|
IQS_SAME
|
|
(
|
|
LARGE_INTEGER,
|
|
ULONG,
|
|
ICIF_QUERY
|
|
),
|
|
|
|
/* ThreadAmILastThread */
|
|
IQS_SAME
|
|
(
|
|
BOOLEAN,
|
|
BOOLEAN,
|
|
ICIF_QUERY
|
|
),
|
|
|
|
/* ThreadIdealProcessor */
|
|
IQS_SAME
|
|
(
|
|
UCHAR,
|
|
UCHAR,
|
|
ICIF_QUERY
|
|
),
|
|
|
|
/* ThreadPriorityBoost */
|
|
IQS_SAME
|
|
(
|
|
UCHAR,
|
|
UCHAR,
|
|
ICIF_QUERY
|
|
),
|
|
|
|
/* ThreadSetTlsArrayAddress */
|
|
IQS_SAME
|
|
(
|
|
UCHAR,
|
|
UCHAR,
|
|
ICIF_QUERY
|
|
),
|
|
|
|
/* ThreadIsIoPending */
|
|
IQS_SAME
|
|
(
|
|
ULONG,
|
|
ULONG,
|
|
ICIF_QUERY
|
|
),
|
|
|
|
/* ThreadHideFromDebugger */
|
|
IQS_SAME
|
|
(
|
|
UCHAR,
|
|
UCHAR,
|
|
ICIF_QUERY
|
|
),
|
|
|
|
|
|
/* ThreadPriorityBoost */
|
|
IQS_SAME
|
|
(
|
|
UCHAR,
|
|
UCHAR,
|
|
ICIF_QUERY
|
|
),
|
|
|
|
/* ThreadSetTlsArrayAddress */
|
|
IQS_SAME
|
|
(
|
|
UCHAR,
|
|
UCHAR,
|
|
ICIF_QUERY
|
|
),
|
|
|
|
/* ThreadIsIoPending */
|
|
IQS_SAME
|
|
(
|
|
ULONG,
|
|
ULONG,
|
|
ICIF_QUERY
|
|
),
|
|
|
|
/* ThreadHideFromDebugger */
|
|
IQS_SAME
|
|
(
|
|
UCHAR,
|
|
UCHAR,
|
|
ICIF_QUERY
|
|
),
|
|
|
|
/* ThreadBreakOnTermination */
|
|
IQS_SAME
|
|
(
|
|
UCHAR,
|
|
UCHAR,
|
|
ICIF_QUERY
|
|
),
|
|
|
|
/* ThreadSwitchLegacyState */
|
|
IQS_SAME
|
|
(
|
|
UCHAR,
|
|
UCHAR,
|
|
ICIF_QUERY
|
|
),
|
|
|
|
/* ThreadIsTerminated */
|
|
IQS_SAME
|
|
(
|
|
ULONG,
|
|
ULONG,
|
|
ICIF_QUERY
|
|
),
|
|
|
|
/* ThreadLastSystemCall */
|
|
IQS_SAME
|
|
(
|
|
UCHAR,
|
|
UCHAR,
|
|
ICIF_QUERY
|
|
),
|
|
|
|
/* ThreadIoPriority */
|
|
IQS_SAME
|
|
(
|
|
UCHAR,
|
|
UCHAR,
|
|
ICIF_QUERY
|
|
),
|
|
|
|
/* ThreadCycleTime */
|
|
IQS_SAME
|
|
(
|
|
UCHAR,
|
|
UCHAR,
|
|
ICIF_QUERY
|
|
),
|
|
|
|
/* ThreadPagePriority */
|
|
IQS_SAME
|
|
(
|
|
ULONG,
|
|
ULONG,
|
|
ICIF_QUERY
|
|
),
|
|
|
|
/* ThreadActualBasePriority */
|
|
IQS_SAME
|
|
(
|
|
UCHAR,
|
|
UCHAR,
|
|
ICIF_QUERY
|
|
),
|
|
|
|
/* ThreadTebInformation */
|
|
IQS_SAME
|
|
(
|
|
ULONG,
|
|
ULONG,
|
|
ICIF_QUERY
|
|
),
|
|
|
|
/* ThreadCSwitchMon */
|
|
IQS_SAME
|
|
(
|
|
UCHAR,
|
|
UCHAR,
|
|
ICIF_QUERY
|
|
),
|
|
};
|