mirror of
https://github.com/reactos/reactos.git
synced 2025-02-23 17:05:46 +00:00
- Cleanup the mess in query.c by reformatting the code to remove tab/space confusion and 2-space identation.
- Removed the InfoClass tables and got rid of the thread semi-infoclass table. Created a real InfoClass stub table for thread information - Moved info class tables to a new header, ps_i.h - Simplified syntax of info class macros so that sizeof() is done automatically for the type/alignment. - Reformatted the tables completely to present them in a plesing, ordered, readable fashion. - Added some missing info classes. - Added ARRAYSIZE, RTL_NUMBER_OF(V1/V2) and used them in the info code. - *TEMPORARILY* disable NtQuery/SetThreadInformation until next patch when it can be made to work. svn path=/trunk/; revision=23174
This commit is contained in:
parent
d78c254a8d
commit
69995705e9
4 changed files with 1406 additions and 1247 deletions
|
@ -85,7 +85,15 @@ typedef struct _OBJECT_ATTRIBUTES {
|
|||
#define NOTHING
|
||||
#define RTL_CONSTANT_STRING(s) { sizeof(s)-sizeof((s)[0]), sizeof(s), s }
|
||||
#define TYPE_ALIGNMENT( t ) FIELD_OFFSET( struct { char x; t test; }, test )
|
||||
|
||||
#define RTL_FIELD_SIZE(type, field) (sizeof(((type *)0)->field))
|
||||
#define RTL_NUMBER_OF_V1(A) (sizeof(A)/sizeof((A)[0]))
|
||||
#define RTL_NUMBER_OF_V2(A) RTL_NUMBER_OF_V1(A)
|
||||
#endif
|
||||
#ifdef ENABLE_RTL_NUMBER_OF_V2
|
||||
#define RTL_NUMBER_OF(A) RTL_NUMBER_OF_V2(A)
|
||||
#else
|
||||
#define RTL_NUMBER_OF(A) RTL_NUMBER_OF_V1(A)
|
||||
#define ARRAYSIZE(A) RTL_NUMBER_OF_V2(A)
|
||||
#define MINCHAR 0x80
|
||||
#define MAXCHAR 0x7f
|
||||
#define MINSHORT 0x8000
|
||||
|
|
|
@ -140,11 +140,20 @@ typedef struct _INFORMATION_CLASS_INFO
|
|||
ULONG Flags;
|
||||
} INFORMATION_CLASS_INFO, *PINFORMATION_CLASS_INFO;
|
||||
|
||||
#define ICI_SQ_SAME(Size, Alignment, Flags) \
|
||||
{ Size, Size, Alignment, Alignment, Flags }
|
||||
#define ICI_SQ_SAME(Type, Alignment, Flags) \
|
||||
{ Type, Type, Alignment, Alignment, Flags }
|
||||
|
||||
#define ICI_SQ(SizeQuery, SizeSet, AlignmentQuery, AlignmentSet, Flags) \
|
||||
{ SizeQuery, SizeSet, AlignmentQuery, AlignmentSet, Flags }
|
||||
#define ICI_SQ(TypeQuery, TypeSet, AlignmentQuery, AlignmentSet, Flags) \
|
||||
{ TypeQuery, TypeSet, AlignmentQuery, AlignmentSet, Flags }
|
||||
|
||||
//
|
||||
// TEMPORARY
|
||||
//
|
||||
#define IQS_SAME(Type, Alignment, Flags) \
|
||||
{ sizeof(Type), sizeof(Type), sizeof(Alignment), sizeof(Alignment), Flags }
|
||||
|
||||
#define IQS(TypeQuery, TypeSet, AlignmentQuery, AlignmentSet, Flags) \
|
||||
{ sizeof(TypeQuery), sizeof(TypeSet), sizeof(AlignmentQuery), sizeof(AlignmentSet), Flags }
|
||||
|
||||
static __inline NTSTATUS
|
||||
DefaultSetInfoBufferCheck(UINT Class,
|
||||
|
|
607
reactos/ntoskrnl/include/internal/ps_i.h
Normal file
607
reactos/ntoskrnl/include/internal/ps_i.h
Normal file
|
@ -0,0 +1,607 @@
|
|||
/*
|
||||
* 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
|
||||
(
|
||||
RTL_FIELD_SIZE(PROCESS_DEVICEMAP_INFORMATION, Query),
|
||||
RTL_FIELD_SIZE(PROCESS_DEVICEMAP_INFORMATION, 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
|
||||
(
|
||||
UCHAR,
|
||||
UCHAR,
|
||||
0
|
||||
),
|
||||
|
||||
/* 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
|
||||
),
|
||||
|
||||
/* 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
|
||||
),
|
||||
};
|
File diff suppressed because it is too large
Load diff
Loading…
Reference in a new issue