ReactOS 0.4.17-dev-1190-g4c812f4
winternl.h File Reference
#include <windef.h>
Include dependency graph for winternl.h:

Go to the source code of this file.

Classes

struct  _STRING
 
struct  _UNICODE_STRING
 
struct  _RTL_USER_PROCESS_PARAMETERS
 
struct  _PEB_LDR_DATA
 
struct  _LDR_DATA_TABLE_ENTRY
 
struct  _PEB
 
struct  _TEB
 
struct  _OBJECT_ATTRIBUTES
 
struct  _IO_STATUS_BLOCK
 
struct  _KEY_VALUE_ENTRY
 
struct  _PROCESS_BASIC_INFORMATION
 
struct  _PUBLIC_OBJECT_BASIC_INFORMATION
 
struct  __PUBLIC_OBJECT_TYPE_INFORMATION
 
struct  _SYSTEM_BASIC_INFORMATION
 
struct  _SYSTEM_PERFORMANCE_INFORMATION
 
struct  _SYSTEM_TIMEOFDAY_INFORMATION
 
struct  _SYSTEM_PROCESS_INFORMATION
 
struct  _SYSTEM_PROCESSOR_PERFORMANCE_INFORMATION
 
struct  _SYSTEM_INTERRUPT_INFORMATION
 
struct  _SYSTEM_EXCEPTION_INFORMATION
 
struct  _SYSTEM_REGISTRY_QUOTA_INFORMATION
 
struct  _SYSTEM_LOOKASIDE_INFORMATION
 
struct  _SYSTEM_POLICY_INFORMATION
 
struct  _WINSTATIONINFORMATIONW
 

Macros

#define _WINTERNL_
 
#define NT_SUCCESS(Status)   (((NTSTATUS)(Status)) >= 0)
 
#define NT_INFORMATION(Status)   ((((ULONG)(Status)) >> 30) == 1)
 
#define NT_WARNING(Status)   ((((ULONG)(Status)) >> 30) == 2)
 
#define NT_ERROR(Status)   ((((ULONG)(Status)) >> 30) == 3)
 
#define INTERNAL_TS_ACTIVE_CONSOLE_ID   (*((volatile ULONG*)0x7ffe02d8))
 
#define LOGONID_CURRENT   ((ULONG)-1)
 
#define SERVERNAME_CURRENT   ((HANDLE)NULL)
 
#define FILE_DIRECTORY_FILE   0x00000001
 
#define FILE_WRITE_THROUGH   0x00000002
 
#define FILE_SEQUENTIAL_ONLY   0x00000004
 
#define FILE_NO_INTERMEDIATE_BUFFERING   0x00000008
 
#define FILE_SYNCHRONOUS_IO_ALERT   0x00000010
 
#define FILE_SYNCHRONOUS_IO_NONALERT   0x00000020
 
#define FILE_NON_DIRECTORY_FILE   0x00000040
 
#define FILE_CREATE_TREE_CONNECTION   0x00000080
 
#define FILE_COMPLETE_IF_OPLOCKED   0x00000100
 
#define FILE_NO_EA_KNOWLEDGE   0x00000200
 
#define FILE_OPEN_REMOTE_INSTANCE   0x00000400
 
#define FILE_RANDOM_ACCESS   0x00000800
 
#define FILE_DELETE_ON_CLOSE   0x00001000
 
#define FILE_OPEN_BY_FILE_ID   0x00002000
 
#define FILE_OPEN_FOR_BACKUP_INTENT   0x00004000
 
#define FILE_NO_COMPRESSION   0x00008000
 
#define FILE_OPEN_REQUIRING_OPLOCK   0x00010000
 
#define FILE_RESERVE_OPFILTER   0x00100000
 
#define FILE_OPEN_REPARSE_POINT   0x00200000
 
#define FILE_OPEN_NO_RECALL   0x00400000
 
#define FILE_OPEN_FOR_FREE_SPACE_QUERY   0x00800000
 
#define FILE_SUPERSEDED   0x00000000
 
#define FILE_OPENED   0x00000001
 
#define FILE_CREATED   0x00000002
 
#define FILE_OVERWRITTEN   0x00000003
 
#define FILE_EXISTS   0x00000004
 
#define FILE_DOES_NOT_EXIST   0x00000005
 
#define FILE_VALID_OPTION_FLAGS   0x00ffffff
 
#define FILE_VALID_PIPE_OPTION_FLAGS   0x00000032
 
#define FILE_VALID_MAILSLOT_OPTION_FLAGS   0x00000032
 
#define FILE_VALID_SET_FLAGS   0x00000036
 
#define FILE_SUPERSEDE   0x00000000
 
#define FILE_OPEN   0x00000001
 
#define FILE_CREATE   0x00000002
 
#define FILE_OPEN_IF   0x00000003
 
#define FILE_OVERWRITE   0x00000004
 
#define FILE_OVERWRITE_IF   0x00000005
 
#define FILE_MAXIMUM_DISPOSITION   0x00000005
 
#define OBJ_INHERIT   0x00000002L
 
#define OBJ_PERMANENT   0x00000010L
 
#define OBJ_EXCLUSIVE   0x00000020L
 
#define OBJ_CASE_INSENSITIVE   0x00000040L
 
#define OBJ_OPENIF   0x00000080L
 
#define OBJ_OPENLINK   0x00000100L
 
#define OBJ_KERNEL_HANDLE   0x00000200L
 
#define OBJ_FORCE_ACCESS_CHECK   0x00000400L
 
#define OBJ_VALID_ATTRIBUTES   0x000007F2L
 
#define InitializeObjectAttributes(p, n, a, r, s)
 
#define PIO_APC_ROUTINE_DEFINED
 
#define RtlMoveMemory(Dest, Source, Length)   memmove((Dest),(Source),(Length))
 
#define RtlFillMemory(Dest, Length, Fill)   memset((Dest),(Fill),(Length))
 
#define RtlZeroMemory(Dest, Length)   RtlFillMemory((Dest),(Length),0)
 

Typedefs

typedef CONST char * PCSZ
 
typedef struct _STRING STRING
 
typedef struct _STRING * PSTRING
 
typedef STRING ANSI_STRING
 
typedef PSTRING PANSI_STRING
 
typedef PSTRING PCANSI_STRING
 
typedef STRING OEM_STRING
 
typedef PSTRING POEM_STRING
 
typedef const STRING * PCOEM_STRING
 
typedef struct _UNICODE_STRING UNICODE_STRING
 
typedef struct _UNICODE_STRING * PUNICODE_STRING
 
typedef const UNICODE_STRING * PCUNICODE_STRING
 
typedef struct _RTL_USER_PROCESS_PARAMETERS RTL_USER_PROCESS_PARAMETERS
 
typedef struct _RTL_USER_PROCESS_PARAMETERS * PRTL_USER_PROCESS_PARAMETERS
 
typedef struct _PEB_LDR_DATA PEB_LDR_DATA
 
typedef struct _PEB_LDR_DATA * PPEB_LDR_DATA
 
typedef struct _LDR_DATA_TABLE_ENTRY LDR_DATA_TABLE_ENTRY
 
typedef struct _LDR_DATA_TABLE_ENTRY * PLDR_DATA_TABLE_ENTRY
 
typedef VOID(NTAPI * PPS_POST_PROCESS_INIT_ROUTINE) (VOID)
 
typedef struct _PEB PEB
 
typedef struct _PEB * PPEB
 
typedef struct _TEB TEB
 
typedef struct _TEB * PTEB
 
typedef enum _FILE_INFORMATION_CLASS FILE_INFORMATION_CLASS
 
typedef struct _OBJECT_ATTRIBUTES OBJECT_ATTRIBUTES
 
typedef struct _OBJECT_ATTRIBUTES * POBJECT_ATTRIBUTES
 
typedef struct _IO_STATUS_BLOCK IO_STATUS_BLOCK
 
typedef struct _IO_STATUS_BLOCK * PIO_STATUS_BLOCK
 
typedef VOID(NTAPI * PIO_APC_ROUTINE) (_In_ PVOID ApcContext, _In_ PIO_STATUS_BLOCK IoStatusBlock, _In_ ULONG Reserved)
 
typedef struct _KEY_VALUE_ENTRY KEY_VALUE_ENTRY
 
typedef struct _KEY_VALUE_ENTRY * PKEY_VALUE_ENTRY
 
typedef enum _KEY_SET_INFORMATION_CLASS KEY_SET_INFORMATION_CLASS
 
typedef enum _PROCESSINFOCLASS PROCESSINFOCLASS
 
typedef struct _PROCESS_BASIC_INFORMATION PROCESS_BASIC_INFORMATION
 
typedef struct _PROCESS_BASIC_INFORMATION * PPROCESS_BASIC_INFORMATION
 
typedef enum _THREADINFOCLASS THREADINFOCLASS
 
typedef enum _OBJECT_INFORMATION_CLASS OBJECT_INFORMATION_CLASS
 
typedef struct _PUBLIC_OBJECT_BASIC_INFORMATION PUBLIC_OBJECT_BASIC_INFORMATION
 
typedef struct _PUBLIC_OBJECT_BASIC_INFORMATION * PPUBLIC_OBJECT_BASIC_INFORMATION
 
typedef struct __PUBLIC_OBJECT_TYPE_INFORMATION PUBLIC_OBJECT_TYPE_INFORMATION
 
typedef struct __PUBLIC_OBJECT_TYPE_INFORMATION * PPUBLIC_OBJECT_TYPE_INFORMATION
 
typedef enum _SYSTEM_INFORMATION_CLASS SYSTEM_INFORMATION_CLASS
 
typedef struct _SYSTEM_BASIC_INFORMATION SYSTEM_BASIC_INFORMATION
 
typedef struct _SYSTEM_BASIC_INFORMATION * PSYSTEM_BASIC_INFORMATION
 
typedef struct _SYSTEM_PERFORMANCE_INFORMATION SYSTEM_PERFORMANCE_INFORMATION
 
typedef struct _SYSTEM_PERFORMANCE_INFORMATION * PSYSTEM_PERFORMANCE_INFORMATION
 
typedef struct _SYSTEM_TIMEOFDAY_INFORMATION SYSTEM_TIMEOFDAY_INFORMATION
 
typedef struct _SYSTEM_TIMEOFDAY_INFORMATION * PSYSTEM_TIMEOFDAY_INFORMATION
 
typedef struct _SYSTEM_PROCESS_INFORMATION SYSTEM_PROCESS_INFORMATION
 
typedef struct _SYSTEM_PROCESS_INFORMATION * PSYSTEM_PROCESS_INFORMATION
 
typedef struct _SYSTEM_PROCESSOR_PERFORMANCE_INFORMATION SYSTEM_PROCESSOR_PERFORMANCE_INFORMATION
 
typedef struct _SYSTEM_PROCESSOR_PERFORMANCE_INFORMATION * PSYSTEM_PROCESSOR_PERFORMANCE_INFORMATION
 
typedef struct _SYSTEM_INTERRUPT_INFORMATION SYSTEM_INTERRUPT_INFORMATION
 
typedef struct _SYSTEM_INTERRUPT_INFORMATION * PSYSTEM_INTERRUPT_INFORMATION
 
typedef struct _SYSTEM_EXCEPTION_INFORMATION SYSTEM_EXCEPTION_INFORMATION
 
typedef struct _SYSTEM_EXCEPTION_INFORMATION * PSYSTEM_EXCEPTION_INFORMATION
 
typedef struct _SYSTEM_REGISTRY_QUOTA_INFORMATION SYSTEM_REGISTRY_QUOTA_INFORMATION
 
typedef struct _SYSTEM_REGISTRY_QUOTA_INFORMATION * PSYSTEM_REGISTRY_QUOTA_INFORMATION
 
typedef struct _SYSTEM_LOOKASIDE_INFORMATION SYSTEM_LOOKASIDE_INFORMATION
 
typedef struct _SYSTEM_LOOKASIDE_INFORMATION * PSYSTEM_LOOKASIDE_INFORMATION
 
typedef struct _SYSTEM_POLICY_INFORMATION SYSTEM_POLICY_INFORMATION
 
typedef struct _SYSTEM_POLICY_INFORMATION * PSYSTEM_POLICY_INFORMATION
 
typedef enum _WINSTATIONINFOCLASS WINSTATIONINFOCLASS
 
typedef struct _WINSTATIONINFORMATIONW WINSTATIONINFORMATIONW
 
typedef struct _WINSTATIONINFORMATIONW * PWINSTATIONINFORMATIONW
 
typedef BOOLEAN(WINAPI * PWINSTATIONQUERYINFORMATIONW) (HANDLE, ULONG, WINSTATIONINFOCLASS, PVOID, ULONG, PULONG)
 

Enumerations

enum  _FILE_INFORMATION_CLASS {
  FileDirectoryInformation = 1 , FileFullDirectoryInformation , FileBothDirectoryInformation , FileBasicInformation ,
  FileStandardInformation , FileInternalInformation , FileEaInformation , FileAccessInformation ,
  FileNameInformation , FileRenameInformation , FileLinkInformation , FileNamesInformation ,
  FileDispositionInformation , FilePositionInformation , FileFullEaInformation , FileModeInformation ,
  FileAlignmentInformation , FileAllInformation , FileAllocationInformation , FileEndOfFileInformation ,
  FileAlternateNameInformation , FileStreamInformation , FilePipeInformation , FilePipeLocalInformation ,
  FilePipeRemoteInformation , FileMailslotQueryInformation , FileMailslotSetInformation , FileCompressionInformation ,
  FileObjectIdInformation , FileCompletionInformation , FileMoveClusterInformation , FileQuotaInformation ,
  FileReparsePointInformation , FileNetworkOpenInformation , FileAttributeTagInformation , FileTrackingInformation ,
  FileIdBothDirectoryInformation , FileIdFullDirectoryInformation , FileValidDataLengthInformation , FileShortNameInformation ,
  FileIoCompletionNotificationInformation , FileIoStatusBlockRangeInformation , FileIoPriorityHintInformation , FileSfioReserveInformation ,
  FileSfioVolumeInformation , FileHardLinkInformation , FileProcessIdsUsingFileInformation , FileNormalizedNameInformation ,
  FileNetworkPhysicalNameInformation , FileIdGlobalTxDirectoryInformation , FileMaximumInformation , FileDirectoryInformation = 1 ,
  FileFullDirectoryInformation , FileBothDirectoryInformation , FileBasicInformation , FileStandardInformation ,
  FileInternalInformation , FileEaInformation , FileAccessInformation , FileNameInformation ,
  FileRenameInformation , FileLinkInformation , FileNamesInformation , FileDispositionInformation ,
  FilePositionInformation , FileFullEaInformation , FileModeInformation , FileAlignmentInformation ,
  FileAllInformation , FileAllocationInformation , FileEndOfFileInformation , FileAlternateNameInformation ,
  FileStreamInformation , FilePipeInformation , FilePipeLocalInformation , FilePipeRemoteInformation ,
  FileMailslotQueryInformation , FileMailslotSetInformation , FileCompressionInformation , FileCopyOnWriteInformation ,
  FileCompletionInformation , FileMoveClusterInformation , FileOleClassIdInformation , FileOleStateBitsInformation ,
  FileNetworkOpenInformation , FileObjectIdInformation , FileOleAllInformation , FileOleDirectoryInformation ,
  FileContentIndexInformation , FileInheritContentIndexInformation , FileOleInformation , FileMaximumInformation ,
  FileDirectoryInformation = 1 , FileFullDirectoryInformation , FileBothDirectoryInformation , FileBasicInformation ,
  FileStandardInformation , FileInternalInformation , FileEaInformation , FileAccessInformation ,
  FileNameInformation , FileRenameInformation , FileLinkInformation , FileNamesInformation ,
  FileDispositionInformation , FilePositionInformation , FileFullEaInformation , FileModeInformation ,
  FileAlignmentInformation , FileAllInformation , FileAllocationInformation , FileEndOfFileInformation ,
  FileAlternateNameInformation , FileStreamInformation , FilePipeInformation , FilePipeLocalInformation ,
  FilePipeRemoteInformation , FileMailslotQueryInformation , FileMailslotSetInformation , FileCompressionInformation ,
  FileCopyOnWriteInformation , FileCompletionInformation , FileMoveClusterInformation , FileOleClassIdInformation ,
  FileOleStateBitsInformation , FileNetworkOpenInformation , FileObjectIdInformation , FileOleAllInformation ,
  FileOleDirectoryInformation , FileContentIndexInformation , FileInheritContentIndexInformation , FileOleInformation ,
  FileMaximumInformation , FileDirectoryInformation = 1 , FileDirectoryInformation = 1 , FileFullDirectoryInformation ,
  FileBothDirectoryInformation , FileBasicInformation , FileStandardInformation , FileInternalInformation ,
  FileEaInformation , FileAccessInformation , FileNameInformation , FileRenameInformation ,
  FileLinkInformation , FileNamesInformation , FileDispositionInformation , FilePositionInformation ,
  FileFullEaInformation , FileModeInformation , FileAlignmentInformation , FileAllInformation ,
  FileAllocationInformation , FileEndOfFileInformation , FileAlternateNameInformation , FileStreamInformation ,
  FilePipeInformation , FilePipeLocalInformation , FilePipeRemoteInformation , FileMailslotQueryInformation ,
  FileMailslotSetInformation , FileCompressionInformation , FileObjectIdInformation , FileCompletionInformation ,
  FileMoveClusterInformation , FileQuotaInformation , FileReparsePointInformation , FileNetworkOpenInformation ,
  FileAttributeTagInformation , FileTrackingInformation , FileIdBothDirectoryInformation , FileIdFullDirectoryInformation ,
  FileValidDataLengthInformation , FileShortNameInformation , FileIoCompletionNotificationInformation , FileIoStatusBlockRangeInformation ,
  FileIoPriorityHintInformation , FileSfioReserveInformation , FileSfioVolumeInformation , FileHardLinkInformation ,
  FileProcessIdsUsingFileInformation , FileNormalizedNameInformation , FileNetworkPhysicalNameInformation , FileIdGlobalTxDirectoryInformation ,
  FileIsRemoteDeviceInformation , FileAttributeCacheInformation , FileNumaNodeInformation , FileStandardLinkInformation ,
  FileRemoteProtocolInformation , FileRenameInformationBypassAccessCheck , FileLinkInformationBypassAccessCheck , FileVolumeNameInformation ,
  FileIdInformation , FileIdExtdDirectoryInformation , FileReplaceCompletionInformation , FileHardLinkFullIdInformation ,
  FileIdExtdBothDirectoryInformation , FileDispositionInformationEx , FileRenameInformationEx , FileRenameInformationExBypassAccessCheck ,
  FileDesiredStorageClassInformation , FileStatInformation , FileMemoryPartitionInformation , FileStatLxInformation ,
  FileCaseSensitiveInformation , FileLinkInformationEx , FileLinkInformationExBypassAccessCheck , FileStorageReserveIdInformation ,
  FileCaseSensitiveInformationForceAccessCheck , FileKnownFolderInformation , FileMaximumInformation , FileDirectoryInformation = 1 ,
  FileFullDirectoryInformation , FileBothDirectoryInformation , FileBasicInformation , FileStandardInformation ,
  FileInternalInformation , FileEaInformation , FileAccessInformation , FileNameInformation ,
  FileRenameInformation , FileLinkInformation , FileNamesInformation , FileDispositionInformation ,
  FilePositionInformation , FileFullEaInformation , FileModeInformation , FileAlignmentInformation ,
  FileAllInformation , FileAllocationInformation , FileEndOfFileInformation , FileAlternateNameInformation ,
  FileStreamInformation , FilePipeInformation , FilePipeLocalInformation , FilePipeRemoteInformation ,
  FileMailslotQueryInformation , FileMailslotSetInformation , FileCompressionInformation , FileObjectIdInformation ,
  FileCompletionInformation , FileMoveClusterInformation , FileQuotaInformation , FileReparsePointInformation ,
  FileNetworkOpenInformation , FileAttributeTagInformation , FileTrackingInformation , FileIdBothDirectoryInformation ,
  FileIdFullDirectoryInformation , FileValidDataLengthInformation , FileShortNameInformation , FileIoCompletionNotificationInformation ,
  FileIoStatusBlockRangeInformation , FileIoPriorityHintInformation , FileSfioReserveInformation , FileSfioVolumeInformation ,
  FileHardLinkInformation , FileProcessIdsUsingFileInformation , FileNormalizedNameInformation , FileNetworkPhysicalNameInformation ,
  FileIdGlobalTxDirectoryInformation , FileIsRemoteDeviceInformation , FileAttributeCacheInformation , FileNumaNodeInformation ,
  FileStandardLinkInformation , FileRemoteProtocolInformation , FileMaximumInformation
}
 
enum  _KEY_SET_INFORMATION_CLASS {
  KeyWriteTimeInformation , KeyWriteTimeInformation , KeyWow64FlagsInformation , KeyControlFlagsInformation ,
  KeySetVirtualizationInformation , KeySetDebugInformation , KeySetHandleTagsInformation , MaxKeySetInfoClass ,
  KeyWriteTimeInformation , KeyWow64FlagsInformation , KeyControlFlagsInformation , KeySetVirtualizationInformation ,
  KeySetDebugInformation , KeySetHandleTagsInformation , MaxKeySetInfoClass
}
 
enum  _PROCESSINFOCLASS {
  ProcessBasicInformation = 0 , ProcessDebugPort = 7 , ProcessWow64Information = 26 , ProcessImageFileName = 27 ,
  ProcessBreakOnTermination = 29 , ProcessBasicInformation = 0 , ProcessDebugPort = 7 , ProcessWow64Information = 26 ,
  ProcessImageFileName = 27 , ProcessBreakOnTermination = 29 , ProcessBasicInformation = 0 , ProcessQuotaLimits = 1 ,
  ProcessIoCounters = 2 , ProcessVmCounters = 3 , ProcessTimes = 4 , ProcessBasePriority = 5 ,
  ProcessRaisePriority = 6 , ProcessDebugPort = 7 , ProcessExceptionPort = 8 , ProcessAccessToken = 9 ,
  ProcessLdtInformation = 10 , ProcessLdtSize = 11 , ProcessDefaultHardErrorMode = 12 , ProcessIoPortHandlers = 13 ,
  ProcessPooledUsageAndLimits = 14 , ProcessWorkingSetWatch = 15 , ProcessUserModeIOPL = 16 , ProcessEnableAlignmentFaultFixup = 17 ,
  ProcessPriorityClass = 18 , ProcessWx86Information = 19 , ProcessHandleCount = 20 , ProcessAffinityMask = 21 ,
  ProcessPriorityBoost = 22 , ProcessDeviceMap = 23 , ProcessSessionInformation = 24 , ProcessForegroundInformation = 25 ,
  ProcessWow64Information = 26 , ProcessImageFileName = 27 , ProcessLUIDDeviceMapsEnabled = 28 , ProcessBreakOnTermination = 29 ,
  ProcessDebugObjectHandle = 30 , ProcessDebugFlags = 31 , ProcessHandleTracing = 32 , ProcessIoPriority = 33 ,
  ProcessExecuteFlags = 34 , ProcessTlsInformation = 35 , ProcessCookie = 36 , ProcessImageInformation = 37 ,
  ProcessCycleTime = 38 , ProcessPagePriority = 39 , ProcessInstrumentationCallback = 40 , ProcessThreadStackAllocation = 41 ,
  ProcessWorkingSetWatchEx = 42 , ProcessImageFileNameWin32 = 43 , ProcessImageFileMapping = 44 , ProcessAffinityUpdateMode = 45 ,
  ProcessMemoryAllocationMode = 46 , ProcessGroupInformation = 47 , ProcessTokenVirtualizationEnabled = 48 , ProcessConsoleHostProcess = 49 ,
  ProcessWindowInformation = 50 , ProcessHandleInformation = 51 , ProcessMitigationPolicy = 52 , ProcessDynamicFunctionTableInformation = 53 ,
  ProcessHandleCheckingMode = 54 , ProcessKeepAliveCount = 55 , ProcessRevokeFileHandles = 56 , ProcessWorkingSetControl = 57 ,
  ProcessHandleTable = 58 , ProcessCheckStackExtentsMode = 59 , ProcessCommandLineInformation = 60 , ProcessProtectionInformation = 61 ,
  ProcessMemoryExhaustion = 62 , ProcessFaultInformation = 63 , ProcessTelemetryIdInformation = 64 , ProcessCommitReleaseInformation = 65 ,
  ProcessDefaultCpuSetsInformation = 66 , ProcessAllowedCpuSetsInformation = 67 , ProcessSubsystemProcess = 68 , ProcessJobMemoryInformation = 69 ,
  ProcessInPrivate = 70 , ProcessRaiseUMExceptionOnInvalidHandleClose = 71 , ProcessIumChallengeResponse = 72 , ProcessChildProcessInformation = 73 ,
  ProcessHighGraphicsPriorityInformation = 74 , ProcessSubsystemInformation = 75 , ProcessEnergyValues = 76 , ProcessPowerThrottlingState = 77 ,
  ProcessReserved3Information = 78 , ProcessWin32kSyscallFilterInformation = 79 , ProcessDisableSystemAllowedCpuSets = 80 , ProcessWakeInformation = 81 ,
  ProcessEnergyTrackingState = 82 , ProcessManageWritesToExecutableMemory = 83 , ProcessCaptureTrustletLiveDump = 84 , ProcessTelemetryCoverage = 85 ,
  ProcessEnclaveInformation = 86 , ProcessEnableReadWriteVmLogging = 87 , ProcessUptimeInformation = 88 , ProcessImageSection = 89 ,
  ProcessDebugAuthInformation = 90 , ProcessSystemResourceManagement = 91 , ProcessSequenceNumber = 92 , ProcessLoaderDetour = 93 ,
  ProcessSecurityDomainInformation = 94 , ProcessCombineSecurityDomainsInformation = 95 , ProcessEnableLogging = 96 , ProcessLeapSecondInformation = 97 ,
  ProcessFiberShadowStackAllocation = 98 , ProcessFreeFiberShadowStackAllocation = 99 , ProcessAltSystemCallInformation = 100 , ProcessDynamicEHContinuationTargets = 101 ,
  ProcessDynamicEnforcedCetCompatibleRanges = 102 , ProcessCreateStateChange = 103 , ProcessApplyStateChange = 104 , ProcessEnableOptionalXStateFeatures = 105 ,
  ProcessAltPrefetchParam = 106 , ProcessAssignCpuPartitions = 107 , ProcessPriorityClassEx = 108 , ProcessMembershipInformation = 109 ,
  ProcessEffectiveIoPriority = 110 , ProcessEffectivePagePriority = 111 , MaxProcessInfoClass , ProcessBasicInformation ,
  ProcessQuotaLimits , ProcessIoCounters , ProcessVmCounters , ProcessTimes ,
  ProcessBasePriority , ProcessRaisePriority , ProcessDebugPort , ProcessExceptionPort ,
  ProcessAccessToken , ProcessLdtInformation , ProcessLdtSize , ProcessDefaultHardErrorMode ,
  ProcessIoPortHandlers , ProcessPooledUsageAndLimits , ProcessWorkingSetWatch , ProcessUserModeIOPL ,
  ProcessEnableAlignmentFaultFixup , ProcessPriorityClass , ProcessWx86Information , ProcessHandleCount ,
  ProcessAffinityMask , ProcessPriorityBoost , ProcessDeviceMap , ProcessSessionInformation ,
  ProcessForegroundInformation , ProcessWow64Information , ProcessImageFileName , ProcessLUIDDeviceMapsEnabled ,
  ProcessBreakOnTermination , ProcessDebugObjectHandle , ProcessDebugFlags , ProcessHandleTracing ,
  ProcessIoPriority , ProcessExecuteFlags , ProcessTlsInformation , ProcessCookie ,
  ProcessImageInformation , ProcessCycleTime , ProcessPagePriority , ProcessInstrumentationCallback ,
  ProcessThreadStackAllocation , ProcessWorkingSetWatchEx , ProcessImageFileNameWin32 , ProcessImageFileMapping ,
  ProcessAffinityUpdateMode , ProcessMemoryAllocationMode , ProcessGroupInformation , ProcessTokenVirtualizationEnabled ,
  ProcessConsoleHostProcess , ProcessWindowInformation , MaxProcessInfoClass
}
 
enum  _THREADINFOCLASS {
  ThreadBasicInformation , ThreadTimes , ThreadPriority , ThreadBasePriority ,
  ThreadAffinityMask , ThreadImpersonationToken , ThreadDescriptorTableEntry , ThreadEnableAlignmentFaultFixup ,
  ThreadEventPair_Reusable , ThreadQuerySetWin32StartAddress , ThreadZeroTlsCell , ThreadPerformanceCount ,
  ThreadAmILastThread , ThreadIdealProcessor , ThreadPriorityBoost , ThreadSetTlsArrayAddress ,
  ThreadIsIoPending , ThreadHideFromDebugger , ThreadBreakOnTermination , ThreadSwitchLegacyState ,
  ThreadIsTerminated , ThreadLastSystemCall , ThreadIoPriority , ThreadCycleTime ,
  ThreadPagePriority , ThreadActualBasePriority , ThreadTebInformation , ThreadCSwitchMon ,
  ThreadCSwitchPmu , ThreadWow64Context , ThreadGroupInformation , ThreadUmsInformation ,
  ThreadCounterProfiling , ThreadIdealProcessorEx , MaxThreadInfoClass , ThreadIsIoPending = 16 ,
  ThreadBasicInformation = 0 , ThreadTimes , ThreadPriority , ThreadBasePriority ,
  ThreadAffinityMask , ThreadImpersonationToken , ThreadDescriptorTableEntry , ThreadEnableAlignmentFaultFixup ,
  ThreadEventPair_Reusable , ThreadQuerySetWin32StartAddress , ThreadZeroTlsCell , ThreadPerformanceCount ,
  ThreadAmILastThread , ThreadIdealProcessor , ThreadPriorityBoost , ThreadSetTlsArrayAddress ,
  ThreadIsIoPending , ThreadHideFromDebugger , ThreadBreakOnTermination , ThreadSwitchLegacyState ,
  ThreadIsTerminated , ThreadLastSystemCall , ThreadIoPriority , ThreadCycleTime ,
  ThreadPagePriority , ThreadActualBasePriority , ThreadTebInformation , ThreadCSwitchMon ,
  ThreadCSwitchPmu , ThreadWow64Context , ThreadGroupInformation , ThreadUmsInformation ,
  ThreadCounterProfiling , ThreadIdealProcessorEx , ThreadCpuAccountingInformation , ThreadSuspendCount ,
  ThreadHeterogeneousCpuPolicy , ThreadContainerId , ThreadNameInformation , ThreadSelectedCpuSets ,
  ThreadSystemThreadInformation , ThreadActualGroupAffinity , ThreadDynamicCodePolicyInfo , ThreadExplicitCaseSensitivity ,
  ThreadWorkOnBehalfTicket , ThreadSubsystemInformation , ThreadDbgkWerReportActive , ThreadAttachContainer ,
  ThreadManageWritesToExecutableMemory , ThreadPowerThrottlingState , ThreadWorkloadClass , ThreadCreateStateChange ,
  ThreadApplyStateChange , ThreadStrongerBadHandleChecks , ThreadEffectiveIoPriority , ThreadEffectivePagePriority ,
  MaxThreadInfoClass , ThreadBasicInformation , ThreadTimes , ThreadPriority ,
  ThreadBasePriority , ThreadAffinityMask , ThreadImpersonationToken , ThreadDescriptorTableEntry ,
  ThreadEnableAlignmentFaultFixup , ThreadEventPair_Reusable , ThreadQuerySetWin32StartAddress , ThreadZeroTlsCell ,
  ThreadPerformanceCount , ThreadAmILastThread , ThreadIdealProcessor , ThreadPriorityBoost ,
  ThreadSetTlsArrayAddress , ThreadIsIoPending , ThreadHideFromDebugger , ThreadBreakOnTermination ,
  ThreadSwitchLegacyState , ThreadIsTerminated , ThreadLastSystemCall , ThreadIoPriority ,
  ThreadCycleTime , ThreadPagePriority , ThreadActualBasePriority , ThreadTebInformation ,
  ThreadCSwitchMon , ThreadCSwitchPmu , ThreadWow64Context , ThreadGroupInformation ,
  ThreadUmsInformation , ThreadCounterProfiling , ThreadIdealProcessorEx , ThreadCpuAccountingInformation ,
  ThreadSuspendCount , ThreadHeterogeneousCpuPolicy , ThreadContainerId , ThreadNameInformation ,
  ThreadSelectedCpuSets , ThreadSystemThreadInformation , ThreadActualGroupAffinity , ThreadDynamicCodePolicyInfo ,
  ThreadExplicitCaseSensitivity , ThreadWorkOnBehalfTicket , ThreadSubsystemInformation , ThreadDbgkWerReportActive ,
  ThreadAttachContainer , ThreadManageWritesToExecutableMemory , ThreadPowerThrottlingState , ThreadWorkloadClass ,
  ThreadCreateStateChange , ThreadApplyStateChange , ThreadStrongerBadHandleChecks , ThreadEffectiveIoPriority ,
  ThreadEffectivePagePriority , MaxThreadInfoClass
}
 
enum  _OBJECT_INFORMATION_CLASS {
  ObjectBasicInformation , ObjectNameInformation , ObjectTypeInformation , ObjectAllTypesInformation ,
  ObjectHandleInformation , ObjectBasicInformation = 0 , ObjectNameInformation , ObjectTypeInformation ,
  ObjectTypesInformation , ObjectHandleFlagInformation , ObjectSessionInformation , ObjectSessionObjectInformation ,
  ObjectSetRefTraceInformation , MaxObjectInfoClass , ObjectBasicInformation = 0 , ObjectTypeInformation = 2 ,
  ObjectBasicInformation , ObjectNameInformation , ObjectTypeInformation , ObjectTypesInformation ,
  ObjectHandleFlagInformation , ObjectSessionInformation , ObjectSessionObjectInformation
}
 
enum  _SYSTEM_INFORMATION_CLASS {
  SystemBasicInformation , SystemProcessorInformation , SystemPerformanceInformation , SystemTimeOfDayInformation ,
  SystemPathInformation , SystemProcessInformation , SystemCallCountInformation , SystemDeviceInformation ,
  SystemProcessorPerformanceInformation , SystemFlagsInformation , SystemCallTimeInformation , SystemModuleInformation ,
  SystemLocksInformation , SystemStackTraceInformation , SystemPagedPoolInformation , SystemNonPagedPoolInformation ,
  SystemHandleInformation , SystemObjectInformation , SystemPageFileInformation , SystemVdmInstemulInformation ,
  SystemVdmBopInformation , SystemFileCacheInformation , SystemPoolTagInformation , SystemInterruptInformation ,
  SystemDpcBehaviorInformation , SystemFullMemoryInformation , SystemLoadGdiDriverInformation , SystemUnloadGdiDriverInformation ,
  SystemTimeAdjustmentInformation , SystemSummaryMemoryInformation , SystemNextEventIdInformation , SystemEventIdsInformation ,
  SystemCrashDumpInformation , SystemExceptionInformation , SystemCrashDumpStateInformation , SystemKernelDebuggerInformation ,
  SystemContextSwitchInformation , SystemRegistryQuotaInformation , SystemExtendServiceTableInformation , SystemPrioritySeperation ,
  SystemPlugPlayBusInformation , SystemDockInformation , SystemPowerInformation , SystemProcessorSpeedInformation ,
  SystemCurrentTimeZoneInformation , SystemLookasideInformation , SystemBasicInformation , SystemProcessorInformation ,
  SystemPerformanceInformation , SystemTimeOfDayInformation , SystemPathInformation , SystemProcessInformation ,
  SystemCallCountInformation , SystemDeviceInformation , SystemProcessorPerformanceInformation , SystemFlagsInformation ,
  SystemCallTimeInformation , SystemModuleInformation , SystemLocksInformation , SystemStackTraceInformation ,
  SystemPagedPoolInformation , SystemNonPagedPoolInformation , SystemHandleInformation , SystemObjectInformation ,
  SystemPageFileInformation , SystemVdmInstemulInformation , SystemVdmBopInformation , SystemFileCacheInformation ,
  SystemPoolTagInformation , SystemInterruptInformation , SystemDpcBehaviorInformation , SystemFullMemoryInformation ,
  SystemLoadGdiDriverInformation , SystemUnloadGdiDriverInformation , SystemTimeAdjustmentInformation , SystemSummaryMemoryInformation ,
  SystemNextEventIdInformation , SystemEventIdsInformation , SystemCrashDumpInformation , SystemExceptionInformation ,
  SystemCrashDumpStateInformation , SystemKernelDebuggerInformation , SystemContextSwitchInformation , SystemRegistryQuotaInformation ,
  SystemExtendServiceTableInformation , SystemPrioritySeperation , SystemPlugPlayBusInformation , SystemDockInformation ,
  SystemPowerInformation , SystemProcessorSpeedInformation , SystemCurrentTimeZoneInformation , SystemLookasideInformation ,
  SystemBasicInformation = 0 , SystemProcessorInformation = 1 , SystemPerformanceInformation = 2 , SystemTimeOfDayInformation = 3 ,
  SystemPathInformation = 4 , SystemProcessInformation = 5 , SystemCallCountInformation = 6 , SystemDeviceInformation = 7 ,
  SystemProcessorPerformanceInformation = 8 , SystemFlagsInformation = 9 , SystemCallTimeInformation = 10 , SystemModuleInformation = 11 ,
  SystemLocksInformation = 12 , SystemStackTraceInformation = 13 , SystemPagedPoolInformation = 14 , SystemNonPagedPoolInformation = 15 ,
  SystemHandleInformation = 16 , SystemObjectInformation = 17 , SystemPageFileInformation = 18 , SystemVdmInstemulInformation = 19 ,
  SystemVdmBopInformation = 20 , SystemFileCacheInformation = 21 , SystemPoolTagInformation = 22 , SystemInterruptInformation = 23 ,
  SystemDpcBehaviorInformation = 24 , SystemFullMemoryInformation = 25 , SystemLoadGdiDriverInformation = 26 , SystemUnloadGdiDriverInformation = 27 ,
  SystemTimeAdjustmentInformation = 28 , SystemSummaryMemoryInformation = 29 , SystemMirrorMemoryInformation = 30 , SystemPerformanceTraceInformation = 31 ,
  SystemObsolete0 = 32 , SystemExceptionInformation = 33 , SystemCrashDumpStateInformation = 34 , SystemKernelDebuggerInformation = 35 ,
  SystemContextSwitchInformation = 36 , SystemRegistryQuotaInformation = 37 , SystemExtendServiceTableInformation = 38 , SystemPrioritySeperation = 39 ,
  SystemVerifierAddDriverInformation = 40 , SystemVerifierRemoveDriverInformation = 41 , SystemProcessorIdleInformation = 42 , SystemLegacyDriverInformation = 43 ,
  SystemCurrentTimeZoneInformation = 44 , SystemLookasideInformation = 45 , SystemTimeSlipNotification = 46 , SystemSessionCreate = 47 ,
  SystemSessionDetach = 48 , SystemSessionInformation = 49 , SystemRangeStartInformation = 50 , SystemVerifierInformation = 51 ,
  SystemVerifierThunkExtend = 52 , SystemSessionProcessInformation = 53 , SystemLoadGdiDriverInSystemSpace = 54 , SystemNumaProcessorMap = 55 ,
  SystemPrefetcherInformation = 56 , SystemExtendedProcessInformation = 57 , SystemRecommendedSharedDataAlignment = 58 , SystemComPlusPackage = 59 ,
  SystemNumaAvailableMemory = 60 , SystemProcessorPowerInformation = 61 , SystemEmulationBasicInformation = 62 , SystemEmulationProcessorInformation = 63 ,
  SystemExtendedHandleInformation = 64 , SystemLostDelayedWriteInformation = 65 , SystemBigPoolInformation = 66 , SystemSessionPoolTagInformation = 67 ,
  SystemSessionMappedViewInformation = 68 , SystemHotpatchInformation = 69 , SystemObjectSecurityMode = 70 , SystemWatchdogTimerHandler = 71 ,
  SystemWatchdogTimerInformation = 72 , SystemLogicalProcessorInformation = 73 , SystemWow64SharedInformationObsolete = 74 , SystemRegisterFirmwareTableInformationHandler = 75 ,
  SystemFirmwareTableInformation = 76 , SystemModuleInformationEx = 77 , SystemVerifierTriageInformation = 78 , SystemSuperfetchInformation = 79 ,
  SystemMemoryListInformation = 80 , SystemFileCacheInformationEx = 81 , SystemThreadPriorityClientIdInformation = 82 , SystemProcessorIdleCycleTimeInformation = 83 ,
  SystemVerifierCancellationInformation = 84 , SystemProcessorPowerInformationEx = 85 , SystemRefTraceInformation = 86 , SystemSpecialPoolInformation = 87 ,
  SystemProcessIdInformation = 88 , SystemErrorPortInformation = 89 , SystemBootEnvironmentInformation = 90 , SystemHypervisorInformation = 91 ,
  SystemVerifierInformationEx = 92 , SystemTimeZoneInformation = 93 , SystemImageFileExecutionOptionsInformation = 94 , SystemCoverageInformation = 95 ,
  SystemPrefetchPatchInformation = 96 , SystemVerifierFaultsInformation = 97 , SystemSystemPartitionInformation = 98 , SystemSystemDiskInformation = 99 ,
  SystemProcessorPerformanceDistribution = 100 , SystemNumaProximityNodeInformation = 101 , SystemDynamicTimeZoneInformation = 102 , SystemCodeIntegrityInformation = 103 ,
  SystemProcessorMicrocodeUpdateInformation = 104 , SystemProcessorBrandString = 105 , SystemVirtualAddressInformation = 106 , SystemLogicalProcessorAndGroupInformation = 107 ,
  SystemProcessorCycleTimeInformation = 108 , SystemStoreInformation = 109 , SystemRegistryAppendString = 110 , SystemAitSamplingValue = 111 ,
  SystemVhdBootInformation = 112 , SystemCpuQuotaInformation = 113 , SystemNativeBasicInformation = 114 , SystemErrorPortTimeouts = 115 ,
  SystemLowPriorityIoInformation = 116 , SystemBootEntropyInformation = 117 , SystemVerifierCountersInformation = 118 , SystemPagedPoolInformationEx = 119 ,
  SystemSystemPtesInformationEx = 120 , SystemNodeDistanceInformation = 121 , SystemAcpiAuditInformation = 122 , SystemBasicPerformanceInformation = 123 ,
  SystemQueryPerformanceCounterInformation = 124 , SystemSessionBigPoolInformation = 125 , SystemBootGraphicsInformation = 126 , SystemScrubPhysicalMemoryInformation = 127 ,
  SystemBadPageInformation = 128 , SystemProcessorProfileControlArea = 129 , SystemCombinePhysicalMemoryInformation = 130 , SystemEntropyInterruptTimingInformation = 131 ,
  SystemConsoleInformation = 132 , SystemPlatformBinaryInformation = 133 , SystemThrottleNotificationInformation = 134 , SystemPolicyInformation = 134 ,
  SystemHypervisorProcessorCountInformation = 135 , SystemDeviceDataInformation = 136 , SystemDeviceDataEnumerationInformation = 137 , SystemMemoryTopologyInformation = 138 ,
  SystemMemoryChannelInformation = 139 , SystemBootLogoInformation = 140 , SystemProcessorPerformanceInformationEx = 141 , SystemSpare0 = 142 ,
  SystemCriticalProcessErrorLogInformation = 142 , SystemSecureBootPolicyInformation = 143 , SystemPageFileInformationEx = 144 , SystemSecureBootInformation = 145 ,
  SystemEntropyInterruptTimingRawInformation = 146 , SystemPortableWorkspaceEfiLauncherInformation = 147 , SystemFullProcessInformation = 148 , SystemKernelDebuggerInformationEx = 149 ,
  SystemBootMetadataInformation = 150 , SystemSoftRebootInformation = 151 , SystemElamCertificateInformation = 152 , SystemOfflineDumpConfigInformation = 153 ,
  SystemProcessorFeaturesInformation = 154 , SystemRegistryReconciliationInformation = 155 , SystemEdidInformation = 156 , SystemManufacturingInformation = 157 ,
  SystemEnergyEstimationConfigInformation = 158 , SystemHypervisorDetailInformation = 159 , SystemProcessorCycleStatsInformation = 160 , SystemVmGenerationCountInformation = 161 ,
  SystemTrustedPlatformModuleInformation = 162 , SystemKernelDebuggerFlags = 163 , SystemCodeIntegrityPolicyInformation = 164 , SystemIsolatedUserModeInformation = 165 ,
  SystemHardwareSecurityTestInterfaceResultsInformation = 166 , SystemSingleModuleInformation = 167 , SystemAllowedCpuSetsInformation = 168 , SystemVsmProtectionInformation = 169 ,
  SystemInterruptCpuSetsInformation = 170 , SystemSecureBootPolicyFullInformation = 171 , SystemCodeIntegrityPolicyFullInformation = 172 , SystemAffinitizedInterruptProcessorInformation = 173 ,
  SystemRootSiloInformation = 174 , SystemCpuSetInformation = 175 , SystemCpuSetTagInformation = 176 , SystemWin32WerStartCallout = 177 ,
  SystemSecureKernelProfileInformation = 178 , SystemCodeIntegrityPlatformManifestInformation = 179 , SystemInterruptSteeringInformation = 180 , SystemSupportedProcessorArchitectures = 181 ,
  SystemMemoryUsageInformation = 182 , SystemCodeIntegrityCertificateInformation = 183 , SystemPhysicalMemoryInformation = 184 , SystemControlFlowTransition = 185 ,
  SystemKernelDebuggingAllowed = 186 , SystemActivityModerationExeState = 187 , SystemActivityModerationUserSettings = 188 , SystemCodeIntegrityPoliciesFullInformation = 189 ,
  SystemCodeIntegrityUnlockInformation = 190 , SystemIntegrityQuotaInformation = 191 , SystemFlushInformation = 192 , SystemProcessorIdleMaskInformation = 193 ,
  SystemSecureDumpEncryptionInformation = 194 , SystemWriteConstraintInformation = 195 , SystemKernelVaShadowInformation = 196 , SystemHypervisorSharedPageInformation = 197 ,
  SystemFirmwareBootPerformanceInformation = 198 , SystemCodeIntegrityVerificationInformation = 199 , SystemFirmwarePartitionInformation = 200 , SystemSpeculationControlInformation = 201 ,
  SystemDmaGuardPolicyInformation = 202 , SystemEnclaveLaunchControlInformation = 203 , SystemWorkloadAllowedCpuSetsInformation = 204 , SystemCodeIntegrityUnlockModeInformation = 205 ,
  SystemLeapSecondInformation = 206 , SystemFlags2Information = 207 , SystemSecurityModelInformation = 208 , SystemCodeIntegritySyntheticCacheInformation = 209 ,
  SystemFeatureConfigurationInformation = 210 , SystemFeatureConfigurationSectionInformation = 211 , SystemFeatureUsageSubscriptionInformation = 212 , SystemSecureSpeculationControlInformation = 213 ,
  SystemSpacesBootInformation = 214 , SystemFwRamdiskInformation = 215 , SystemWheaIpmiHardwareInformation = 216 , SystemDifSetRuleClassInformation = 217 ,
  SystemDifClearRuleClassInformation = 218 , SystemDifApplyPluginVerificationOnDriver = 219 , SystemDifRemovePluginVerificationOnDriver = 220 , SystemShadowStackInformation = 221 ,
  SystemBuildVersionInformation = 222 , SystemPoolLimitInformation = 223 , SystemCodeIntegrityAddDynamicStore = 224 , SystemCodeIntegrityClearDynamicStores = 225 ,
  SystemDifPoolTrackingInformation = 226 , SystemPoolZeroingInformation = 227 , SystemDpcWatchdogInformation = 228 , SystemDpcWatchdogInformation2 = 229 ,
  SystemSupportedProcessorArchitectures2 = 230 , SystemSingleProcessorRelationshipInformation = 231 , SystemXfgCheckFailureInformation = 232 , SystemIommuStateInformation = 233 ,
  SystemHypervisorMinrootInformation = 234 , SystemHypervisorBootPagesInformation = 235 , SystemPointerAuthInformation = 236 , SystemSecureKernelDebuggerInformation = 237 ,
  SystemOriginalImageFeatureInformation = 238 , SystemMemoryNumaInformation = 239 , SystemMemoryNumaPerformanceInformation = 240 , SystemCodeIntegritySignedPoliciesFullInformation = 241 ,
  SystemSecureSecretsInformation = 242 , SystemTrustedAppsRuntimeInformation = 243 , SystemBadPageInformationEx = 244 , SystemResourceDeadlockTimeout = 245 ,
  SystemBreakOnContextUnwindFailureInformation = 246 , SystemOslRamdiskInformation = 247 , MaxSystemInfoClass , SystemBasicInformation = 0 ,
  SystemPerformanceInformation = 2 , SystemTimeOfDayInformation = 3 , SystemProcessInformation = 5 , SystemProcessorPerformanceInformation = 8 ,
  SystemInterruptInformation = 23 , SystemExceptionInformation = 33 , SystemRegistryQuotaInformation = 37 , SystemLookasideInformation = 45 ,
  SystemPolicyInformation = 134 , SystemBasicInformation = 0 , SystemCpuInformation = 1 , SystemPerformanceInformation = 2 ,
  SystemTimeOfDayInformation = 3 , SystemPathInformation = 4 , SystemProcessInformation = 5 , SystemCallCountInformation = 6 ,
  SystemDeviceInformation = 7 , SystemProcessorPerformanceInformation = 8 , SystemFlagsInformation = 9 , SystemCallTimeInformation = 10 ,
  SystemModuleInformation = 11 , SystemLocksInformation = 12 , SystemStackTraceInformation = 13 , SystemPagedPoolInformation = 14 ,
  SystemNonPagedPoolInformation = 15 , SystemHandleInformation = 16 , SystemObjectInformation = 17 , SystemPageFileInformation = 18 ,
  SystemVdmInstemulInformation = 19 , SystemVdmBopInformation = 20 , SystemFileCacheInformation = 21 , SystemPoolTagInformation = 22 ,
  SystemInterruptInformation = 23 , SystemDpcBehaviorInformation = 24 , SystemFullMemoryInformation = 25 , SystemNotImplemented6 = 25 ,
  SystemLoadGdiDriverInformation = 26 , SystemUnloadGdiDriverInformation = 27 , SystemTimeAdjustmentInformation = 28 , SystemTimeAdjustment = 28 ,
  SystemSummaryMemoryInformation = 29 , SystemMirrorMemoryInformation = 30 , SystemPerformanceTraceInformation = 31 , SystemObsolete0 = 32 ,
  SystemExceptionInformation = 33 , SystemCrashDumpStateInformation = 34 , SystemKernelDebuggerInformation = 35 , SystemContextSwitchInformation = 36 ,
  SystemRegistryQuotaInformation = 37 , SystemExtendServiceTableInformation = 38 , SystemPrioritySeparation = 39 , SystemVerifierAddDriverInformation = 40 ,
  SystemVerifierRemoveDriverInformation = 41 , SystemProcessorIdleInformation = 42 , SystemLegacyDriverInformation = 43 , SystemCurrentTimeZoneInformation = 44 ,
  SystemLookasideInformation = 45 , SystemTimeSlipNotification = 46 , SystemSessionCreate = 47 , SystemSessionDetach = 48 ,
  SystemSessionInformation = 49 , SystemRangeStartInformation = 50 , SystemVerifierInformation = 51 , SystemVerifierThunkExtend = 52 ,
  SystemSessionProcessesInformation = 53 , SystemLoadGdiDriverInSystemSpace = 54 , SystemNumaProcessorMap = 55 , SystemPrefetcherInformation = 56 ,
  SystemExtendedProcessInformation = 57 , SystemRecommendedSharedDataAlignment = 58 , SystemComPlusPackage = 59 , SystemNumaAvailableMemory = 60 ,
  SystemProcessorPowerInformation = 61 , SystemEmulationBasicInformation = 62 , SystemEmulationProcessorInformation = 63 , SystemExtendedHandleInformation = 64 ,
  SystemLostDelayedWriteInformation = 65 , SystemBigPoolInformation = 66 , SystemSessionPoolTagInformation = 67 , SystemSessionMappedViewInformation = 68 ,
  SystemHotpatchInformation = 69 , SystemObjectSecurityMode = 70 , SystemWatchdogTimerHandler = 71 , SystemWatchdogTimerInformation = 72 ,
  SystemLogicalProcessorInformation = 73 , SystemWow64SharedInformationObsolete = 74 , SystemRegisterFirmwareTableInformationHandler = 75 , SystemFirmwareTableInformation = 76 ,
  SystemModuleInformationEx = 77 , SystemVerifierTriageInformation = 78 , SystemSuperfetchInformation = 79 , SystemMemoryListInformation = 80 ,
  SystemFileCacheInformationEx = 81 , SystemThreadPriorityClientIdInformation = 82 , SystemProcessorIdleCycleTimeInformation = 83 , SystemVerifierCancellationInformation = 84 ,
  SystemProcessorPowerInformationEx = 85 , SystemRefTraceInformation = 86 , SystemSpecialPoolInformation = 87 , SystemProcessIdInformation = 88 ,
  SystemErrorPortInformation = 89 , SystemBootEnvironmentInformation = 90 , SystemHypervisorInformation = 91 , SystemVerifierInformationEx = 92 ,
  SystemTimeZoneInformation = 93 , SystemImageFileExecutionOptionsInformation = 94 , SystemCoverageInformation = 95 , SystemPrefetchPatchInformation = 96 ,
  SystemVerifierFaultsInformation = 97 , SystemSystemPartitionInformation = 98 , SystemSystemDiskInformation = 99 , SystemProcessorPerformanceDistribution = 100 ,
  SystemNumaProximityNodeInformation = 101 , SystemDynamicTimeZoneInformation = 102 , SystemCodeIntegrityInformation = 103 , SystemProcessorMicrocodeUpdateInformation = 104 ,
  SystemProcessorBrandString = 105 , SystemVirtualAddressInformation = 106 , SystemLogicalProcessorInformationEx = 107 , SystemProcessorCycleTimeInformation = 108 ,
  SystemStoreInformation = 109 , SystemRegistryAppendString = 110 , SystemAitSamplingValue = 111 , SystemVhdBootInformation = 112 ,
  SystemCpuQuotaInformation = 113 , SystemNativeBasicInformation = 114 , SystemErrorPortTimeouts = 115 , SystemLowPriorityIoInformation = 116 ,
  SystemTpmBootEntropyInformation = 117 , SystemVerifierCountersInformation = 118 , SystemPagedPoolInformationEx = 119 , SystemSystemPtesInformationEx = 120 ,
  SystemNodeDistanceInformation = 121 , SystemAcpiAuditInformation = 122 , SystemBasicPerformanceInformation = 123 , SystemQueryPerformanceCounterInformation = 124 ,
  SystemSessionBigPoolInformation = 125 , SystemBootGraphicsInformation = 126 , SystemScrubPhysicalMemoryInformation = 127 , SystemBadPageInformation = 128 ,
  SystemProcessorProfileControlArea = 129 , SystemCombinePhysicalMemoryInformation = 130 , SystemEntropyInterruptTimingInformation = 131 , SystemConsoleInformation = 132 ,
  SystemPlatformBinaryInformation = 133 , SystemPolicyInformation = 134 , SystemHypervisorProcessorCountInformation = 135 , SystemDeviceDataInformation = 136 ,
  SystemDeviceDataEnumerationInformation = 137 , SystemMemoryTopologyInformation = 138 , SystemMemoryChannelInformation = 139 , SystemBootLogoInformation = 140 ,
  SystemProcessorPerformanceInformationEx = 141 , SystemCriticalProcessErrorLogInformation = 142 , SystemSecureBootPolicyInformation = 143 , SystemPageFileInformationEx = 144 ,
  SystemSecureBootInformation = 145 , SystemEntropyInterruptTimingRawInformation = 146 , SystemPortableWorkspaceEfiLauncherInformation = 147 , SystemFullProcessInformation = 148 ,
  SystemKernelDebuggerInformationEx = 149 , SystemBootMetadataInformation = 150 , SystemSoftRebootInformation = 151 , SystemElamCertificateInformation = 152 ,
  SystemOfflineDumpConfigInformation = 153 , SystemProcessorFeaturesInformation = 154 , SystemRegistryReconciliationInformation = 155 , SystemEdidInformation = 156 ,
  SystemManufacturingInformation = 157 , SystemEnergyEstimationConfigInformation = 158 , SystemHypervisorDetailInformation = 159 , SystemProcessorCycleStatsInformation = 160 ,
  SystemVmGenerationCountInformation = 161 , SystemTrustedPlatformModuleInformation = 162 , SystemKernelDebuggerFlags = 163 , SystemCodeIntegrityPolicyInformation = 164 ,
  SystemIsolatedUserModeInformation = 165 , SystemHardwareSecurityTestInterfaceResultsInformation = 166 , SystemSingleModuleInformation = 167 , SystemAllowedCpuSetsInformation = 168 ,
  SystemVsmProtectionInformation = 169 , SystemInterruptCpuSetsInformation = 170 , SystemSecureBootPolicyFullInformation = 171 , SystemCodeIntegrityPolicyFullInformation = 172 ,
  SystemAffinitizedInterruptProcessorInformation = 173 , SystemRootSiloInformation = 174 , SystemCpuSetInformation = 175 , SystemCpuSetTagInformation = 176 ,
  SystemWin32WerStartCallout = 177 , SystemSecureKernelProfileInformation = 178 , SystemCodeIntegrityPlatformManifestInformation = 179 , SystemInterruptSteeringInformation = 180 ,
  SystemSupportedProcessorArchitectures = 181 , SystemMemoryUsageInformation = 182 , SystemCodeIntegrityCertificateInformation = 183 , SystemPhysicalMemoryInformation = 184 ,
  SystemControlFlowTransition = 185 , SystemKernelDebuggingAllowed = 186 , SystemActivityModerationExeState = 187 , SystemActivityModerationUserSettings = 188 ,
  SystemCodeIntegrityPoliciesFullInformation = 189 , SystemCodeIntegrityUnlockInformation = 190 , SystemIntegrityQuotaInformation = 191 , SystemFlushInformation = 192 ,
  SystemProcessorIdleMaskInformation = 193 , SystemSecureDumpEncryptionInformation = 194 , SystemWriteConstraintInformation = 195 , SystemKernelVaShadowInformation = 196 ,
  SystemHypervisorSharedPageInformation = 197 , SystemFirmwareBootPerformanceInformation = 198 , SystemCodeIntegrityVerificationInformation = 199 , SystemFirmwarePartitionInformation = 200 ,
  SystemSpeculationControlInformation = 201 , SystemDmaGuardPolicyInformation = 202 , SystemEnclaveLaunchControlInformation = 203 , SystemWorkloadAllowedCpuSetsInformation = 204 ,
  SystemCodeIntegrityUnlockModeInformation = 205 , SystemLeapSecondInformation = 206 , SystemFlags2Information = 207 , SystemSecurityModelInformation = 208 ,
  SystemCodeIntegritySyntheticCacheInformation = 209 , SystemFeatureConfigurationInformation = 210 , SystemFeatureConfigurationSectionInformation = 211 , SystemFeatureUsageSubscriptionInformation = 212 ,
  SystemSecureSpeculationControlInformation = 213 , SystemSpacesBootInformation = 214 , SystemFwRamdiskInformation = 215 , SystemWheaIpmiHardwareInformation = 216 ,
  SystemDifSetRuleClassInformation = 217 , SystemDifClearRuleClassInformation = 218 , SystemDifApplyPluginVerificationOnDriver = 219 , SystemDifRemovePluginVerificationOnDriver = 220 ,
  SystemShadowStackInformation = 221 , SystemBuildVersionInformation = 222 , SystemPoolLimitInformation = 223 , SystemCodeIntegrityAddDynamicStore = 224 ,
  SystemCodeIntegrityClearDynamicStores = 225 , SystemDifPoolTrackingInformation = 226 , SystemPoolZeroingInformation = 227 , SystemDpcWatchdogInformation = 228 ,
  SystemDpcWatchdogInformation2 = 229 , SystemSupportedProcessorArchitectures2 = 230 , SystemSingleProcessorRelationshipInformation = 231 , SystemXfgCheckFailureInformation = 232 ,
  SystemIommuStateInformation = 233 , SystemHypervisorMinrootInformation = 234 , SystemHypervisorBootPagesInformation = 235 , SystemPointerAuthInformation = 236 ,
  SystemSecureKernelDebuggerInformation = 237 , SystemOriginalImageFeatureInformation = 238
}
 
enum  _WINSTATIONINFOCLASS { WinStationInformation = 8 , WinStationInformation = 8 }
 

Functions

typedef _Return_type_success_ (return >=0) LONG NTSTATUS
 
__kernel_entry NTSYSCALLAPI NTSTATUS NTAPI NtCreateFile (_Out_ PHANDLE FileHandle, _In_ ACCESS_MASK DesiredAccess, _In_ POBJECT_ATTRIBUTES ObjectAttributes, _Out_ PIO_STATUS_BLOCK IoStatusBlock, _In_opt_ PLARGE_INTEGER AllocationSize, _In_ ULONG FileAttributes, _In_ ULONG ShareAccess, _In_ ULONG CreateDisposition, _In_ ULONG CreateOptions, _In_reads_bytes_opt_(EaLength) PVOID EaBuffer, _In_ ULONG EaLength)
 
__kernel_entry NTSYSCALLAPI NTSTATUS NTAPI NtOpenFile (_Out_ PHANDLE FileHandle, _In_ ACCESS_MASK DesiredAccess, _In_ POBJECT_ATTRIBUTES ObjectAttributes, _Out_ PIO_STATUS_BLOCK IoStatusBlock, _In_ ULONG ShareAccess, _In_ ULONG OpenOptions)
 
__kernel_entry NTSYSCALLAPI NTSTATUS NTAPI NtClose (_In_ HANDLE Handle)
 
__kernel_entry NTSYSCALLAPI NTSTATUS NTAPI NtDeviceIoControlFile (_In_ HANDLE FileHandle, _In_opt_ HANDLE Event, _In_opt_ PIO_APC_ROUTINE ApcRoutine, _In_opt_ PVOID ApcContext, _Out_ PIO_STATUS_BLOCK IoStatusBlock, _In_ ULONG IoControlCode, _In_reads_bytes_opt_(InputBufferLength) PVOID InputBuffer, _In_ ULONG InputBufferLength, _Out_writes_bytes_opt_(OutputBufferLength) PVOID OutputBuffer, _In_ ULONG OutputBufferLength)
 
__kernel_entry NTSYSCALLAPI NTSTATUS NTAPI NtWaitForSingleObject (_In_ HANDLE Object, _In_ BOOLEAN Alertable, _In_opt_ PLARGE_INTEGER Timeout)
 
__kernel_entry NTSYSCALLAPI NTSTATUS NTAPI NtRenameKey (_In_ HANDLE KeyHandle, _In_ PUNICODE_STRING NewName)
 
__kernel_entry NTSYSCALLAPI NTSTATUS NTAPI NtNotifyChangeMultipleKeys (_In_ HANDLE MasterKeyHandle, _In_opt_ ULONG Count, _In_reads_opt_(Count) OBJECT_ATTRIBUTES SubordinateObjects[], _In_opt_ HANDLE Event, _In_opt_ PIO_APC_ROUTINE ApcRoutine, _In_opt_ PVOID ApcContext, _Out_ PIO_STATUS_BLOCK IoStatusBlock, _In_ ULONG CompletionFilter, _In_ BOOLEAN WatchTree, _Out_writes_bytes_opt_(BufferSize) PVOID Buffer, _In_ ULONG BufferSize, _In_ BOOLEAN Asynchronous)
 
__kernel_entry NTSYSCALLAPI NTSTATUS NTAPI NtQueryMultipleValueKey (_In_ HANDLE KeyHandle, _Inout_updates_(EntryCount) PKEY_VALUE_ENTRY ValueEntries, _In_ ULONG EntryCount, _Out_writes_bytes_(*BufferLength) PVOID ValueBuffer, _Inout_ PULONG BufferLength, _Out_opt_ PULONG RequiredBufferLength)
 
__kernel_entry NTSYSCALLAPI NTSTATUS NTAPI NtSetInformationKey (_In_ HANDLE KeyHandle, _In_ _Strict_type_match_ KEY_SET_INFORMATION_CLASS KeySetInformationClass, _In_reads_bytes_(KeySetInformationLength) PVOID KeySetInformation, _In_ ULONG KeySetInformationLength)
 
__kernel_entry NTSYSCALLAPI NTSTATUS NTAPI NtQueryInformationProcess (_In_ HANDLE ProcessHandle, _In_ PROCESSINFOCLASS ProcessInformationClass, _Out_writes_bytes_to_opt_(ProcessInformationLength, *ReturnLength) PVOID ProcessInformation, _In_ ULONG ProcessInformationLength, _Out_opt_ PULONG ReturnLength)
 
__kernel_entry NTSYSCALLAPI NTSTATUS NTAPI NtQueryInformationThread (_In_ HANDLE ThreadHandle, _In_ THREADINFOCLASS ThreadInformationClass, _Out_writes_bytes_to_opt_(ThreadInformationLength, *ReturnLength) PVOID ThreadInformation, _In_ ULONG ThreadInformationLength, _Out_opt_ PULONG ReturnLength)
 
 _IRQL_requires_max_ (PASSIVE_LEVEL) __kernel_entry NTSYSCALLAPI NTSTATUS NTAPI NtQueryObject(_In_opt_ HANDLE Handle
 Queries information details about a security descriptor.
 
_In_ OBJECT_INFORMATION_CLASS _Out_writes_bytes_opt_ (ObjectInformationLength) PVOID ObjectInformation
 
__kernel_entry NTSYSCALLAPI NTSTATUS NTAPI NtQuerySystemInformation (_In_ SYSTEM_INFORMATION_CLASS SystemInformationClass, _Out_ PVOID SystemInformation, _In_ ULONG InformationLength, _Out_opt_ PULONG ResultLength)
 
__kernel_entry NTSYSCALLAPI NTSTATUS NTAPI NtQuerySystemTime (_Out_ PLARGE_INTEGER SystemTime)
 
VOID NTAPI RtlInitString (PSTRING DestinationString, PCSZ SourceString)
 
VOID NTAPI RtlInitAnsiString (PANSI_STRING DestinationString, PCSZ SourceString)
 
VOID NTAPI RtlInitUnicodeString (PUNICODE_STRING DestinationString, PCWSTR SourceString)
 
VOID NTAPI RtlFreeAnsiString (PANSI_STRING AnsiString)
 
VOID NTAPI RtlFreeOemString (POEM_STRING OemString)
 
VOID NTAPI RtlFreeUnicodeString (PUNICODE_STRING UnicodeString)
 
NTSTATUS NTAPI RtlAnsiStringToUnicodeString (PUNICODE_STRING DestinationString, PCANSI_STRING SourceString, BOOLEAN AllocateDestinationString)
 
NTSTATUS NTAPI RtlUnicodeStringToAnsiString (PANSI_STRING DestinationString, PCUNICODE_STRING SourceString, BOOLEAN AllocateDestinationString)
 
NTSTATUS NTAPI RtlUnicodeStringToOemString (POEM_STRING DestinationString, PCUNICODE_STRING SourceString, BOOLEAN AllocateDestinationString)
 
NTSTATUS NTAPI RtlUnicodeToMultiByteSize (_Out_ PULONG BytesInMultiByteString, _In_reads_bytes_(BytesInUnicodeString) PWCH UnicodeString, _In_ ULONG BytesInUnicodeString)
 
NTSTATUS NTAPI RtlCharToInteger (PCSZ String, ULONG Base, PULONG Value)
 
BOOLEAN NTAPI RtlIsNameLegalDOS8Dot3 (_In_ PUNICODE_STRING Name, _Inout_opt_ POEM_STRING OemName, _Inout_opt_ PBOOLEAN NameContainsSpaces)
 
NTSTATUS NTAPI RtlLocalTimeToSystemTime (IN PLARGE_INTEGER LocalTime, _Out_ PLARGE_INTEGER SystemTime)
 
BOOLEAN NTAPI RtlTimeToSecondsSince1970 (PLARGE_INTEGER Time, PULONG ElapsedSeconds)
 
 _When_ (Status< 0, _Out_range_(>, 0)) _When_(Status >=0
 
 _Out_range_ (==, 0)) ULONG NTAPI RtlNtStatusToDosError(_In_ NTSTATUS Status)
 
NTSTATUS NTAPI RtlConvertSidToUnicodeString (PUNICODE_STRING UnicodeString, PSID Sid, BOOLEAN AllocateDestinationString)
 
ULONG NTAPI RtlUniform (PULONG Seed)
 

Variables

_In_ OBJECT_INFORMATION_CLASS ObjectInformationClass
 
_In_ OBJECT_INFORMATION_CLASS _In_ ULONG ObjectInformationLength
 
_In_ OBJECT_INFORMATION_CLASS _In_ ULONG _Out_opt_ PULONG ReturnLength
 

Macro Definition Documentation

◆ _WINTERNL_

#define _WINTERNL_

Definition at line 35 of file winternl.h.

◆ FILE_COMPLETE_IF_OPLOCKED

#define FILE_COMPLETE_IF_OPLOCKED   0x00000100

Definition at line 177 of file winternl.h.

◆ FILE_CREATE

#define FILE_CREATE   0x00000002

Definition at line 209 of file winternl.h.

◆ FILE_CREATE_TREE_CONNECTION

#define FILE_CREATE_TREE_CONNECTION   0x00000080

Definition at line 176 of file winternl.h.

◆ FILE_CREATED

#define FILE_CREATED   0x00000002

Definition at line 196 of file winternl.h.

◆ FILE_DELETE_ON_CLOSE

#define FILE_DELETE_ON_CLOSE   0x00001000

Definition at line 181 of file winternl.h.

◆ FILE_DIRECTORY_FILE

#define FILE_DIRECTORY_FILE   0x00000001

Definition at line 169 of file winternl.h.

◆ FILE_DOES_NOT_EXIST

#define FILE_DOES_NOT_EXIST   0x00000005

Definition at line 199 of file winternl.h.

◆ FILE_EXISTS

#define FILE_EXISTS   0x00000004

Definition at line 198 of file winternl.h.

◆ FILE_MAXIMUM_DISPOSITION

#define FILE_MAXIMUM_DISPOSITION   0x00000005

Definition at line 213 of file winternl.h.

◆ FILE_NO_COMPRESSION

#define FILE_NO_COMPRESSION   0x00008000

Definition at line 184 of file winternl.h.

◆ FILE_NO_EA_KNOWLEDGE

#define FILE_NO_EA_KNOWLEDGE   0x00000200

Definition at line 178 of file winternl.h.

◆ FILE_NO_INTERMEDIATE_BUFFERING

#define FILE_NO_INTERMEDIATE_BUFFERING   0x00000008

Definition at line 172 of file winternl.h.

◆ FILE_NON_DIRECTORY_FILE

#define FILE_NON_DIRECTORY_FILE   0x00000040

Definition at line 175 of file winternl.h.

◆ FILE_OPEN

#define FILE_OPEN   0x00000001

Definition at line 208 of file winternl.h.

◆ FILE_OPEN_BY_FILE_ID

#define FILE_OPEN_BY_FILE_ID   0x00002000

Definition at line 182 of file winternl.h.

◆ FILE_OPEN_FOR_BACKUP_INTENT

#define FILE_OPEN_FOR_BACKUP_INTENT   0x00004000

Definition at line 183 of file winternl.h.

◆ FILE_OPEN_FOR_FREE_SPACE_QUERY

#define FILE_OPEN_FOR_FREE_SPACE_QUERY   0x00800000

Definition at line 191 of file winternl.h.

◆ FILE_OPEN_IF

#define FILE_OPEN_IF   0x00000003

Definition at line 210 of file winternl.h.

◆ FILE_OPEN_NO_RECALL

#define FILE_OPEN_NO_RECALL   0x00400000

Definition at line 190 of file winternl.h.

◆ FILE_OPEN_REMOTE_INSTANCE

#define FILE_OPEN_REMOTE_INSTANCE   0x00000400

Definition at line 179 of file winternl.h.

◆ FILE_OPEN_REPARSE_POINT

#define FILE_OPEN_REPARSE_POINT   0x00200000

Definition at line 189 of file winternl.h.

◆ FILE_OPEN_REQUIRING_OPLOCK

#define FILE_OPEN_REQUIRING_OPLOCK   0x00010000

Definition at line 186 of file winternl.h.

◆ FILE_OPENED

#define FILE_OPENED   0x00000001

Definition at line 195 of file winternl.h.

◆ FILE_OVERWRITE

#define FILE_OVERWRITE   0x00000004

Definition at line 211 of file winternl.h.

◆ FILE_OVERWRITE_IF

#define FILE_OVERWRITE_IF   0x00000005

Definition at line 212 of file winternl.h.

◆ FILE_OVERWRITTEN

#define FILE_OVERWRITTEN   0x00000003

Definition at line 197 of file winternl.h.

◆ FILE_RANDOM_ACCESS

#define FILE_RANDOM_ACCESS   0x00000800

Definition at line 180 of file winternl.h.

◆ FILE_RESERVE_OPFILTER

#define FILE_RESERVE_OPFILTER   0x00100000

Definition at line 188 of file winternl.h.

◆ FILE_SEQUENTIAL_ONLY

#define FILE_SEQUENTIAL_ONLY   0x00000004

Definition at line 171 of file winternl.h.

◆ FILE_SUPERSEDE

#define FILE_SUPERSEDE   0x00000000

Definition at line 207 of file winternl.h.

◆ FILE_SUPERSEDED

#define FILE_SUPERSEDED   0x00000000

Definition at line 194 of file winternl.h.

◆ FILE_SYNCHRONOUS_IO_ALERT

#define FILE_SYNCHRONOUS_IO_ALERT   0x00000010

Definition at line 173 of file winternl.h.

◆ FILE_SYNCHRONOUS_IO_NONALERT

#define FILE_SYNCHRONOUS_IO_NONALERT   0x00000020

Definition at line 174 of file winternl.h.

◆ FILE_VALID_MAILSLOT_OPTION_FLAGS

#define FILE_VALID_MAILSLOT_OPTION_FLAGS   0x00000032

Definition at line 203 of file winternl.h.

◆ FILE_VALID_OPTION_FLAGS

#define FILE_VALID_OPTION_FLAGS   0x00ffffff

Definition at line 201 of file winternl.h.

◆ FILE_VALID_PIPE_OPTION_FLAGS

#define FILE_VALID_PIPE_OPTION_FLAGS   0x00000032

Definition at line 202 of file winternl.h.

◆ FILE_VALID_SET_FLAGS

#define FILE_VALID_SET_FLAGS   0x00000036

Definition at line 204 of file winternl.h.

◆ FILE_WRITE_THROUGH

#define FILE_WRITE_THROUGH   0x00000002

Definition at line 170 of file winternl.h.

◆ InitializeObjectAttributes

#define InitializeObjectAttributes (   p,
  n,
  a,
  r,
  s 
)
Value:
{ \
(p)->Length = sizeof(OBJECT_ATTRIBUTES); \
(p)->RootDirectory = r; \
(p)->Attributes = a; \
(p)->ObjectName = n; \
(p)->SecurityQualityOfService = NULL; \
}
WCHAR RootDirectory[MAX_PATH]
Definition: format.c:73
_In_ ULONG Attributes
Definition: dispmprt.h:1077
#define NULL
Definition: types.h:112
GLdouble s
Definition: gl.h:2039
GLdouble GLdouble GLdouble r
Definition: gl.h:2055
GLdouble n
Definition: glext.h:7729
GLfloat GLfloat p
Definition: glext.h:8902
GLboolean GLboolean GLboolean GLboolean a
Definition: glext.h:6204
_In_ ULONG _In_ ULONG _In_ ULONG Length
Definition: ntddpcm.h:102
_In_ USHORT _In_ ULONG _In_ PSOCKADDR _In_ PSOCKADDR _Reserved_ ULONG _In_opt_ PVOID _In_opt_ const WSK_CLIENT_CONNECTION_DISPATCH _In_opt_ PEPROCESS _In_opt_ PETHREAD _In_opt_ PSECURITY_DESCRIPTOR SecurityDescriptor
Definition: wsk.h:191
_In_ PVOID _Out_opt_ PULONG_PTR _Outptr_opt_ PCUNICODE_STRING * ObjectName
Definition: cmfuncs.h:64

Definition at line 236 of file winternl.h.

◆ INTERNAL_TS_ACTIVE_CONSOLE_ID

#define INTERNAL_TS_ACTIVE_CONSOLE_ID   (*((volatile ULONG*)0x7ffe02d8))

Definition at line 164 of file winternl.h.

◆ LOGONID_CURRENT

#define LOGONID_CURRENT   ((ULONG)-1)

Definition at line 165 of file winternl.h.

◆ NT_ERROR

#define NT_ERROR (   Status)    ((((ULONG)(Status)) >> 30) == 3)

Definition at line 59 of file winternl.h.

◆ NT_INFORMATION

#define NT_INFORMATION (   Status)    ((((ULONG)(Status)) >> 30) == 1)

Definition at line 51 of file winternl.h.

◆ NT_SUCCESS

#define NT_SUCCESS (   Status)    (((NTSTATUS)(Status)) >= 0)

Definition at line 47 of file winternl.h.

◆ NT_WARNING

#define NT_WARNING (   Status)    ((((ULONG)(Status)) >> 30) == 2)

Definition at line 55 of file winternl.h.

◆ OBJ_CASE_INSENSITIVE

#define OBJ_CASE_INSENSITIVE   0x00000040L

Definition at line 228 of file winternl.h.

◆ OBJ_EXCLUSIVE

#define OBJ_EXCLUSIVE   0x00000020L

Definition at line 227 of file winternl.h.

◆ OBJ_FORCE_ACCESS_CHECK

#define OBJ_FORCE_ACCESS_CHECK   0x00000400L

Definition at line 232 of file winternl.h.

◆ OBJ_INHERIT

#define OBJ_INHERIT   0x00000002L

Definition at line 225 of file winternl.h.

◆ OBJ_KERNEL_HANDLE

#define OBJ_KERNEL_HANDLE   0x00000200L

Definition at line 231 of file winternl.h.

◆ OBJ_OPENIF

#define OBJ_OPENIF   0x00000080L

Definition at line 229 of file winternl.h.

◆ OBJ_OPENLINK

#define OBJ_OPENLINK   0x00000100L

Definition at line 230 of file winternl.h.

◆ OBJ_PERMANENT

#define OBJ_PERMANENT   0x00000010L

Definition at line 226 of file winternl.h.

◆ OBJ_VALID_ATTRIBUTES

#define OBJ_VALID_ATTRIBUTES   0x000007F2L

Definition at line 233 of file winternl.h.

◆ PIO_APC_ROUTINE_DEFINED

#define PIO_APC_ROUTINE_DEFINED

Definition at line 299 of file winternl.h.

◆ RtlFillMemory

#define RtlFillMemory (   Dest,
  Length,
  Fill 
)    memset((Dest),(Fill),(Length))

Definition at line 603 of file winternl.h.

◆ RtlMoveMemory

#define RtlMoveMemory (   Dest,
  Source,
  Length 
)    memmove((Dest),(Source),(Length))

Definition at line 602 of file winternl.h.

◆ RtlZeroMemory

#define RtlZeroMemory (   Dest,
  Length 
)    RtlFillMemory((Dest),(Length),0)

Definition at line 604 of file winternl.h.

◆ SERVERNAME_CURRENT

#define SERVERNAME_CURRENT   ((HANDLE)NULL)

Definition at line 166 of file winternl.h.

Typedef Documentation

◆ ANSI_STRING

Definition at line 70 of file winternl.h.

◆ FILE_INFORMATION_CLASS

◆ IO_STATUS_BLOCK

◆ KEY_SET_INFORMATION_CLASS

◆ KEY_VALUE_ENTRY

◆ LDR_DATA_TABLE_ENTRY

◆ OBJECT_ATTRIBUTES

◆ OBJECT_INFORMATION_CLASS

◆ OEM_STRING

typedef STRING OEM_STRING

Definition at line 73 of file winternl.h.

◆ PANSI_STRING

Definition at line 71 of file winternl.h.

◆ PCANSI_STRING

Definition at line 72 of file winternl.h.

◆ PCOEM_STRING

Definition at line 75 of file winternl.h.

◆ PCSZ

typedef CONST char* PCSZ

Definition at line 62 of file winternl.h.

◆ PCUNICODE_STRING

Definition at line 83 of file winternl.h.

◆ PEB

typedef struct _PEB PEB

◆ PEB_LDR_DATA

◆ PIO_APC_ROUTINE

Definition at line 293 of file winternl.h.

◆ PIO_STATUS_BLOCK

◆ PKEY_VALUE_ENTRY

◆ PLDR_DATA_TABLE_ENTRY

◆ POBJECT_ATTRIBUTES

◆ POEM_STRING

Definition at line 74 of file winternl.h.

◆ PPEB

typedef struct _PEB * PPEB

◆ PPEB_LDR_DATA

◆ PPROCESS_BASIC_INFORMATION

◆ PPS_POST_PROCESS_INIT_ROUTINE

typedef VOID(NTAPI * PPS_POST_PROCESS_INIT_ROUTINE) (VOID)

Definition at line 118 of file winternl.h.

◆ PPUBLIC_OBJECT_BASIC_INFORMATION

◆ PPUBLIC_OBJECT_TYPE_INFORMATION

◆ PROCESS_BASIC_INFORMATION

◆ PROCESSINFOCLASS

◆ PRTL_USER_PROCESS_PARAMETERS

◆ PSTRING

typedef struct _STRING * PSTRING

◆ PSYSTEM_BASIC_INFORMATION

◆ PSYSTEM_EXCEPTION_INFORMATION

◆ PSYSTEM_INTERRUPT_INFORMATION

◆ PSYSTEM_LOOKASIDE_INFORMATION

◆ PSYSTEM_PERFORMANCE_INFORMATION

◆ PSYSTEM_POLICY_INFORMATION

◆ PSYSTEM_PROCESS_INFORMATION

◆ PSYSTEM_PROCESSOR_PERFORMANCE_INFORMATION

◆ PSYSTEM_REGISTRY_QUOTA_INFORMATION

◆ PSYSTEM_TIMEOFDAY_INFORMATION

◆ PTEB

typedef struct _TEB * PTEB

◆ PUBLIC_OBJECT_BASIC_INFORMATION

◆ PUBLIC_OBJECT_TYPE_INFORMATION

◆ PUNICODE_STRING

◆ PWINSTATIONINFORMATIONW

◆ PWINSTATIONQUERYINFORMATIONW

typedef BOOLEAN(WINAPI * PWINSTATIONQUERYINFORMATIONW) (HANDLE, ULONG, WINSTATIONINFOCLASS, PVOID, ULONG, PULONG)

Definition at line 586 of file winternl.h.

◆ RTL_USER_PROCESS_PARAMETERS

◆ STRING

◆ SYSTEM_BASIC_INFORMATION

◆ SYSTEM_EXCEPTION_INFORMATION

◆ SYSTEM_INFORMATION_CLASS

◆ SYSTEM_INTERRUPT_INFORMATION

◆ SYSTEM_LOOKASIDE_INFORMATION

◆ SYSTEM_PERFORMANCE_INFORMATION

◆ SYSTEM_POLICY_INFORMATION

◆ SYSTEM_PROCESS_INFORMATION

◆ SYSTEM_PROCESSOR_PERFORMANCE_INFORMATION

◆ SYSTEM_REGISTRY_QUOTA_INFORMATION

◆ SYSTEM_TIMEOFDAY_INFORMATION

◆ TEB

typedef struct _TEB TEB

◆ THREADINFOCLASS

◆ UNICODE_STRING

◆ WINSTATIONINFOCLASS

◆ WINSTATIONINFORMATIONW

Enumeration Type Documentation

◆ _FILE_INFORMATION_CLASS

Enumerator
FileDirectoryInformation 
FileFullDirectoryInformation 
FileBothDirectoryInformation 
FileBasicInformation 
FileStandardInformation 
FileInternalInformation 
FileEaInformation 
FileAccessInformation 
FileNameInformation 
FileRenameInformation 
FileLinkInformation 
FileNamesInformation 
FileDispositionInformation 
FilePositionInformation 
FileFullEaInformation 
FileModeInformation 
FileAlignmentInformation 
FileAllInformation 
FileAllocationInformation 
FileEndOfFileInformation 
FileAlternateNameInformation 
FileStreamInformation 
FilePipeInformation 
FilePipeLocalInformation 
FilePipeRemoteInformation 
FileMailslotQueryInformation 
FileMailslotSetInformation 
FileCompressionInformation 
FileObjectIdInformation 
FileCompletionInformation 
FileMoveClusterInformation 
FileQuotaInformation 
FileReparsePointInformation 
FileNetworkOpenInformation 
FileAttributeTagInformation 
FileTrackingInformation 
FileIdBothDirectoryInformation 
FileIdFullDirectoryInformation 
FileValidDataLengthInformation 
FileShortNameInformation 
FileIoCompletionNotificationInformation 
FileIoStatusBlockRangeInformation 
FileIoPriorityHintInformation 
FileSfioReserveInformation 
FileSfioVolumeInformation 
FileHardLinkInformation 
FileProcessIdsUsingFileInformation 
FileNormalizedNameInformation 
FileNetworkPhysicalNameInformation 
FileIdGlobalTxDirectoryInformation 
FileMaximumInformation 
FileDirectoryInformation 
FileFullDirectoryInformation 
FileBothDirectoryInformation 
FileBasicInformation 
FileStandardInformation 
FileInternalInformation 
FileEaInformation 
FileAccessInformation 
FileNameInformation 
FileRenameInformation 
FileLinkInformation 
FileNamesInformation 
FileDispositionInformation 
FilePositionInformation 
FileFullEaInformation 
FileModeInformation 
FileAlignmentInformation 
FileAllInformation 
FileAllocationInformation 
FileEndOfFileInformation 
FileAlternateNameInformation 
FileStreamInformation 
FilePipeInformation 
FilePipeLocalInformation 
FilePipeRemoteInformation 
FileMailslotQueryInformation 
FileMailslotSetInformation 
FileCompressionInformation 
FileCopyOnWriteInformation 
FileCompletionInformation 
FileMoveClusterInformation 
FileOleClassIdInformation 
FileOleStateBitsInformation 
FileNetworkOpenInformation 
FileObjectIdInformation 
FileOleAllInformation 
FileOleDirectoryInformation 
FileContentIndexInformation 
FileInheritContentIndexInformation 
FileOleInformation 
FileMaximumInformation 
FileDirectoryInformation 
FileFullDirectoryInformation 
FileBothDirectoryInformation 
FileBasicInformation 
FileStandardInformation 
FileInternalInformation 
FileEaInformation 
FileAccessInformation 
FileNameInformation 
FileRenameInformation 
FileLinkInformation 
FileNamesInformation 
FileDispositionInformation 
FilePositionInformation 
FileFullEaInformation 
FileModeInformation 
FileAlignmentInformation 
FileAllInformation 
FileAllocationInformation 
FileEndOfFileInformation 
FileAlternateNameInformation 
FileStreamInformation 
FilePipeInformation 
FilePipeLocalInformation 
FilePipeRemoteInformation 
FileMailslotQueryInformation 
FileMailslotSetInformation 
FileCompressionInformation 
FileCopyOnWriteInformation 
FileCompletionInformation 
FileMoveClusterInformation 
FileOleClassIdInformation 
FileOleStateBitsInformation 
FileNetworkOpenInformation 
FileObjectIdInformation 
FileOleAllInformation 
FileOleDirectoryInformation 
FileContentIndexInformation 
FileInheritContentIndexInformation 
FileOleInformation 
FileMaximumInformation 
FileDirectoryInformation 
FileDirectoryInformation 
FileFullDirectoryInformation 
FileBothDirectoryInformation 
FileBasicInformation 
FileStandardInformation 
FileInternalInformation 
FileEaInformation 
FileAccessInformation 
FileNameInformation 
FileRenameInformation 
FileLinkInformation 
FileNamesInformation 
FileDispositionInformation 
FilePositionInformation 
FileFullEaInformation 
FileModeInformation 
FileAlignmentInformation 
FileAllInformation 
FileAllocationInformation 
FileEndOfFileInformation 
FileAlternateNameInformation 
FileStreamInformation 
FilePipeInformation 
FilePipeLocalInformation 
FilePipeRemoteInformation 
FileMailslotQueryInformation 
FileMailslotSetInformation 
FileCompressionInformation 
FileObjectIdInformation 
FileCompletionInformation 
FileMoveClusterInformation 
FileQuotaInformation 
FileReparsePointInformation 
FileNetworkOpenInformation 
FileAttributeTagInformation 
FileTrackingInformation 
FileIdBothDirectoryInformation 
FileIdFullDirectoryInformation 
FileValidDataLengthInformation 
FileShortNameInformation 
FileIoCompletionNotificationInformation 
FileIoStatusBlockRangeInformation 
FileIoPriorityHintInformation 
FileSfioReserveInformation 
FileSfioVolumeInformation 
FileHardLinkInformation 
FileProcessIdsUsingFileInformation 
FileNormalizedNameInformation 
FileNetworkPhysicalNameInformation 
FileIdGlobalTxDirectoryInformation 
FileIsRemoteDeviceInformation 
FileAttributeCacheInformation 
FileNumaNodeInformation 
FileStandardLinkInformation 
FileRemoteProtocolInformation 
FileRenameInformationBypassAccessCheck 
FileLinkInformationBypassAccessCheck 
FileVolumeNameInformation 
FileIdInformation 
FileIdExtdDirectoryInformation 
FileReplaceCompletionInformation 
FileHardLinkFullIdInformation 
FileIdExtdBothDirectoryInformation 
FileDispositionInformationEx 
FileRenameInformationEx 
FileRenameInformationExBypassAccessCheck 
FileDesiredStorageClassInformation 
FileStatInformation 
FileMemoryPartitionInformation 
FileStatLxInformation 
FileCaseSensitiveInformation 
FileLinkInformationEx 
FileLinkInformationExBypassAccessCheck 
FileStorageReserveIdInformation 
FileCaseSensitiveInformationForceAccessCheck 
FileKnownFolderInformation 
FileMaximumInformation 
FileDirectoryInformation 
FileFullDirectoryInformation 
FileBothDirectoryInformation 
FileBasicInformation 
FileStandardInformation 
FileInternalInformation 
FileEaInformation 
FileAccessInformation 
FileNameInformation 
FileRenameInformation 
FileLinkInformation 
FileNamesInformation 
FileDispositionInformation 
FilePositionInformation 
FileFullEaInformation 
FileModeInformation 
FileAlignmentInformation 
FileAllInformation 
FileAllocationInformation 
FileEndOfFileInformation 
FileAlternateNameInformation 
FileStreamInformation 
FilePipeInformation 
FilePipeLocalInformation 
FilePipeRemoteInformation 
FileMailslotQueryInformation 
FileMailslotSetInformation 
FileCompressionInformation 
FileObjectIdInformation 
FileCompletionInformation 
FileMoveClusterInformation 
FileQuotaInformation 
FileReparsePointInformation 
FileNetworkOpenInformation 
FileAttributeTagInformation 
FileTrackingInformation 
FileIdBothDirectoryInformation 
FileIdFullDirectoryInformation 
FileValidDataLengthInformation 
FileShortNameInformation 
FileIoCompletionNotificationInformation 
FileIoStatusBlockRangeInformation 
FileIoPriorityHintInformation 
FileSfioReserveInformation 
FileSfioVolumeInformation 
FileHardLinkInformation 
FileProcessIdsUsingFileInformation 
FileNormalizedNameInformation 
FileNetworkPhysicalNameInformation 
FileIdGlobalTxDirectoryInformation 
FileIsRemoteDeviceInformation 
FileAttributeCacheInformation 
FileNumaNodeInformation 
FileStandardLinkInformation 
FileRemoteProtocolInformation 
FileMaximumInformation 

Definition at line 159 of file winternl.h.

160{
@ FileDirectoryInformation
Definition: winternl.h:161
enum _FILE_INFORMATION_CLASS FILE_INFORMATION_CLASS

◆ _KEY_SET_INFORMATION_CLASS

Enumerator
KeyWriteTimeInformation 
KeyWriteTimeInformation 
KeyWow64FlagsInformation 
KeyControlFlagsInformation 
KeySetVirtualizationInformation 
KeySetDebugInformation 
KeySetHandleTagsInformation 
MaxKeySetInfoClass 
KeyWriteTimeInformation 
KeyWow64FlagsInformation 
KeyControlFlagsInformation 
KeySetVirtualizationInformation 
KeySetDebugInformation 
KeySetHandleTagsInformation 
MaxKeySetInfoClass 

Definition at line 372 of file winternl.h.

373{
enum _KEY_SET_INFORMATION_CLASS KEY_SET_INFORMATION_CLASS
@ KeyWriteTimeInformation
Definition: winternl.h:374
@ KeySetVirtualizationInformation
Definition: winternl.h:377
@ KeyControlFlagsInformation
Definition: winternl.h:376
@ KeySetDebugInformation
Definition: winternl.h:378
@ KeyWow64FlagsInformation
Definition: winternl.h:375
@ KeySetHandleTagsInformation
Definition: winternl.h:379
@ MaxKeySetInfoClass
Definition: winternl.h:380

◆ _OBJECT_INFORMATION_CLASS

Enumerator
ObjectBasicInformation 
ObjectNameInformation 
ObjectTypeInformation 
ObjectAllTypesInformation 
ObjectHandleInformation 
ObjectBasicInformation 
ObjectNameInformation 
ObjectTypeInformation 
ObjectTypesInformation 
ObjectHandleFlagInformation 
ObjectSessionInformation 
ObjectSessionObjectInformation 
ObjectSetRefTraceInformation 
MaxObjectInfoClass 
ObjectBasicInformation 
ObjectTypeInformation 
ObjectBasicInformation 
ObjectNameInformation 
ObjectTypeInformation 
ObjectTypesInformation 
ObjectHandleFlagInformation 
ObjectSessionInformation 
ObjectSessionObjectInformation 

Definition at line 441 of file winternl.h.

442{
enum _OBJECT_INFORMATION_CLASS OBJECT_INFORMATION_CLASS
@ ObjectTypeInformation
Definition: winternl.h:444
@ ObjectBasicInformation
Definition: winternl.h:443

◆ _PROCESSINFOCLASS

Enumerator
ProcessBasicInformation 
ProcessDebugPort 
ProcessWow64Information 
ProcessImageFileName 
ProcessBreakOnTermination 
ProcessBasicInformation 
ProcessDebugPort 
ProcessWow64Information 
ProcessImageFileName 
ProcessBreakOnTermination 
ProcessBasicInformation 
ProcessQuotaLimits 
ProcessIoCounters 
ProcessVmCounters 
ProcessTimes 
ProcessBasePriority 
ProcessRaisePriority 
ProcessDebugPort 
ProcessExceptionPort 
ProcessAccessToken 
ProcessLdtInformation 
ProcessLdtSize 
ProcessDefaultHardErrorMode 
ProcessIoPortHandlers 
ProcessPooledUsageAndLimits 
ProcessWorkingSetWatch 
ProcessUserModeIOPL 
ProcessEnableAlignmentFaultFixup 
ProcessPriorityClass 
ProcessWx86Information 
ProcessHandleCount 
ProcessAffinityMask 
ProcessPriorityBoost 
ProcessDeviceMap 
ProcessSessionInformation 
ProcessForegroundInformation 
ProcessWow64Information 
ProcessImageFileName 
ProcessLUIDDeviceMapsEnabled 
ProcessBreakOnTermination 
ProcessDebugObjectHandle 
ProcessDebugFlags 
ProcessHandleTracing 
ProcessIoPriority 
ProcessExecuteFlags 
ProcessTlsInformation 
ProcessCookie 
ProcessImageInformation 
ProcessCycleTime 
ProcessPagePriority 
ProcessInstrumentationCallback 
ProcessThreadStackAllocation 
ProcessWorkingSetWatchEx 
ProcessImageFileNameWin32 
ProcessImageFileMapping 
ProcessAffinityUpdateMode 
ProcessMemoryAllocationMode 
ProcessGroupInformation 
ProcessTokenVirtualizationEnabled 
ProcessConsoleHostProcess 
ProcessWindowInformation 
ProcessHandleInformation 
ProcessMitigationPolicy 
ProcessDynamicFunctionTableInformation 
ProcessHandleCheckingMode 
ProcessKeepAliveCount 
ProcessRevokeFileHandles 
ProcessWorkingSetControl 
ProcessHandleTable 
ProcessCheckStackExtentsMode 
ProcessCommandLineInformation 
ProcessProtectionInformation 
ProcessMemoryExhaustion 
ProcessFaultInformation 
ProcessTelemetryIdInformation 
ProcessCommitReleaseInformation 
ProcessDefaultCpuSetsInformation 
ProcessAllowedCpuSetsInformation 
ProcessSubsystemProcess 
ProcessJobMemoryInformation 
ProcessInPrivate 
ProcessRaiseUMExceptionOnInvalidHandleClose 
ProcessIumChallengeResponse 
ProcessChildProcessInformation 
ProcessHighGraphicsPriorityInformation 
ProcessSubsystemInformation 
ProcessEnergyValues 
ProcessPowerThrottlingState 
ProcessReserved3Information 
ProcessWin32kSyscallFilterInformation 
ProcessDisableSystemAllowedCpuSets 
ProcessWakeInformation 
ProcessEnergyTrackingState 
ProcessManageWritesToExecutableMemory 
ProcessCaptureTrustletLiveDump 
ProcessTelemetryCoverage 
ProcessEnclaveInformation 
ProcessEnableReadWriteVmLogging 
ProcessUptimeInformation 
ProcessImageSection 
ProcessDebugAuthInformation 
ProcessSystemResourceManagement 
ProcessSequenceNumber 
ProcessLoaderDetour 
ProcessSecurityDomainInformation 
ProcessCombineSecurityDomainsInformation 
ProcessEnableLogging 
ProcessLeapSecondInformation 
ProcessFiberShadowStackAllocation 
ProcessFreeFiberShadowStackAllocation 
ProcessAltSystemCallInformation 
ProcessDynamicEHContinuationTargets 
ProcessDynamicEnforcedCetCompatibleRanges 
ProcessCreateStateChange 
ProcessApplyStateChange 
ProcessEnableOptionalXStateFeatures 
ProcessAltPrefetchParam 
ProcessAssignCpuPartitions 
ProcessPriorityClassEx 
ProcessMembershipInformation 
ProcessEffectiveIoPriority 
ProcessEffectivePagePriority 
MaxProcessInfoClass 
ProcessBasicInformation 
ProcessQuotaLimits 
ProcessIoCounters 
ProcessVmCounters 
ProcessTimes 
ProcessBasePriority 
ProcessRaisePriority 
ProcessDebugPort 
ProcessExceptionPort 
ProcessAccessToken 
ProcessLdtInformation 
ProcessLdtSize 
ProcessDefaultHardErrorMode 
ProcessIoPortHandlers 
ProcessPooledUsageAndLimits 
ProcessWorkingSetWatch 
ProcessUserModeIOPL 
ProcessEnableAlignmentFaultFixup 
ProcessPriorityClass 
ProcessWx86Information 
ProcessHandleCount 
ProcessAffinityMask 
ProcessPriorityBoost 
ProcessDeviceMap 
ProcessSessionInformation 
ProcessForegroundInformation 
ProcessWow64Information 
ProcessImageFileName 
ProcessLUIDDeviceMapsEnabled 
ProcessBreakOnTermination 
ProcessDebugObjectHandle 
ProcessDebugFlags 
ProcessHandleTracing 
ProcessIoPriority 
ProcessExecuteFlags 
ProcessTlsInformation 
ProcessCookie 
ProcessImageInformation 
ProcessCycleTime 
ProcessPagePriority 
ProcessInstrumentationCallback 
ProcessThreadStackAllocation 
ProcessWorkingSetWatchEx 
ProcessImageFileNameWin32 
ProcessImageFileMapping 
ProcessAffinityUpdateMode 
ProcessMemoryAllocationMode 
ProcessGroupInformation 
ProcessTokenVirtualizationEnabled 
ProcessConsoleHostProcess 
ProcessWindowInformation 
MaxProcessInfoClass 

Definition at line 394 of file winternl.h.

395{
enum _PROCESSINFOCLASS PROCESSINFOCLASS
@ ProcessDebugPort
Definition: winternl.h:397
@ ProcessBreakOnTermination
Definition: winternl.h:400
@ ProcessBasicInformation
Definition: winternl.h:396
@ ProcessWow64Information
Definition: winternl.h:398
@ ProcessImageFileName
Definition: winternl.h:399

◆ _SYSTEM_INFORMATION_CLASS

Enumerator
SystemBasicInformation 
SystemProcessorInformation 
SystemPerformanceInformation 
SystemTimeOfDayInformation 
SystemPathInformation 
SystemProcessInformation 
SystemCallCountInformation 
SystemDeviceInformation 
SystemProcessorPerformanceInformation 
SystemFlagsInformation 
SystemCallTimeInformation 
SystemModuleInformation 
SystemLocksInformation 
SystemStackTraceInformation 
SystemPagedPoolInformation 
SystemNonPagedPoolInformation 
SystemHandleInformation 
SystemObjectInformation 
SystemPageFileInformation 
SystemVdmInstemulInformation 
SystemVdmBopInformation 
SystemFileCacheInformation 
SystemPoolTagInformation 
SystemInterruptInformation 
SystemDpcBehaviorInformation 
SystemFullMemoryInformation 
SystemLoadGdiDriverInformation 
SystemUnloadGdiDriverInformation 
SystemTimeAdjustmentInformation 
SystemSummaryMemoryInformation 
SystemNextEventIdInformation 
SystemEventIdsInformation 
SystemCrashDumpInformation 
SystemExceptionInformation 
SystemCrashDumpStateInformation 
SystemKernelDebuggerInformation 
SystemContextSwitchInformation 
SystemRegistryQuotaInformation 
SystemExtendServiceTableInformation 
SystemPrioritySeperation 
SystemPlugPlayBusInformation 
SystemDockInformation 
SystemPowerInformation 
SystemProcessorSpeedInformation 
SystemCurrentTimeZoneInformation 
SystemLookasideInformation 
SystemBasicInformation 
SystemProcessorInformation 
SystemPerformanceInformation 
SystemTimeOfDayInformation 
SystemPathInformation 
SystemProcessInformation 
SystemCallCountInformation 
SystemDeviceInformation 
SystemProcessorPerformanceInformation 
SystemFlagsInformation 
SystemCallTimeInformation 
SystemModuleInformation 
SystemLocksInformation 
SystemStackTraceInformation 
SystemPagedPoolInformation 
SystemNonPagedPoolInformation 
SystemHandleInformation 
SystemObjectInformation 
SystemPageFileInformation 
SystemVdmInstemulInformation 
SystemVdmBopInformation 
SystemFileCacheInformation 
SystemPoolTagInformation 
SystemInterruptInformation 
SystemDpcBehaviorInformation 
SystemFullMemoryInformation 
SystemLoadGdiDriverInformation 
SystemUnloadGdiDriverInformation 
SystemTimeAdjustmentInformation 
SystemSummaryMemoryInformation 
SystemNextEventIdInformation 
SystemEventIdsInformation 
SystemCrashDumpInformation 
SystemExceptionInformation 
SystemCrashDumpStateInformation 
SystemKernelDebuggerInformation 
SystemContextSwitchInformation 
SystemRegistryQuotaInformation 
SystemExtendServiceTableInformation 
SystemPrioritySeperation 
SystemPlugPlayBusInformation 
SystemDockInformation 
SystemPowerInformation 
SystemProcessorSpeedInformation 
SystemCurrentTimeZoneInformation 
SystemLookasideInformation 
SystemBasicInformation 
SystemProcessorInformation 
SystemPerformanceInformation 
SystemTimeOfDayInformation 
SystemPathInformation 
SystemProcessInformation 
SystemCallCountInformation 
SystemDeviceInformation 
SystemProcessorPerformanceInformation 
SystemFlagsInformation 
SystemCallTimeInformation 
SystemModuleInformation 
SystemLocksInformation 
SystemStackTraceInformation 
SystemPagedPoolInformation 
SystemNonPagedPoolInformation 
SystemHandleInformation 
SystemObjectInformation 
SystemPageFileInformation 
SystemVdmInstemulInformation 
SystemVdmBopInformation 
SystemFileCacheInformation 
SystemPoolTagInformation 
SystemInterruptInformation 
SystemDpcBehaviorInformation 
SystemFullMemoryInformation 
SystemLoadGdiDriverInformation 
SystemUnloadGdiDriverInformation 
SystemTimeAdjustmentInformation 
SystemSummaryMemoryInformation 
SystemMirrorMemoryInformation 
SystemPerformanceTraceInformation 
SystemObsolete0 
SystemExceptionInformation 
SystemCrashDumpStateInformation 
SystemKernelDebuggerInformation 
SystemContextSwitchInformation 
SystemRegistryQuotaInformation 
SystemExtendServiceTableInformation 
SystemPrioritySeperation 
SystemVerifierAddDriverInformation 
SystemVerifierRemoveDriverInformation 
SystemProcessorIdleInformation 
SystemLegacyDriverInformation 
SystemCurrentTimeZoneInformation 
SystemLookasideInformation 
SystemTimeSlipNotification 
SystemSessionCreate 
SystemSessionDetach 
SystemSessionInformation 
SystemRangeStartInformation 
SystemVerifierInformation 
SystemVerifierThunkExtend 
SystemSessionProcessInformation 
SystemLoadGdiDriverInSystemSpace 
SystemNumaProcessorMap 
SystemPrefetcherInformation 
SystemExtendedProcessInformation 
SystemRecommendedSharedDataAlignment 
SystemComPlusPackage 
SystemNumaAvailableMemory 
SystemProcessorPowerInformation 
SystemEmulationBasicInformation 
SystemEmulationProcessorInformation 
SystemExtendedHandleInformation 
SystemLostDelayedWriteInformation 
SystemBigPoolInformation 
SystemSessionPoolTagInformation 
SystemSessionMappedViewInformation 
SystemHotpatchInformation 
SystemObjectSecurityMode 
SystemWatchdogTimerHandler 
SystemWatchdogTimerInformation 
SystemLogicalProcessorInformation 
SystemWow64SharedInformationObsolete 
SystemRegisterFirmwareTableInformationHandler 
SystemFirmwareTableInformation 
SystemModuleInformationEx 
SystemVerifierTriageInformation 
SystemSuperfetchInformation 
SystemMemoryListInformation 
SystemFileCacheInformationEx 
SystemThreadPriorityClientIdInformation 
SystemProcessorIdleCycleTimeInformation 
SystemVerifierCancellationInformation 
SystemProcessorPowerInformationEx 
SystemRefTraceInformation 
SystemSpecialPoolInformation 
SystemProcessIdInformation 
SystemErrorPortInformation 
SystemBootEnvironmentInformation 
SystemHypervisorInformation 
SystemVerifierInformationEx 
SystemTimeZoneInformation 
SystemImageFileExecutionOptionsInformation 
SystemCoverageInformation 
SystemPrefetchPatchInformation 
SystemVerifierFaultsInformation 
SystemSystemPartitionInformation 
SystemSystemDiskInformation 
SystemProcessorPerformanceDistribution 
SystemNumaProximityNodeInformation 
SystemDynamicTimeZoneInformation 
SystemCodeIntegrityInformation 
SystemProcessorMicrocodeUpdateInformation 
SystemProcessorBrandString 
SystemVirtualAddressInformation 
SystemLogicalProcessorAndGroupInformation 
SystemProcessorCycleTimeInformation 
SystemStoreInformation 
SystemRegistryAppendString 
SystemAitSamplingValue 
SystemVhdBootInformation 
SystemCpuQuotaInformation 
SystemNativeBasicInformation 
SystemErrorPortTimeouts 
SystemLowPriorityIoInformation 
SystemBootEntropyInformation 
SystemVerifierCountersInformation 
SystemPagedPoolInformationEx 
SystemSystemPtesInformationEx 
SystemNodeDistanceInformation 
SystemAcpiAuditInformation 
SystemBasicPerformanceInformation 
SystemQueryPerformanceCounterInformation 
SystemSessionBigPoolInformation 
SystemBootGraphicsInformation 
SystemScrubPhysicalMemoryInformation 
SystemBadPageInformation 
SystemProcessorProfileControlArea 
SystemCombinePhysicalMemoryInformation 
SystemEntropyInterruptTimingInformation 
SystemConsoleInformation 
SystemPlatformBinaryInformation 
SystemThrottleNotificationInformation 
SystemPolicyInformation 
SystemHypervisorProcessorCountInformation 
SystemDeviceDataInformation 
SystemDeviceDataEnumerationInformation 
SystemMemoryTopologyInformation 
SystemMemoryChannelInformation 
SystemBootLogoInformation 
SystemProcessorPerformanceInformationEx 
SystemSpare0 
SystemCriticalProcessErrorLogInformation 
SystemSecureBootPolicyInformation 
SystemPageFileInformationEx 
SystemSecureBootInformation 
SystemEntropyInterruptTimingRawInformation 
SystemPortableWorkspaceEfiLauncherInformation 
SystemFullProcessInformation 
SystemKernelDebuggerInformationEx 
SystemBootMetadataInformation 
SystemSoftRebootInformation 
SystemElamCertificateInformation 
SystemOfflineDumpConfigInformation 
SystemProcessorFeaturesInformation 
SystemRegistryReconciliationInformation 
SystemEdidInformation 
SystemManufacturingInformation 
SystemEnergyEstimationConfigInformation 
SystemHypervisorDetailInformation 
SystemProcessorCycleStatsInformation 
SystemVmGenerationCountInformation 
SystemTrustedPlatformModuleInformation 
SystemKernelDebuggerFlags 
SystemCodeIntegrityPolicyInformation 
SystemIsolatedUserModeInformation 
SystemHardwareSecurityTestInterfaceResultsInformation 
SystemSingleModuleInformation 
SystemAllowedCpuSetsInformation 
SystemVsmProtectionInformation 
SystemInterruptCpuSetsInformation 
SystemSecureBootPolicyFullInformation 
SystemCodeIntegrityPolicyFullInformation 
SystemAffinitizedInterruptProcessorInformation 
SystemRootSiloInformation 
SystemCpuSetInformation 
SystemCpuSetTagInformation 
SystemWin32WerStartCallout 
SystemSecureKernelProfileInformation 
SystemCodeIntegrityPlatformManifestInformation 
SystemInterruptSteeringInformation 
SystemSupportedProcessorArchitectures 
SystemMemoryUsageInformation 
SystemCodeIntegrityCertificateInformation 
SystemPhysicalMemoryInformation 
SystemControlFlowTransition 
SystemKernelDebuggingAllowed 
SystemActivityModerationExeState 
SystemActivityModerationUserSettings 
SystemCodeIntegrityPoliciesFullInformation 
SystemCodeIntegrityUnlockInformation 
SystemIntegrityQuotaInformation 
SystemFlushInformation 
SystemProcessorIdleMaskInformation 
SystemSecureDumpEncryptionInformation 
SystemWriteConstraintInformation 
SystemKernelVaShadowInformation 
SystemHypervisorSharedPageInformation 
SystemFirmwareBootPerformanceInformation 
SystemCodeIntegrityVerificationInformation 
SystemFirmwarePartitionInformation 
SystemSpeculationControlInformation 
SystemDmaGuardPolicyInformation 
SystemEnclaveLaunchControlInformation 
SystemWorkloadAllowedCpuSetsInformation 
SystemCodeIntegrityUnlockModeInformation 
SystemLeapSecondInformation 
SystemFlags2Information 
SystemSecurityModelInformation 
SystemCodeIntegritySyntheticCacheInformation 
SystemFeatureConfigurationInformation 
SystemFeatureConfigurationSectionInformation 
SystemFeatureUsageSubscriptionInformation 
SystemSecureSpeculationControlInformation 
SystemSpacesBootInformation 
SystemFwRamdiskInformation 
SystemWheaIpmiHardwareInformation 
SystemDifSetRuleClassInformation 
SystemDifClearRuleClassInformation 
SystemDifApplyPluginVerificationOnDriver 
SystemDifRemovePluginVerificationOnDriver 
SystemShadowStackInformation 
SystemBuildVersionInformation 
SystemPoolLimitInformation 
SystemCodeIntegrityAddDynamicStore 
SystemCodeIntegrityClearDynamicStores 
SystemDifPoolTrackingInformation 
SystemPoolZeroingInformation 
SystemDpcWatchdogInformation 
SystemDpcWatchdogInformation2 
SystemSupportedProcessorArchitectures2 
SystemSingleProcessorRelationshipInformation 
SystemXfgCheckFailureInformation 
SystemIommuStateInformation 
SystemHypervisorMinrootInformation 
SystemHypervisorBootPagesInformation 
SystemPointerAuthInformation 
SystemSecureKernelDebuggerInformation 
SystemOriginalImageFeatureInformation 
SystemMemoryNumaInformation 
SystemMemoryNumaPerformanceInformation 
SystemCodeIntegritySignedPoliciesFullInformation 
SystemSecureSecretsInformation 
SystemTrustedAppsRuntimeInformation 
SystemBadPageInformationEx 
SystemResourceDeadlockTimeout 
SystemBreakOnContextUnwindFailureInformation 
SystemOslRamdiskInformation 
MaxSystemInfoClass 
SystemBasicInformation 
SystemPerformanceInformation 
SystemTimeOfDayInformation 
SystemProcessInformation 
SystemProcessorPerformanceInformation 
SystemInterruptInformation 
SystemExceptionInformation 
SystemRegistryQuotaInformation 
SystemLookasideInformation 
SystemPolicyInformation 
SystemBasicInformation 
SystemCpuInformation 
SystemPerformanceInformation 
SystemTimeOfDayInformation 
SystemPathInformation 
SystemProcessInformation 
SystemCallCountInformation 
SystemDeviceInformation 
SystemProcessorPerformanceInformation 
SystemFlagsInformation 
SystemCallTimeInformation 
SystemModuleInformation 
SystemLocksInformation 
SystemStackTraceInformation 
SystemPagedPoolInformation 
SystemNonPagedPoolInformation 
SystemHandleInformation 
SystemObjectInformation 
SystemPageFileInformation 
SystemVdmInstemulInformation 
SystemVdmBopInformation 
SystemFileCacheInformation 
SystemPoolTagInformation 
SystemInterruptInformation 
SystemDpcBehaviorInformation 
SystemFullMemoryInformation 
SystemNotImplemented6 
SystemLoadGdiDriverInformation 
SystemUnloadGdiDriverInformation 
SystemTimeAdjustmentInformation 
SystemTimeAdjustment 
SystemSummaryMemoryInformation 
SystemMirrorMemoryInformation 
SystemPerformanceTraceInformation 
SystemObsolete0 
SystemExceptionInformation 
SystemCrashDumpStateInformation 
SystemKernelDebuggerInformation 
SystemContextSwitchInformation 
SystemRegistryQuotaInformation 
SystemExtendServiceTableInformation 
SystemPrioritySeparation 
SystemVerifierAddDriverInformation 
SystemVerifierRemoveDriverInformation 
SystemProcessorIdleInformation 
SystemLegacyDriverInformation 
SystemCurrentTimeZoneInformation 
SystemLookasideInformation 
SystemTimeSlipNotification 
SystemSessionCreate 
SystemSessionDetach 
SystemSessionInformation 
SystemRangeStartInformation 
SystemVerifierInformation 
SystemVerifierThunkExtend 
SystemSessionProcessesInformation 
SystemLoadGdiDriverInSystemSpace 
SystemNumaProcessorMap 
SystemPrefetcherInformation 
SystemExtendedProcessInformation 
SystemRecommendedSharedDataAlignment 
SystemComPlusPackage 
SystemNumaAvailableMemory 
SystemProcessorPowerInformation 
SystemEmulationBasicInformation 
SystemEmulationProcessorInformation 
SystemExtendedHandleInformation 
SystemLostDelayedWriteInformation 
SystemBigPoolInformation 
SystemSessionPoolTagInformation 
SystemSessionMappedViewInformation 
SystemHotpatchInformation 
SystemObjectSecurityMode 
SystemWatchdogTimerHandler 
SystemWatchdogTimerInformation 
SystemLogicalProcessorInformation 
SystemWow64SharedInformationObsolete 
SystemRegisterFirmwareTableInformationHandler 
SystemFirmwareTableInformation 
SystemModuleInformationEx 
SystemVerifierTriageInformation 
SystemSuperfetchInformation 
SystemMemoryListInformation 
SystemFileCacheInformationEx 
SystemThreadPriorityClientIdInformation 
SystemProcessorIdleCycleTimeInformation 
SystemVerifierCancellationInformation 
SystemProcessorPowerInformationEx 
SystemRefTraceInformation 
SystemSpecialPoolInformation 
SystemProcessIdInformation 
SystemErrorPortInformation 
SystemBootEnvironmentInformation 
SystemHypervisorInformation 
SystemVerifierInformationEx 
SystemTimeZoneInformation 
SystemImageFileExecutionOptionsInformation 
SystemCoverageInformation 
SystemPrefetchPatchInformation 
SystemVerifierFaultsInformation 
SystemSystemPartitionInformation 
SystemSystemDiskInformation 
SystemProcessorPerformanceDistribution 
SystemNumaProximityNodeInformation 
SystemDynamicTimeZoneInformation 
SystemCodeIntegrityInformation 
SystemProcessorMicrocodeUpdateInformation 
SystemProcessorBrandString 
SystemVirtualAddressInformation 
SystemLogicalProcessorInformationEx 
SystemProcessorCycleTimeInformation 
SystemStoreInformation 
SystemRegistryAppendString 
SystemAitSamplingValue 
SystemVhdBootInformation 
SystemCpuQuotaInformation 
SystemNativeBasicInformation 
SystemErrorPortTimeouts 
SystemLowPriorityIoInformation 
SystemTpmBootEntropyInformation 
SystemVerifierCountersInformation 
SystemPagedPoolInformationEx 
SystemSystemPtesInformationEx 
SystemNodeDistanceInformation 
SystemAcpiAuditInformation 
SystemBasicPerformanceInformation 
SystemQueryPerformanceCounterInformation 
SystemSessionBigPoolInformation 
SystemBootGraphicsInformation 
SystemScrubPhysicalMemoryInformation 
SystemBadPageInformation 
SystemProcessorProfileControlArea 
SystemCombinePhysicalMemoryInformation 
SystemEntropyInterruptTimingInformation 
SystemConsoleInformation 
SystemPlatformBinaryInformation 
SystemPolicyInformation 
SystemHypervisorProcessorCountInformation 
SystemDeviceDataInformation 
SystemDeviceDataEnumerationInformation 
SystemMemoryTopologyInformation 
SystemMemoryChannelInformation 
SystemBootLogoInformation 
SystemProcessorPerformanceInformationEx 
SystemCriticalProcessErrorLogInformation 
SystemSecureBootPolicyInformation 
SystemPageFileInformationEx 
SystemSecureBootInformation 
SystemEntropyInterruptTimingRawInformation 
SystemPortableWorkspaceEfiLauncherInformation 
SystemFullProcessInformation 
SystemKernelDebuggerInformationEx 
SystemBootMetadataInformation 
SystemSoftRebootInformation 
SystemElamCertificateInformation 
SystemOfflineDumpConfigInformation 
SystemProcessorFeaturesInformation 
SystemRegistryReconciliationInformation 
SystemEdidInformation 
SystemManufacturingInformation 
SystemEnergyEstimationConfigInformation 
SystemHypervisorDetailInformation 
SystemProcessorCycleStatsInformation 
SystemVmGenerationCountInformation 
SystemTrustedPlatformModuleInformation 
SystemKernelDebuggerFlags 
SystemCodeIntegrityPolicyInformation 
SystemIsolatedUserModeInformation 
SystemHardwareSecurityTestInterfaceResultsInformation 
SystemSingleModuleInformation 
SystemAllowedCpuSetsInformation 
SystemVsmProtectionInformation 
SystemInterruptCpuSetsInformation 
SystemSecureBootPolicyFullInformation 
SystemCodeIntegrityPolicyFullInformation 
SystemAffinitizedInterruptProcessorInformation 
SystemRootSiloInformation 
SystemCpuSetInformation 
SystemCpuSetTagInformation 
SystemWin32WerStartCallout 
SystemSecureKernelProfileInformation 
SystemCodeIntegrityPlatformManifestInformation 
SystemInterruptSteeringInformation 
SystemSupportedProcessorArchitectures 
SystemMemoryUsageInformation 
SystemCodeIntegrityCertificateInformation 
SystemPhysicalMemoryInformation 
SystemControlFlowTransition 
SystemKernelDebuggingAllowed 
SystemActivityModerationExeState 
SystemActivityModerationUserSettings 
SystemCodeIntegrityPoliciesFullInformation 
SystemCodeIntegrityUnlockInformation 
SystemIntegrityQuotaInformation 
SystemFlushInformation 
SystemProcessorIdleMaskInformation 
SystemSecureDumpEncryptionInformation 
SystemWriteConstraintInformation 
SystemKernelVaShadowInformation 
SystemHypervisorSharedPageInformation 
SystemFirmwareBootPerformanceInformation 
SystemCodeIntegrityVerificationInformation 
SystemFirmwarePartitionInformation 
SystemSpeculationControlInformation 
SystemDmaGuardPolicyInformation 
SystemEnclaveLaunchControlInformation 
SystemWorkloadAllowedCpuSetsInformation 
SystemCodeIntegrityUnlockModeInformation 
SystemLeapSecondInformation 
SystemFlags2Information 
SystemSecurityModelInformation 
SystemCodeIntegritySyntheticCacheInformation 
SystemFeatureConfigurationInformation 
SystemFeatureConfigurationSectionInformation 
SystemFeatureUsageSubscriptionInformation 
SystemSecureSpeculationControlInformation 
SystemSpacesBootInformation 
SystemFwRamdiskInformation 
SystemWheaIpmiHardwareInformation 
SystemDifSetRuleClassInformation 
SystemDifClearRuleClassInformation 
SystemDifApplyPluginVerificationOnDriver 
SystemDifRemovePluginVerificationOnDriver 
SystemShadowStackInformation 
SystemBuildVersionInformation 
SystemPoolLimitInformation 
SystemCodeIntegrityAddDynamicStore 
SystemCodeIntegrityClearDynamicStores 
SystemDifPoolTrackingInformation 
SystemPoolZeroingInformation 
SystemDpcWatchdogInformation 
SystemDpcWatchdogInformation2 
SystemSupportedProcessorArchitectures2 
SystemSingleProcessorRelationshipInformation 
SystemXfgCheckFailureInformation 
SystemIommuStateInformation 
SystemHypervisorMinrootInformation 
SystemHypervisorBootPagesInformation 
SystemPointerAuthInformation 
SystemSecureKernelDebuggerInformation 
SystemOriginalImageFeatureInformation 

Definition at line 474 of file winternl.h.

475{
@ SystemTimeOfDayInformation
Definition: winternl.h:478
@ SystemExceptionInformation
Definition: winternl.h:482
@ SystemBasicInformation
Definition: winternl.h:476
@ SystemLookasideInformation
Definition: winternl.h:484
@ SystemRegistryQuotaInformation
Definition: winternl.h:483
@ SystemInterruptInformation
Definition: winternl.h:481
@ SystemPolicyInformation
Definition: winternl.h:485
@ SystemProcessInformation
Definition: winternl.h:479
@ SystemPerformanceInformation
Definition: winternl.h:477
@ SystemProcessorPerformanceInformation
Definition: winternl.h:480
enum _SYSTEM_INFORMATION_CLASS SYSTEM_INFORMATION_CLASS

◆ _THREADINFOCLASS

Enumerator
ThreadBasicInformation 
ThreadTimes 
ThreadPriority 
ThreadBasePriority 
ThreadAffinityMask 
ThreadImpersonationToken 
ThreadDescriptorTableEntry 
ThreadEnableAlignmentFaultFixup 
ThreadEventPair_Reusable 
ThreadQuerySetWin32StartAddress 
ThreadZeroTlsCell 
ThreadPerformanceCount 
ThreadAmILastThread 
ThreadIdealProcessor 
ThreadPriorityBoost 
ThreadSetTlsArrayAddress 
ThreadIsIoPending 
ThreadHideFromDebugger 
ThreadBreakOnTermination 
ThreadSwitchLegacyState 
ThreadIsTerminated 
ThreadLastSystemCall 
ThreadIoPriority 
ThreadCycleTime 
ThreadPagePriority 
ThreadActualBasePriority 
ThreadTebInformation 
ThreadCSwitchMon 
ThreadCSwitchPmu 
ThreadWow64Context 
ThreadGroupInformation 
ThreadUmsInformation 
ThreadCounterProfiling 
ThreadIdealProcessorEx 
MaxThreadInfoClass 
ThreadIsIoPending 
ThreadBasicInformation 
ThreadTimes 
ThreadPriority 
ThreadBasePriority 
ThreadAffinityMask 
ThreadImpersonationToken 
ThreadDescriptorTableEntry 
ThreadEnableAlignmentFaultFixup 
ThreadEventPair_Reusable 
ThreadQuerySetWin32StartAddress 
ThreadZeroTlsCell 
ThreadPerformanceCount 
ThreadAmILastThread 
ThreadIdealProcessor 
ThreadPriorityBoost 
ThreadSetTlsArrayAddress 
ThreadIsIoPending 
ThreadHideFromDebugger 
ThreadBreakOnTermination 
ThreadSwitchLegacyState 
ThreadIsTerminated 
ThreadLastSystemCall 
ThreadIoPriority 
ThreadCycleTime 
ThreadPagePriority 
ThreadActualBasePriority 
ThreadTebInformation 
ThreadCSwitchMon 
ThreadCSwitchPmu 
ThreadWow64Context 
ThreadGroupInformation 
ThreadUmsInformation 
ThreadCounterProfiling 
ThreadIdealProcessorEx 
ThreadCpuAccountingInformation 
ThreadSuspendCount 
ThreadHeterogeneousCpuPolicy 
ThreadContainerId 
ThreadNameInformation 
ThreadSelectedCpuSets 
ThreadSystemThreadInformation 
ThreadActualGroupAffinity 
ThreadDynamicCodePolicyInfo 
ThreadExplicitCaseSensitivity 
ThreadWorkOnBehalfTicket 
ThreadSubsystemInformation 
ThreadDbgkWerReportActive 
ThreadAttachContainer 
ThreadManageWritesToExecutableMemory 
ThreadPowerThrottlingState 
ThreadWorkloadClass 
ThreadCreateStateChange 
ThreadApplyStateChange 
ThreadStrongerBadHandleChecks 
ThreadEffectiveIoPriority 
ThreadEffectivePagePriority 
MaxThreadInfoClass 
ThreadBasicInformation 
ThreadTimes 
ThreadPriority 
ThreadBasePriority 
ThreadAffinityMask 
ThreadImpersonationToken 
ThreadDescriptorTableEntry 
ThreadEnableAlignmentFaultFixup 
ThreadEventPair_Reusable 
ThreadQuerySetWin32StartAddress 
ThreadZeroTlsCell 
ThreadPerformanceCount 
ThreadAmILastThread 
ThreadIdealProcessor 
ThreadPriorityBoost 
ThreadSetTlsArrayAddress 
ThreadIsIoPending 
ThreadHideFromDebugger 
ThreadBreakOnTermination 
ThreadSwitchLegacyState 
ThreadIsTerminated 
ThreadLastSystemCall 
ThreadIoPriority 
ThreadCycleTime 
ThreadPagePriority 
ThreadActualBasePriority 
ThreadTebInformation 
ThreadCSwitchMon 
ThreadCSwitchPmu 
ThreadWow64Context 
ThreadGroupInformation 
ThreadUmsInformation 
ThreadCounterProfiling 
ThreadIdealProcessorEx 
ThreadCpuAccountingInformation 
ThreadSuspendCount 
ThreadHeterogeneousCpuPolicy 
ThreadContainerId 
ThreadNameInformation 
ThreadSelectedCpuSets 
ThreadSystemThreadInformation 
ThreadActualGroupAffinity 
ThreadDynamicCodePolicyInfo 
ThreadExplicitCaseSensitivity 
ThreadWorkOnBehalfTicket 
ThreadSubsystemInformation 
ThreadDbgkWerReportActive 
ThreadAttachContainer 
ThreadManageWritesToExecutableMemory 
ThreadPowerThrottlingState 
ThreadWorkloadClass 
ThreadCreateStateChange 
ThreadApplyStateChange 
ThreadStrongerBadHandleChecks 
ThreadEffectiveIoPriority 
ThreadEffectivePagePriority 
MaxThreadInfoClass 

Definition at line 424 of file winternl.h.

425{
enum _THREADINFOCLASS THREADINFOCLASS
@ ThreadIsIoPending
Definition: winternl.h:426

◆ _WINSTATIONINFOCLASS

Enumerator
WinStationInformation 
WinStationInformation 

Definition at line 573 of file winternl.h.

574{
@ WinStationInformation
Definition: winternl.h:575
enum _WINSTATIONINFOCLASS WINSTATIONINFOCLASS

Function Documentation

◆ _IRQL_requires_max_()

_IRQL_requires_max_ ( PASSIVE_LEVEL  )

Queries information details about a security descriptor.

Computes the quota size of a security descriptor.

Assigns a security descriptor for a new object.

An extended function that assigns a security descriptor for a new object.

Frees a security descriptor.

An extended function that sets new information data to a security descriptor.

Modifies some information data about a security descriptor.

Parameters
[in]SecurityInformationSecurity information details to be queried from a security descriptor.
[out]SecurityDescriptorThe returned security descriptor with security information data.
[in,out]LengthThe returned length of a security descriptor.
[in,out]ObjectsSecurityDescriptorThe returned object security descriptor.
Returns
Returns STATUS_SUCCESS if the operations have been completed successfully and that the specific information about the security descriptor has been queried. STATUS_BUFFER_TOO_SMALL is returned if the buffer size is too small to contain the queried info about the security descriptor.
Parameters
[in]ObjectIf specified, the function will use this arbitrary object that points to an object security descriptor.
[in]SecurityInformationSecurity information details to be set.
[in]SecurityDescriptorA security descriptor where its info is to be changed.
[in,out]ObjectsSecurityDescriptorThe returned pointer to security descriptor objects.
[in]PoolTypePool type for the new security descriptor to allocate.
[in]GenericMappingThe generic mapping of access rights masks.
Returns
See SeSetSecurityDescriptorInfoEx.
Parameters
[in]ObjectIf specified, the function will use this arbitrary object that points to an object security descriptor.
[in]SecurityInformationSecurity information details to be set.
[in]SecurityDescriptorA security descriptor where its info is to be changed.
[in,out]ObjectsSecurityDescriptorThe returned pointer to security descriptor objects.
[in]AutoInheritFlagsFlags bitmask inheritation, influencing how the security descriptor can be inherited and if it can be in the first place.
[in]PoolTypePool type for the new security descriptor to allocate.
[in]GenericMappingThe generic mapping of access rights masks.
Returns
Returns STATUS_SUCCESS if the operations have been completed without problems and that new info has been set to the security descriptor. STATUS_NO_SECURITY_ON_OBJECT is returned if the object does not have a security descriptor. STATUS_INSUFFICIENT_RESOURCES is returned if memory pool allocation for the new security descriptor with new info set has failed.
Parameters
[in]SecurityDescriptorA security descriptor to be freed from memory.
Returns
Returns STATUS_SUCCESS.
Parameters
[in]_ParentDescriptorA security descriptor of the parent object that is being created.
[in]_ExplicitDescriptorAn explicit security descriptor that is applied to a new object.
[out]NewDescriptorThe new allocated security descriptor.
[in]ObjectTypeThe type of the new object.
[in]IsDirectoryObjectSet this to TRUE if the newly created object is a directory object, otherwise set this to FALSE.
[in]AutoInheritFlagsAutomatic inheritance flags that influence how access control entries within ACLs from security descriptors are inherited.
[in]SubjectContextSecurity subject context of the new object.
[in]GenericMappingGeneric mapping of access mask rights.
[in]PoolTypeThis parameter is unused.
Returns
Returns STATUS_SUCCESS if the operations have been completed successfully and that the security descriptor has been assigned to the new object. STATUS_NO_TOKEN is returned if the caller hasn't supplied a valid argument to a security subject context. STATUS_INVALID_OWNER is returned if the caller hasn't supplied a parent descriptor that belongs to the main user (owner). STATUS_INVALID_PRIMARY_GROUP is returned by the same reason as with the previous NTSTATUS code. The two NTSTATUS codes are returned if the calling thread stated that the owner and/or group is defaulted to the parent descriptor (SEF_DEFAULT_OWNER_FROM_PARENT and/or SEF_DEFAULT_GROUP_FROM_PARENT respectively). STATUS_INSUFFICIENT_RESOURCES is returned if memory pool allocation for the descriptor buffer has failed. A failure NTSTATUS is returned otherwise.
Parameters
[in]ParentDescriptorA security descriptor of the parent object that is being created.
[in]ExplicitDescriptorAn explicit security descriptor that is applied to a new object.
[out]NewDescriptorThe new allocated security descriptor.
[in]IsDirectoryObjectSet this to TRUE if the newly created object is a directory object, otherwise set this to FALSE.
[in]SubjectContextSecurity subject context of the new object.
[in]GenericMappingGeneric mapping of access mask rights.
[in]PoolTypeThis parameter is unused.
Returns
See SeAssignSecurityEx.
Parameters
[in]SecurityDescriptorA security descriptor.
[out]QuotaInfoSizeThe returned quota size of the given security descriptor to the caller. The function may return 0 to this parameter if the descriptor doesn't have a group or a discretionary access control list (DACL) even.
Returns
Returns STATUS_SUCCESS if the quota size of a security descriptor has been computed successfully. STATUS_UNKNOWN_REVISION is returned if the security descriptor has an invalid revision.

Definition at line 923 of file Messaging.c.

75{
76 PFLT_SERVER_PORT_OBJECT PortObject;
78
79 /* The caller must allow at least one connection */
80 if (MaxConnections == 0)
81 {
83 }
84
85 /* The request must be for a kernel handle */
86 if (!(ObjectAttributes->Attributes & OBJ_KERNEL_HANDLE))
87 {
89 }
90
91 /*
92 * Get rundown protection on the target to stop the owner
93 * from unloading whilst this port object is open. It gets
94 * removed in the FltpServerPortClose callback
95 */
97 if (!NT_SUCCESS(Status))
98 {
99 return Status;
100 }
101
102 /* Create the server port object for this filter */
107 NULL,
109 0,
110 0,
111 (PVOID *)&PortObject);
112 if (NT_SUCCESS(Status))
113 {
114 /* Zero out the struct */
115 RtlZeroMemory(PortObject, sizeof(FLT_SERVER_PORT_OBJECT));
116
117 /* Increment the ref count on the target filter */
119
120 /* Setup the filter port object */
121 PortObject->Filter = Filter;
125 PortObject->Cookie = ServerPortCookie;
126 PortObject->MaxConnections = MaxConnections;
127
128 /* Insert the object */
129 Status = ObInsertObject(PortObject,
130 NULL,
132 0,
133 NULL,
135 if (NT_SUCCESS(Status))
136 {
137 /* Lock the connection list */
139
140 /* Add the new port object to the connection list and increment the count */
143
144 /* Unlock the connection list*/
146 }
147 }
148
149 if (!NT_SUCCESS(Status))
150 {
151 /* Allow the filter to be cleaned up */
153 }
154
155 return Status;
156}
static const INTERNET_PORT ServerPort
Definition: CWebService.cpp:11
POBJECT_TYPE ServerPortObjectType
Definition: Messaging.c:24
VOID FLTAPI FltObjectDereference(_Inout_ PVOID Object)
Definition: Object.c:53
NTSTATUS FLTAPI FltObjectReference(_Inout_ PVOID Object)
Definition: Object.c:41
LONG NTSTATUS
Definition: precomp.h:26
IN PUNICODE_STRING IN POBJECT_ATTRIBUTES ObjectAttributes
Definition: conport.c:36
#define NT_SUCCESS(StatCode)
Definition: apphelp.c:33
#define InsertTailList(ListHead, Entry)
_Must_inspect_result_ _In_opt_ PFLT_FILTER Filter
Definition: fltkernel.h:1801
_Must_inspect_result_ _Outptr_ PFLT_PORT _In_ POBJECT_ATTRIBUTES _In_opt_ PVOID _In_ PFLT_CONNECT_NOTIFY _In_ PFLT_DISCONNECT_NOTIFY _In_opt_ PFLT_MESSAGE_NOTIFY MessageNotifyCallback
Definition: fltkernel.h:1877
_Must_inspect_result_ _Outptr_ PFLT_PORT _In_ POBJECT_ATTRIBUTES _In_opt_ PVOID _In_ PFLT_CONNECT_NOTIFY ConnectNotifyCallback
Definition: fltkernel.h:1875
_Must_inspect_result_ _Outptr_ PFLT_PORT _In_ POBJECT_ATTRIBUTES _In_opt_ PVOID ServerPortCookie
Definition: fltkernel.h:1874
_Must_inspect_result_ _Outptr_ PFLT_PORT _In_ POBJECT_ATTRIBUTES _In_opt_ PVOID _In_ PFLT_CONNECT_NOTIFY _In_ PFLT_DISCONNECT_NOTIFY DisconnectNotifyCallback
Definition: fltkernel.h:1876
ULONG FltpObjectPointerReference(_In_ PFLT_OBJECT Object)
Definition: Object.c:322
Status
Definition: gdiplustypes.h:24
VOID FASTCALL ExAcquireFastMutex(IN PFAST_MUTEX FastMutex)
Definition: fmutex.c:23
VOID FASTCALL ExReleaseFastMutex(IN PFAST_MUTEX FastMutex)
Definition: fmutex.c:31
static LONG MaxConnections
#define KernelMode
Definition: asm.h:38
#define FILE_READ_DATA
Definition: nt_native.h:628
#define STANDARD_RIGHTS_ALL
Definition: nt_native.h:69
PVOID *typedef PHANDLE
Definition: ntsecpkg.h:455
NTSTATUS NTAPI ObInsertObject(IN PVOID Object, IN PACCESS_STATE AccessState OPTIONAL, IN ACCESS_MASK DesiredAccess, IN ULONG ObjectPointerBias, OUT PVOID *NewObject OPTIONAL, OUT PHANDLE Handle)
Definition: obhandle.c:2962
NTSTATUS NTAPI ObCreateObject(IN KPROCESSOR_MODE ProbeMode OPTIONAL, IN POBJECT_TYPE Type, IN POBJECT_ATTRIBUTES ObjectAttributes OPTIONAL, IN KPROCESSOR_MODE AccessMode, IN OUT PVOID ParseContext OPTIONAL, IN ULONG ObjectSize, IN ULONG PagedPoolCharge OPTIONAL, IN ULONG NonPagedPoolCharge OPTIONAL, OUT PVOID *Object)
Definition: oblife.c:1049
#define OBJ_KERNEL_HANDLE
Definition: winternl.h:231
FLT_MUTEX_LIST_HEAD ConnectionList
Definition: fltmgrint.h:121
LIST_ENTRY mList
Definition: fltmgrint.h:56
FAST_MUTEX mLock
Definition: fltmgrint.h:55
PFLT_DISCONNECT_NOTIFY DisconnectNotify
Definition: fltmgrint.h:192
PFLT_MESSAGE_NOTIFY MessageNotify
Definition: fltmgrint.h:193
PFLT_CONNECT_NOTIFY ConnectNotify
Definition: fltmgrint.h:191
#define RtlZeroMemory(Destination, Length)
Definition: typedefs.h:262
#define STATUS_INVALID_PARAMETER
Definition: udferr_usr.h:135

◆ _Out_range_()

_Out_range_ ( 0  )

◆ _Out_writes_bytes_opt_()

◆ _Return_type_success_()

typedef _Return_type_success_ ( return >=  0)

◆ _When_()

_When_ ( )
pure virtual

◆ NtClose()

◆ NtCreateFile()

__kernel_entry NTSYSCALLAPI NTSTATUS NTAPI NtCreateFile ( _Out_ PHANDLE  FileHandle,
_In_ ACCESS_MASK  DesiredAccess,
_In_ POBJECT_ATTRIBUTES  ObjectAttributes,
_Out_ PIO_STATUS_BLOCK  IoStatusBlock,
_In_opt_ PLARGE_INTEGER  AllocationSize,
_In_ ULONG  FileAttributes,
_In_ ULONG  ShareAccess,
_In_ ULONG  CreateDisposition,
_In_ ULONG  CreateOptions,
_In_reads_bytes_opt_(EaLength) PVOID  EaBuffer,
_In_ ULONG  EaLength 
)

◆ NtDeviceIoControlFile()

__kernel_entry NTSYSCALLAPI NTSTATUS NTAPI NtDeviceIoControlFile ( _In_ HANDLE  FileHandle,
_In_opt_ HANDLE  Event,
_In_opt_ PIO_APC_ROUTINE  ApcRoutine,
_In_opt_ PVOID  ApcContext,
_Out_ PIO_STATUS_BLOCK  IoStatusBlock,
_In_ ULONG  IoControlCode,
_In_reads_bytes_opt_(InputBufferLength) PVOID  InputBuffer,
_In_ ULONG  InputBufferLength,
_Out_writes_bytes_opt_(OutputBufferLength) PVOID  OutputBuffer,
_In_ ULONG  OutputBufferLength 
)

◆ NtNotifyChangeMultipleKeys()

__kernel_entry NTSYSCALLAPI NTSTATUS NTAPI NtNotifyChangeMultipleKeys ( _In_ HANDLE  MasterKeyHandle,
_In_opt_ ULONG  Count,
_In_reads_opt_(Count) OBJECT_ATTRIBUTES  SubordinateObjects[],
_In_opt_ HANDLE  Event,
_In_opt_ PIO_APC_ROUTINE  ApcRoutine,
_In_opt_ PVOID  ApcContext,
_Out_ PIO_STATUS_BLOCK  IoStatusBlock,
_In_ ULONG  CompletionFilter,
_In_ BOOLEAN  WatchTree,
_Out_writes_bytes_opt_(BufferSize) PVOID  Buffer,
_In_ ULONG  BufferSize,
_In_ BOOLEAN  Asynchronous 
)

◆ NtOpenFile()

__kernel_entry NTSYSCALLAPI NTSTATUS NTAPI NtOpenFile ( _Out_ PHANDLE  FileHandle,
_In_ ACCESS_MASK  DesiredAccess,
_In_ POBJECT_ATTRIBUTES  ObjectAttributes,
_Out_ PIO_STATUS_BLOCK  IoStatusBlock,
_In_ ULONG  ShareAccess,
_In_ ULONG  OpenOptions 
)

◆ NtQueryInformationProcess()

__kernel_entry NTSYSCALLAPI NTSTATUS NTAPI NtQueryInformationProcess ( _In_ HANDLE  ProcessHandle,
_In_ PROCESSINFOCLASS  ProcessInformationClass,
_Out_writes_bytes_to_opt_(ProcessInformationLength, *ReturnLength) PVOID  ProcessInformation,
_In_ ULONG  ProcessInformationLength,
_Out_opt_ PULONG  ReturnLength 
)

Definition at line 211 of file query.c.

218{
222 ULONG Length = 0;
223
224 PAGED_CODE();
225
226 /* Validate the information class */
227 Status = DefaultQueryInfoBufferCheck(ProcessInformationClass,
231 ProcessInformation,
232 ProcessInformationLength,
234 NULL,
236 if (!NT_SUCCESS(Status))
237 {
238#if DBG
239 DPRINT1("NtQueryInformationProcess(ProcessInformationClass: %s): Class validation failed! (Status: 0x%lx)\n",
240 PspDumpProcessInfoClassName(ProcessInformationClass), Status);
241#endif
242 return Status;
243 }
244
245 if (((ProcessInformationClass == ProcessCookie) ||
246 (ProcessInformationClass == ProcessImageInformation)) &&
248 {
249 /*
250 * Retrieving the process cookie is only allowed for the calling process
251 * itself! XP only allows NtCurrentProcess() as process handles even if
252 * a real handle actually represents the current process.
253 */
255 }
256
257 /* Check the information class */
258 switch (ProcessInformationClass)
259 {
260 /* Basic process information */
262 {
263 PPROCESS_BASIC_INFORMATION ProcessBasicInfo = (PPROCESS_BASIC_INFORMATION)ProcessInformation;
264
265 if (ProcessInformationLength != sizeof(PROCESS_BASIC_INFORMATION))
266 {
268 break;
269 }
270
271 /* Set the return length */
273
274 /* Reference the process */
279 (PVOID*)&Process,
280 NULL);
281 if (!NT_SUCCESS(Status)) break;
282
283 /* Protect writes with SEH */
285 {
286 /* Write all the information from the EPROCESS/KPROCESS */
287 ProcessBasicInfo->ExitStatus = Process->ExitStatus;
288 ProcessBasicInfo->PebBaseAddress = Process->Peb;
289 ProcessBasicInfo->AffinityMask = Process->Pcb.Affinity;
290 ProcessBasicInfo->UniqueProcessId = (ULONG_PTR)Process->
291 UniqueProcessId;
292 ProcessBasicInfo->InheritedFromUniqueProcessId =
293 (ULONG_PTR)Process->InheritedFromUniqueProcessId;
294 ProcessBasicInfo->BasePriority = Process->Pcb.BasePriority;
295
296 }
298 {
299 /* Get exception code */
301 }
302 _SEH2_END;
303
304 /* Dereference the process */
306 break;
307 }
308
309 /* Process quota limits */
311 {
312 QUOTA_LIMITS_EX QuotaLimits;
313 BOOLEAN Extended;
314
315 if (ProcessInformationLength != sizeof(QUOTA_LIMITS) &&
316 ProcessInformationLength != sizeof(QUOTA_LIMITS_EX))
317 {
319 break;
320 }
321
322 /* Set the return length */
323 Length = ProcessInformationLength;
324 Extended = (Length == sizeof(QUOTA_LIMITS_EX));
325
326 /* Reference the process */
331 (PVOID*)&Process,
332 NULL);
333 if (!NT_SUCCESS(Status)) break;
334
335 /* Indicate success */
337
338 RtlZeroMemory(&QuotaLimits, sizeof(QuotaLimits));
339
340 /* Get max/min working set sizes */
341 QuotaLimits.MaximumWorkingSetSize =
342 Process->Vm.MaximumWorkingSetSize << PAGE_SHIFT;
343 QuotaLimits.MinimumWorkingSetSize =
344 Process->Vm.MinimumWorkingSetSize << PAGE_SHIFT;
345
346 /* Get default time limits */
347 QuotaLimits.TimeLimit.QuadPart = -1LL;
348
349 /* Is quota block a default one? */
350 if (Process->QuotaBlock == &PspDefaultQuotaBlock)
351 {
352 /* Get default pools and pagefile limits */
353 QuotaLimits.PagedPoolLimit = (SIZE_T)-1;
354 QuotaLimits.NonPagedPoolLimit = (SIZE_T)-1;
355 QuotaLimits.PagefileLimit = (SIZE_T)-1;
356 }
357 else
358 {
359 /* Get limits from non-default quota block */
360 QuotaLimits.PagedPoolLimit =
361 Process->QuotaBlock->QuotaEntry[PsPagedPool].Limit;
362 QuotaLimits.NonPagedPoolLimit =
363 Process->QuotaBlock->QuotaEntry[PsNonPagedPool].Limit;
364 QuotaLimits.PagefileLimit =
365 Process->QuotaBlock->QuotaEntry[PsPageFile].Limit;
366 }
367
368 /* Get additional information, if needed */
369 if (Extended)
370 {
371 QuotaLimits.Flags |= (Process->Vm.Flags.MaximumWorkingSetHard ?
373 QuotaLimits.Flags |= (Process->Vm.Flags.MinimumWorkingSetHard ?
375
376 /* FIXME: Get the correct information */
377 //QuotaLimits.WorkingSetLimit = (SIZE_T)-1; // Not used on Win2k3, it is set to 0
378 QuotaLimits.CpuRateLimit.RateData = 0;
379 }
380
381 /* Protect writes with SEH */
383 {
384 RtlCopyMemory(ProcessInformation, &QuotaLimits, Length);
385 }
387 {
388 /* Get exception code */
390 }
391 _SEH2_END;
392
393 /* Dereference the process */
395 break;
396 }
397
399 {
400 PIO_COUNTERS IoCounters = (PIO_COUNTERS)ProcessInformation;
401 PROCESS_VALUES ProcessValues;
402
403 if (ProcessInformationLength != sizeof(IO_COUNTERS))
404 {
406 break;
407 }
408
409 Length = sizeof(IO_COUNTERS);
410
411 /* Reference the process */
416 (PVOID*)&Process,
417 NULL);
418 if (!NT_SUCCESS(Status)) break;
419
420 /* Query IO counters from the process */
421 KeQueryValuesProcess(&Process->Pcb, &ProcessValues);
422
424 {
425 RtlCopyMemory(IoCounters, &ProcessValues.IoInfo, sizeof(IO_COUNTERS));
426 }
428 {
429 /* Ignore exception */
430 }
431 _SEH2_END;
432
433 /* Set status to success in any case */
435
436 /* Dereference the process */
438 break;
439 }
440
441 /* Timing */
442 case ProcessTimes:
443 {
444 PKERNEL_USER_TIMES ProcessTime = (PKERNEL_USER_TIMES)ProcessInformation;
445 ULONG UserTime, KernelTime;
446
447 /* Set the return length */
448 if (ProcessInformationLength != sizeof(KERNEL_USER_TIMES))
449 {
451 break;
452 }
453
454 Length = sizeof(KERNEL_USER_TIMES);
455
456 /* Reference the process */
461 (PVOID*)&Process,
462 NULL);
463 if (!NT_SUCCESS(Status)) break;
464
465 /* Protect writes with SEH */
467 {
468 /* Copy time information from EPROCESS/KPROCESS */
469 KernelTime = KeQueryRuntimeProcess(&Process->Pcb, &UserTime);
470 ProcessTime->CreateTime = Process->CreateTime;
472 ProcessTime->KernelTime.QuadPart = (LONGLONG)KernelTime * KeMaximumIncrement;
473 ProcessTime->ExitTime = Process->ExitTime;
474 }
476 {
477 /* Get exception code */
479 }
480 _SEH2_END;
481
482 /* Dereference the process */
484 break;
485 }
486
487 /* Process Debug Port */
488 case ProcessDebugPort:
489
490 if (ProcessInformationLength != sizeof(HANDLE))
491 {
493 break;
494 }
495
496 /* Set the return length */
497 Length = sizeof(HANDLE);
498
499 /* Reference the process */
504 (PVOID*)&Process,
505 NULL);
506 if (!NT_SUCCESS(Status)) break;
507
508 /* Protect write with SEH */
510 {
511 /* Return whether or not we have a debug port */
512 *(PHANDLE)ProcessInformation = (Process->DebugPort ?
513 (HANDLE)-1 : NULL);
514 }
516 {
517 /* Get exception code */
519 }
520 _SEH2_END;
521
522 /* Dereference the process */
524 break;
525
527 {
529
530 if (ProcessInformationLength != sizeof(ULONG))
531 {
533 break;
534 }
535
536 /* Set the return length*/
537 Length = sizeof(ULONG);
538
539 /* Reference the process */
544 (PVOID*)&Process,
545 NULL);
546 if (!NT_SUCCESS(Status)) break;
547
548 /* Count the number of handles this process has */
550
551 /* Protect write in SEH */
553 {
554 /* Return the count of handles */
555 *(PULONG)ProcessInformation = HandleCount;
556 }
558 {
559 /* Get the exception code */
561 }
562 _SEH2_END;
563
564 /* Dereference the process */
566 break;
567 }
568
569 /* Session ID for the process */
571 {
573
574 if (ProcessInformationLength != sizeof(PROCESS_SESSION_INFORMATION))
575 {
577 break;
578 }
579
580 /* Set the return length*/
582
583 /* Reference the process */
588 (PVOID*)&Process,
589 NULL);
590 if (!NT_SUCCESS(Status)) break;
591
592 /* Enter SEH for write safety */
594 {
595 /* Write back the Session ID */
597 }
599 {
600 /* Get the exception code */
602 }
603 _SEH2_END;
604
605 /* Dereference the process */
607 break;
608 }
609
610 /* Virtual Memory Statistics */
612 {
613 PVM_COUNTERS VmCounters = (PVM_COUNTERS)ProcessInformation;
614
615 /* Validate the input length */
616 if ((ProcessInformationLength != sizeof(VM_COUNTERS)) &&
617 (ProcessInformationLength != sizeof(VM_COUNTERS_EX)))
618 {
620 break;
621 }
622
623 /* Reference the process */
628 (PVOID*)&Process,
629 NULL);
630 if (!NT_SUCCESS(Status)) break;
631
632 /* Enter SEH for write safety */
634 {
635 /* Return data from EPROCESS */
636 VmCounters->PeakVirtualSize = Process->PeakVirtualSize;
637 VmCounters->VirtualSize = Process->VirtualSize;
638 VmCounters->PageFaultCount = Process->Vm.PageFaultCount;
639 VmCounters->PeakWorkingSetSize = Process->Vm.PeakWorkingSetSize;
640 VmCounters->WorkingSetSize = Process->Vm.WorkingSetSize;
641 VmCounters->QuotaPeakPagedPoolUsage = Process->QuotaPeak[PsPagedPool];
642 VmCounters->QuotaPagedPoolUsage = Process->QuotaUsage[PsPagedPool];
643 VmCounters->QuotaPeakNonPagedPoolUsage = Process->QuotaPeak[PsNonPagedPool];
644 VmCounters->QuotaNonPagedPoolUsage = Process->QuotaUsage[PsNonPagedPool];
645 VmCounters->PagefileUsage = Process->QuotaUsage[PsPageFile] << PAGE_SHIFT;
646 VmCounters->PeakPagefileUsage = Process->QuotaPeak[PsPageFile] << PAGE_SHIFT;
647 //VmCounters->PrivateUsage = Process->CommitCharge << PAGE_SHIFT;
648 //
649
650 /* Set the return length */
651 Length = ProcessInformationLength;
652 }
654 {
655 /* Get the exception code */
657 }
658 _SEH2_END;
659
660 /* Dereference the process */
662 break;
663 }
664
665 /* Hard Error Processing Mode */
667
668 if (ProcessInformationLength != sizeof(ULONG))
669 {
671 break;
672 }
673
674 /* Set the return length*/
675 Length = sizeof(ULONG);
676
677 /* Reference the process */
682 (PVOID*)&Process,
683 NULL);
684 if (!NT_SUCCESS(Status)) break;
685
686 /* Enter SEH for writing back data */
688 {
689 /* Write the current processing mode */
690 *(PULONG)ProcessInformation = Process->
691 DefaultHardErrorProcessing;
692 }
694 {
695 /* Get the exception code */
697 }
698 _SEH2_END;
699
700 /* Dereference the process */
702 break;
703
704 /* Priority Boosting status */
706
707 if (ProcessInformationLength != sizeof(ULONG))
708 {
710 break;
711 }
712
713 /* Set the return length */
714 Length = sizeof(ULONG);
715
716 /* Reference the process */
721 (PVOID*)&Process,
722 NULL);
723 if (!NT_SUCCESS(Status)) break;
724
725 /* Enter SEH for writing back data */
727 {
728 /* Return boost status */
729 *(PULONG)ProcessInformation = Process->Pcb.DisableBoost ?
730 TRUE : FALSE;
731 }
733 {
734 /* Get the exception code */
736 }
737 _SEH2_END;
738
739 /* Dereference the process */
741 break;
742
743 /* DOS Device Map */
744 case ProcessDeviceMap:
745 {
746 ULONG Flags;
747
748 if (ProcessInformationLength == sizeof(PROCESS_DEVICEMAP_INFORMATION_EX))
749 {
750 /* Protect read in SEH */
752 {
753 PPROCESS_DEVICEMAP_INFORMATION_EX DeviceMapEx = ProcessInformation;
754
755 Flags = DeviceMapEx->Flags;
756 }
758 {
759 /* Get the exception code */
761 _SEH2_YIELD(break);
762 }
763 _SEH2_END;
764
765 /* Only one flag is supported and it needs LUID mappings */
766 if ((Flags & ~PROCESS_LUID_DOSDEVICES_ONLY) != 0 ||
768 {
770 break;
771 }
772 }
773 else
774 {
775 /* This has to be the size of the Query union field for x64 compatibility! */
776 if (ProcessInformationLength != RTL_FIELD_SIZE(PROCESS_DEVICEMAP_INFORMATION, Query))
777 {
779 break;
780 }
781
782 /* No flags for standard call */
783 Flags = 0;
784 }
785
786 /* Set the return length */
787 Length = ProcessInformationLength;
788
789 /* Reference the process */
794 (PVOID*)&Process,
795 NULL);
796 if (!NT_SUCCESS(Status)) break;
797
798 /* Query the device map information */
800 ProcessInformation,
801 Flags);
802
803 /* Dereference the process */
805 break;
806 }
807
808 /* Priority class */
810 {
811 PPROCESS_PRIORITY_CLASS PsPriorityClass = (PPROCESS_PRIORITY_CLASS)ProcessInformation;
812
813 if (ProcessInformationLength != sizeof(PROCESS_PRIORITY_CLASS))
814 {
816 break;
817 }
818
819 /* Set the return length*/
821
822 /* Reference the process */
827 (PVOID*)&Process,
828 NULL);
829 if (!NT_SUCCESS(Status)) break;
830
831 /* Enter SEH for writing back data */
833 {
834 /* Return current priority class */
835 PsPriorityClass->PriorityClass = Process->PriorityClass;
836 PsPriorityClass->Foreground = FALSE;
837 }
839 {
840 /* Get the exception code */
842 }
843 _SEH2_END;
844
845 /* Dereference the process */
847 break;
848 }
849
851 {
852 PUNICODE_STRING ImageName;
853
854 /* Reference the process */
859 (PVOID*)&Process,
860 NULL);
861 if (!NT_SUCCESS(Status)) break;
862
863 /* Get the image path */
865 if (NT_SUCCESS(Status))
866 {
867 /* Set the return length */
868 Length = ImageName->MaximumLength +
870
871 /* Make sure it's large enough */
872 if (Length <= ProcessInformationLength)
873 {
874 /* Enter SEH to protect write */
876 {
877 /* Copy it */
878 RtlCopyMemory(ProcessInformation,
879 ImageName,
880 Length);
881
882 /* Update pointer */
883 ((PUNICODE_STRING)ProcessInformation)->Buffer =
884 (PWSTR)((PUNICODE_STRING)ProcessInformation + 1);
885 }
887 {
888 /* Get the exception code */
890 }
891 _SEH2_END;
892 }
893 else
894 {
895 /* Buffer too small */
897 }
898
899 /* Free the image path */
900 ExFreePoolWithTag(ImageName, TAG_SEPA);
901 }
902 /* Dereference the process */
904 break;
905 }
906
907#if (NTDDI_VERSION >= NTDDI_VISTA) || (DLL_EXPORT_VERSION >= _WIN32_WINNT_VISTA)
909 {
912
913 /* Reference the process */
915 // FIXME: Use PROCESS_QUERY_LIMITED_INFORMATION when implemented
919 (PVOID*)&Process,
920 NULL);
921 if (!NT_SUCCESS(Status))
922 {
923 break;
924 }
925
926 /* Get the image path */
929 if (!NT_SUCCESS(Status))
930 {
931 break;
932 }
935 if (!NT_SUCCESS(Status))
936 {
937 break;
938 }
939
940 /* Determine return length and output */
941 Length = sizeof(UNICODE_STRING) + ObjectNameInformation->Name.MaximumLength;
942 if (Length <= ProcessInformationLength)
943 {
945 {
946 PUNICODE_STRING ImageName = (PUNICODE_STRING)ProcessInformation;
947 ImageName->Length = ObjectNameInformation->Name.Length;
948 ImageName->MaximumLength = ObjectNameInformation->Name.MaximumLength;
949 if (ObjectNameInformation->Name.MaximumLength)
950 {
951 ImageName->Buffer = (PWSTR)(ImageName + 1);
952 RtlCopyMemory(ImageName->Buffer,
953 ObjectNameInformation->Name.Buffer,
954 ObjectNameInformation->Name.MaximumLength);
955 }
956 else
957 {
958 ASSERT(ImageName->Length == 0);
959 ImageName->Buffer = NULL;
960 }
961 }
963 {
965 }
966 _SEH2_END;
967 }
968 else
969 {
971 }
973
974 break;
975 }
976#endif /* (NTDDI_VERSION >= NTDDI_VISTA) || (DLL_EXPORT_VERSION >= _WIN32_WINNT_VISTA) */
977
979
980 if (ProcessInformationLength != sizeof(ULONG))
981 {
983 break;
984 }
985
986 /* Set the return length*/
987 Length = sizeof(ULONG);
988
989 /* Reference the process */
994 (PVOID*)&Process,
995 NULL);
996 if (!NT_SUCCESS(Status)) break;
997
998 /* Enter SEH for writing back data */
1000 {
1001 /* Return the debug flag state */
1002 *(PULONG)ProcessInformation = Process->NoDebugInherit ? 0 : 1;
1003 }
1005 {
1006 /* Get the exception code */
1008 }
1009 _SEH2_END;
1010
1011 /* Dereference the process */
1013 break;
1014
1016
1017 if (ProcessInformationLength != sizeof(ULONG))
1018 {
1020 break;
1021 }
1022
1023 /* Set the return length */
1024 Length = sizeof(ULONG);
1025
1026 /* Reference the process */
1031 (PVOID*)&Process,
1032 NULL);
1033 if (!NT_SUCCESS(Status)) break;
1034
1035 /* Enter SEH for writing back data */
1036 _SEH2_TRY
1037 {
1038 /* Return the BreakOnTermination state */
1039 *(PULONG)ProcessInformation = Process->BreakOnTermination;
1040 }
1042 {
1043 /* Get the exception code */
1045 }
1046 _SEH2_END;
1047
1048 /* Dereference the process */
1050 break;
1051
1052 /* Per-process security cookie */
1053 case ProcessCookie:
1054 {
1055 ULONG Cookie;
1056
1057 if (ProcessInformationLength != sizeof(ULONG))
1058 {
1059 /* Length size wrong, bail out */
1061 break;
1062 }
1063
1064 /* Get the current process and cookie */
1066 Cookie = Process->Cookie;
1067 if (!Cookie)
1068 {
1069 LARGE_INTEGER SystemTime;
1070 ULONG NewCookie;
1071 PKPRCB Prcb;
1072
1073 /* Generate a new cookie */
1074 KeQuerySystemTime(&SystemTime);
1075 Prcb = KeGetCurrentPrcb();
1076 NewCookie = Prcb->KeSystemCalls ^ Prcb->InterruptTime ^
1077 SystemTime.u.LowPart ^ SystemTime.u.HighPart;
1078
1079 /* Set the new cookie or return the current one */
1081 NewCookie,
1082 Cookie);
1083 if (!Cookie) Cookie = NewCookie;
1084
1085 /* Set the return length */
1086 Length = sizeof(ULONG);
1087 }
1088
1089 /* Indicate success */
1091
1092 /* Enter SEH to protect write */
1093 _SEH2_TRY
1094 {
1095 /* Write back the cookie */
1096 *(PULONG)ProcessInformation = Cookie;
1097 }
1099 {
1100 /* Get the exception code */
1102 }
1103 _SEH2_END;
1104 break;
1105 }
1106
1108
1109 if (ProcessInformationLength != sizeof(SECTION_IMAGE_INFORMATION))
1110 {
1111 /* Break out */
1113 break;
1114 }
1115
1116 /* Set the length required and validate it */
1118
1119 /* Indicate success */
1121
1122 /* Enter SEH to protect write */
1123 _SEH2_TRY
1124 {
1126 }
1128 {
1129 /* Get the exception code */
1131 }
1132 _SEH2_END;
1133 break;
1134
1136 {
1137 HANDLE DebugPort = NULL;
1138
1139 if (ProcessInformationLength != sizeof(HANDLE))
1140 {
1142 break;
1143 }
1144
1145 /* Set the return length */
1146 Length = sizeof(HANDLE);
1147
1148 /* Reference the process */
1153 (PVOID*)&Process,
1154 NULL);
1155 if (!NT_SUCCESS(Status)) break;
1156
1157 /* Get the debug port. Continue even if this fails. */
1159
1160 /* Let go of the process */
1162
1163 /* Protect write in SEH */
1164 _SEH2_TRY
1165 {
1166 /* Return debug port's handle */
1167 *(PHANDLE)ProcessInformation = DebugPort;
1168 }
1170 {
1171 if (DebugPort)
1172 ObCloseHandle(DebugPort, PreviousMode);
1173
1174 /* Get the exception code.
1175 * Note: This overwrites any previous failure status. */
1177 }
1178 _SEH2_END;
1179 break;
1180 }
1181
1183 DPRINT1("Handle tracing not implemented: %lu\n", ProcessInformationClass);
1185 break;
1186
1188
1189 if (ProcessInformationLength != sizeof(ULONG))
1190 {
1192 break;
1193 }
1194
1195 /* Set the return length */
1196 Length = sizeof(ULONG);
1197
1198 /* Indicate success */
1200
1201 /* Protect write in SEH */
1202 _SEH2_TRY
1203 {
1204 /* Query Ob */
1205 *(PULONG)ProcessInformation = ObIsLUIDDeviceMapsEnabled();
1206 }
1208 {
1209 /* Get the exception code */
1211 }
1212 _SEH2_END;
1213 break;
1214
1216
1217 if (ProcessInformationLength != sizeof(ULONG))
1218 {
1220 break;
1221 }
1222
1223 /* Set the return length */
1224 Length = sizeof(ULONG);
1225
1226 /* Reference the process */
1231 (PVOID*)&Process,
1232 NULL);
1233 if (!NT_SUCCESS(Status)) break;
1234
1235 /* Protect write in SEH */
1236 _SEH2_TRY
1237 {
1238 /* Return if the flag is set */
1239 *(PULONG)ProcessInformation = (ULONG)Process->VdmAllowed;
1240 }
1242 {
1243 /* Get the exception code */
1245 }
1246 _SEH2_END;
1247
1248 /* Dereference the process */
1250 break;
1251
1253 {
1254 ULONG_PTR Wow64 = 0;
1255
1256 if (ProcessInformationLength != sizeof(ULONG_PTR))
1257 {
1259 break;
1260 }
1261
1262 /* Set the return length */
1263 Length = sizeof(ULONG_PTR);
1264
1265 /* Reference the process */
1270 (PVOID*)&Process,
1271 NULL);
1272 if (!NT_SUCCESS(Status)) break;
1273
1274#if defined(_WIN64) && defined(BUILD_WOW64_ENABLED)
1275 /* Make sure the process isn't dying */
1276 if (ExAcquireRundownProtection(&Process->RundownProtect))
1277 {
1278 /* FIXME: A two-part hack: delay setting Process->Wow64Process,
1279 so 64-bit NTDLL can use IO to init stuff. */
1280 if (IS_WOW64_PROCESS_INITIALIZING(Process))
1281 {
1284 if (!Process->Wow64Process)
1285 {
1287
1289 Process->Wow64Process = UlongToPtr(1);
1290 }
1291 else
1292 {
1293 Process->Wow64Process->Wow64 = (PVOID)((ULONG_PTR)(Process->Peb) + ROUND_TO_PAGES(sizeof(PEB)));
1294 }
1295 }
1296
1297 /* Get the WOW64 process structure */
1298 if (Process->Wow64Process == NULL)
1299 {
1300 Wow64 = 0;
1301 }
1302 /* FIXME */
1303 else if (IS_WOW64_PROCESS_INITIALIZING(Process))
1304 {
1305 Wow64 = TRUE;
1306 }
1307 else
1308 {
1309 Wow64 = (ULONG_PTR)Process->Wow64Process->Wow64;
1310 }
1311
1312 /* Release the lock */
1313 ExReleaseRundownProtection(&Process->RundownProtect);
1314 }
1315#endif
1316
1317 /* Dereference the process */
1319
1320 /* Protect write with SEH */
1321 _SEH2_TRY
1322 {
1323 /* Return the Wow64 process information */
1324 *(PULONG_PTR)ProcessInformation = Wow64;
1325 }
1327 {
1328 /* Get exception code */
1330 }
1331 _SEH2_END;
1332 break;
1333 }
1334
1336 {
1337 ULONG ExecuteOptions = 0;
1338
1339 if (ProcessInformationLength != sizeof(ULONG))
1340 {
1342 break;
1343 }
1344
1345 /* Set the return length */
1346 Length = sizeof(ULONG);
1347
1349 {
1351 break;
1352 }
1353
1354 /* Get the options */
1355 Status = MmGetExecuteOptions(&ExecuteOptions);
1356 if (NT_SUCCESS(Status))
1357 {
1358 /* Protect write with SEH */
1359 _SEH2_TRY
1360 {
1361 /* Return them */
1362 *(PULONG)ProcessInformation = ExecuteOptions;
1363 }
1365 {
1366 /* Get exception code */
1368 }
1369 _SEH2_END;
1370 }
1371 break;
1372 }
1373
1375 DPRINT1("VDM/16-bit not implemented: %lu\n", ProcessInformationClass);
1377 break;
1378
1380 DPRINT1("WS Watch not implemented: %lu\n", ProcessInformationClass);
1382 break;
1383
1385 DPRINT1("Pool limits not implemented: %lu\n", ProcessInformationClass);
1387 break;
1388
1389 /* Not supported by Server 2003 */
1390 default:
1391#if DBG
1392 DPRINT1("Unsupported info class: %s\n", PspDumpProcessInfoClassName(ProcessInformationClass));
1393#endif
1395 }
1396
1397 /* Check if caller wants the return length and if there is one */
1398 if (ReturnLength != NULL && Length != 0)
1399 {
1400 /* Protect write with SEH */
1401 _SEH2_TRY
1402 {
1404 }
1406 {
1407 /* Get exception code.
1408 * Note: This overwrites any previous failure status. */
1410 }
1411 _SEH2_END;
1412 }
1413
1414 return Status;
1415}
#define PAGED_CODE()
@ ObjectNameInformation
Definition: DriverTester.h:55
_In_ PVOID _In_ ULONG _Out_ PVOID _In_ ULONG _Inout_ PULONG ReturnLength
_In_ PVOID _In_ ULONG _Out_ PVOID _In_ ULONG _Inout_ PULONG _In_ KPROCESSOR_MODE PreviousMode
#define RTL_NUMBER_OF(x)
Definition: RtlRegistry.c:12
unsigned char BOOLEAN
Definition: actypes.h:127
#define DPRINT1
Definition: precomp.h:8
BOOL Query(LPCTSTR *ServiceArgs, DWORD ArgCount, BOOL bExtended)
Definition: query.c:292
@ ProcessDebugPort
Definition: cicbase.cpp:64
@ ProcessBreakOnTermination
Definition: cicbase.cpp:67
@ ProcessBasicInformation
Definition: cicbase.cpp:63
@ ProcessWow64Information
Definition: cicbase.cpp:65
@ ProcessImageFileName
Definition: cicbase.cpp:66
#define STATUS_NOT_IMPLEMENTED
Definition: d3dkmdt.h:42
#define STATUS_NO_MEMORY
Definition: d3dkmdt.h:51
NTSTATUS NTAPI DbgkOpenProcessDebugPort(IN PEPROCESS Process, IN KPROCESSOR_MODE PreviousMode, OUT HANDLE *DebugHandle)
Definition: dbgkobj.c:1526
_In_ D3DDDI_VIDEO_PRESENT_TARGET_ID _In_ ULONG _In_ ULONG Flags
Definition: dispmprt.h:245
#define TRUE
Definition: types.h:120
#define FALSE
Definition: types.h:117
#define UlongToPtr(u)
Definition: config.h:106
#define ULONG_PTR
Definition: config.h:101
UNICODE_STRING * PUNICODE_STRING
Definition: env_spec_w32.h:373
#define ExAllocatePoolWithTag(hernya, size, tag)
Definition: env_spec_w32.h:350
#define PAGE_SHIFT
Definition: env_spec_w32.h:45
#define KeQuerySystemTime(t)
Definition: env_spec_w32.h:570
#define ExFreePool(addr)
Definition: env_spec_w32.h:352
struct _UNICODE_STRING UNICODE_STRING
#define NonPagedPool
Definition: env_spec_w32.h:307
#define ExReleaseRundownProtection
Definition: ex.h:139
#define ExGetPreviousMode
Definition: ex.h:143
#define ExAcquireRundownProtection
Definition: ex.h:138
_Must_inspect_result_ _In_ PLARGE_INTEGER _In_ PLARGE_INTEGER _In_ ULONG _In_ PFILE_OBJECT _In_ PVOID Process
Definition: fsrtlfuncs.h:223
#define ICIF_PROBE_READ
Definition: icif.h:25
struct _PROCESS_PRIORITY_CLASS PROCESS_PRIORITY_CLASS
#define PROCESS_QUERY_INFORMATION
Definition: pstypes.h:162
struct _PROCESS_PRIORITY_CLASS * PPROCESS_PRIORITY_CLASS
@ PsNonPagedPool
Definition: pstypes.h:1214
@ PsPageFile
Definition: pstypes.h:1216
@ PsPagedPool
Definition: pstypes.h:1215
#define EXCEPTION_EXECUTE_HANDLER
Definition: excpt.h:90
#define QUOTA_LIMITS_HARDWS_MIN_DISABLE
#define PROCESS_LUID_DOSDEVICES_ONLY
Definition: pstypes.h:228
struct _IO_COUNTERS IO_COUNTERS
struct _PROCESS_SESSION_INFORMATION PROCESS_SESSION_INFORMATION
struct _PROCESS_SESSION_INFORMATION * PPROCESS_SESSION_INFORMATION
#define QUOTA_LIMITS_HARDWS_MAX_DISABLE
struct _QUOTA_LIMITS_EX QUOTA_LIMITS_EX
#define QUOTA_LIMITS_HARDWS_MAX_ENABLE
#define QUOTA_LIMITS_HARDWS_MIN_ENABLE
struct _IO_COUNTERS * PIO_COUNTERS
#define InterlockedCompareExchange
Definition: interlocked.h:119
#define RTL_FIELD_SIZE(type, field)
Definition: kdb_expr.c:86
if(dx< 0)
Definition: linetemp.h:194
#define ASSERT(a)
Definition: mode.c:44
#define ExFreePoolWithTag(_P, _T)
Definition: module.h:1109
FORCEINLINE struct _KPRCB * KeGetCurrentPrcb(VOID)
Definition: ketypes.h:1197
_In_ HANDLE ProcessHandle
Definition: mmfuncs.h:407
struct _SECTION_IMAGE_INFORMATION SECTION_IMAGE_INFORMATION
#define NtCurrentProcess()
Definition: nt_native.h:1660
struct _OBJECT_NAME_INFORMATION OBJECT_NAME_INFORMATION
ULONG NTAPI KeQueryRuntimeProcess(IN PKPROCESS Process, OUT PULONG UserTime)
Definition: procobj.c:860
VOID NTAPI KeQueryValuesProcess(IN PKPROCESS Process, PPROCESS_VALUES Values)
Definition: procobj.c:525
VOID NTAPI MmGetImageInformation(OUT PSECTION_IMAGE_INFORMATION ImageInformation)
Definition: section.c:1630
NTSTATUS NTAPI MmGetExecuteOptions(IN PULONG ExecuteOptions)
Definition: pagfault.c:2674
static __inline NTSTATUS DefaultQueryInfoBufferCheck(_In_ ULONG Class, _In_ const INFORMATION_CLASS_INFO *ClassList, _In_ ULONG ClassListEntries, _In_ ULONG Flags, _In_opt_ PVOID Buffer, _In_ ULONG BufferLength, _In_opt_ PULONG ReturnLength, _In_opt_ PULONG_PTR ReturnLengthPtr, _In_ KPROCESSOR_MODE PreviousMode)
Probe helper that validates the provided parameters whenever a NtQuery*** system call is invoked from...
Definition: probe.h:219
NTSTATUS NTAPI IoQueryFileDosDeviceName(IN PFILE_OBJECT FileObject, OUT POBJECT_NAME_INFORMATION *ObjectNameInformation)
Definition: file.c:3662
ULONG KeMaximumIncrement
Definition: clock.c:20
POBJECT_TYPE PsProcessType
Definition: process.c:20
ULONG NTAPI PsGetProcessSessionId(IN PEPROCESS Process)
Definition: process.c:1203
NTSTATUS NTAPI PsReferenceProcessFilePointer(_In_ PEPROCESS Process, _Outptr_ PFILE_OBJECT *FileObject)
Definition: query.c:24
NTSTATUS NTAPI SeLocateProcessImageName(_In_ PEPROCESS Process, _Out_ PUNICODE_STRING *ProcessImageName)
Finds the process image name of a specific process.
Definition: audit.c:199
#define STATUS_INVALID_INFO_CLASS
Definition: ntstatus.h:333
ULONG NTAPI ObGetProcessHandleCount(IN PEPROCESS Process)
Definition: obhandle.c:56
ULONG NTAPI ObIsLUIDDeviceMapsEnabled(VOID)
Definition: devicemap.c:662
NTSTATUS NTAPI ObQueryDeviceMapInformation(_In_opt_ PEPROCESS Process, _Out_ PPROCESS_DEVICEMAP_INFORMATION DeviceMapInfo, _In_ ULONG Flags)
Definition: devicemap.c:539
NTSTATUS NTAPI ObCloseHandle(IN HANDLE Handle, IN KPROCESSOR_MODE AccessMode)
Definition: obhandle.c:3411
NTSTATUS NTAPI ObReferenceObjectByHandle(IN HANDLE Handle, IN ACCESS_MASK DesiredAccess, IN POBJECT_TYPE ObjectType, IN KPROCESSOR_MODE AccessMode, OUT PVOID *Object, OUT POBJECT_HANDLE_INFORMATION HandleInformation OPTIONAL)
Definition: obref.c:493
long LONG
Definition: pedump.c:60
EPROCESS_QUOTA_BLOCK PspDefaultQuotaBlock
Definition: quota.c:16
static const INFORMATION_CLASS_INFO PsProcessInfoClass[]
Definition: ps_i.h:15
struct _PROCESS_BASIC_INFORMATION * PPROCESS_BASIC_INFORMATION
struct _PROCESS_BASIC_INFORMATION PROCESS_BASIC_INFORMATION
#define _SEH2_GetExceptionCode()
Definition: pseh2_64.h:204
#define _SEH2_EXCEPT(...)
Definition: pseh2_64.h:104
#define _SEH2_END
Definition: pseh2_64.h:194
#define _SEH2_TRY
Definition: pseh2_64.h:93
#define _SEH2_YIELD(__stmt)
Definition: pseh2_64.h:207
NTSTATUS NTAPI PsChargeProcessNonPagedPoolQuota(_In_ PEPROCESS Process, _In_ SIZE_T Amount)
Charges the non paged pool quota of a given process.
Definition: quota.c:811
VOID NTAPI PsReturnProcessNonPagedPoolQuota(_In_ PEPROCESS Process, _In_ SIZE_T Amount)
Returns the non paged quota pool that the process was taking up.
Definition: quota.c:938
#define STATUS_SUCCESS
Definition: shellext.h:65
LARGE_INTEGER UserTime
Definition: winternl.h:2377
LARGE_INTEGER CreateTime
Definition: winternl.h:2374
LARGE_INTEGER KernelTime
Definition: winternl.h:2376
LARGE_INTEGER ExitTime
Definition: winternl.h:2375
ULONG InterruptTime
Definition: ketypes.h:840
ULONG KeSystemCalls
Definition: ketypes.h:751
ULONG_PTR InheritedFromUniqueProcessId
Definition: pstypes.h:362
IO_COUNTERS IoInfo
Definition: ke.h:48
SIZE_T MaximumWorkingSetSize
Definition: pstypes.h:71
SIZE_T PagedPoolLimit
Definition: pstypes.h:68
SIZE_T PagefileLimit
Definition: pstypes.h:72
LARGE_INTEGER TimeLimit
Definition: pstypes.h:73
RATE_QUOTA_LIMIT CpuRateLimit
Definition: pstypes.h:79
SIZE_T NonPagedPoolLimit
Definition: pstypes.h:69
SIZE_T MinimumWorkingSetSize
Definition: pstypes.h:70
USHORT MaximumLength
Definition: env_spec_w32.h:370
SIZE_T PeakWorkingSetSize
Definition: winternl.h:3134
SIZE_T PeakPagefileUsage
Definition: winternl.h:3141
ULONG PageFaultCount
Definition: winternl.h:3133
SIZE_T QuotaPagedPoolUsage
Definition: winternl.h:3137
SIZE_T QuotaPeakPagedPoolUsage
Definition: winternl.h:3136
SIZE_T QuotaPeakNonPagedPoolUsage
Definition: winternl.h:3138
SIZE_T PeakVirtualSize
Definition: winternl.h:3131
SIZE_T VirtualSize
Definition: winternl.h:3132
SIZE_T QuotaNonPagedPoolUsage
Definition: winternl.h:3139
SIZE_T WorkingSetSize
Definition: winternl.h:3135
SIZE_T PagefileUsage
Definition: winternl.h:3140
#define TAG_SEPA
Definition: tag.h:164
#define TAG_PS_WOW64
Definition: tag.h:147
uint16_t * PWSTR
Definition: typedefs.h:56
uint32_t * PULONG_PTR
Definition: typedefs.h:65
uint32_t * PULONG
Definition: typedefs.h:59
int64_t LONGLONG
Definition: typedefs.h:68
void * PVOID
Definition: typedefs.h:50
PVOID HANDLE
Definition: typedefs.h:73
ULONG_PTR SIZE_T
Definition: typedefs.h:80
#define RtlCopyMemory(Destination, Source, Length)
Definition: typedefs.h:263
uint32_t ULONG_PTR
Definition: typedefs.h:65
uint32_t ULONG
Definition: typedefs.h:59
#define STATUS_INFO_LENGTH_MISMATCH
Definition: udferr_usr.h:133
static ULONG HandleCount
Definition: uefidisk.c:67
LONGLONG QuadPart
Definition: typedefs.h:114
struct _LARGE_INTEGER::@2753 u
ULONG RateData
Definition: pstypes.h:60
_In_ WDFREQUEST _In_ WDFFILEOBJECT FileObject
Definition: wdfdevice.h:550
struct _KERNEL_USER_TIMES KERNEL_USER_TIMES
struct _KERNEL_USER_TIMES * PKERNEL_USER_TIMES
@ ProcessLUIDDeviceMapsEnabled
Definition: winternl.h:1910
@ ProcessWx86Information
Definition: winternl.h:1901
@ ProcessDebugFlags
Definition: winternl.h:1913
@ ProcessSessionInformation
Definition: winternl.h:1906
@ ProcessVmCounters
Definition: winternl.h:1885
@ ProcessPriorityClass
Definition: winternl.h:1900
@ ProcessPriorityBoost
Definition: winternl.h:1904
@ ProcessImageInformation
Definition: winternl.h:1919
@ ProcessExecuteFlags
Definition: winternl.h:1916
@ ProcessCookie
Definition: winternl.h:1918
@ ProcessPooledUsageAndLimits
Definition: winternl.h:1896
@ ProcessIoCounters
Definition: winternl.h:1884
@ ProcessImageFileNameWin32
Definition: winternl.h:1925
@ ProcessDefaultHardErrorMode
Definition: winternl.h:1894
@ ProcessDeviceMap
Definition: winternl.h:1905
@ ProcessQuotaLimits
Definition: winternl.h:1883
@ ProcessHandleTracing
Definition: winternl.h:1914
@ ProcessTimes
Definition: winternl.h:1886
@ ProcessDebugObjectHandle
Definition: winternl.h:1912
@ ProcessWorkingSetWatch
Definition: winternl.h:1897
@ ProcessLdtInformation
Definition: winternl.h:1892
@ ProcessHandleCount
Definition: winternl.h:1902
struct _VM_COUNTERS * PVM_COUNTERS
struct _VM_COUNTERS_EX VM_COUNTERS_EX
_In_opt_ PVOID _Out_ PLARGE_INTEGER Cookie
Definition: cmfuncs.h:14
* PFILE_OBJECT
Definition: iotypes.h:1998
_Out_ PULONG UserTime
Definition: kefuncs.h:759
CCHAR KPROCESSOR_MODE
Definition: ketypes.h:7
#define ROUND_TO_PAGES(Size)
#define ObDereferenceObject
Definition: obfuncs.h:203
#define PsGetCurrentProcess
Definition: psfuncs.h:17

◆ NtQueryInformationThread()

__kernel_entry NTSYSCALLAPI NTSTATUS NTAPI NtQueryInformationThread ( _In_ HANDLE  ThreadHandle,
_In_ THREADINFOCLASS  ThreadInformationClass,
_Out_writes_bytes_to_opt_(ThreadInformationLength, *ReturnLength) PVOID  ThreadInformation,
_In_ ULONG  ThreadInformationLength,
_Out_opt_ PULONG  ReturnLength 
)

Definition at line 3017 of file query.c.

3024{
3029 ULONG Length = 0;
3030
3031 PAGED_CODE();
3032
3033 /* Validate the information class */
3038 ThreadInformation,
3041 NULL,
3042 PreviousMode);
3043 if (!NT_SUCCESS(Status))
3044 {
3045#if DBG
3046 DPRINT1("NtQueryInformationThread(ThreadInformationClass: %s): Class validation failed! (Status: 0x%lx)\n",
3047 PspDumpThreadInfoClassName(ThreadInformationClass), Status);
3048#endif
3049 return Status;
3050 }
3051
3052 /* Check what kind of information class this is */
3053 switch (ThreadInformationClass)
3054 {
3055 /* Basic thread information */
3057 {
3058 PTHREAD_BASIC_INFORMATION ThreadBasicInfo =
3059 (PTHREAD_BASIC_INFORMATION)ThreadInformation;
3060
3061 /* Set the return length */
3063
3065 {
3067 break;
3068 }
3069
3070 /* Reference the thread */
3071 Status = ObReferenceObjectByHandle(ThreadHandle,
3075 (PVOID*)&Thread,
3076 NULL);
3077 if (!NT_SUCCESS(Status))
3078 break;
3079
3080 /* Protect writes with SEH */
3081 _SEH2_TRY
3082 {
3083 /* Write all the information from the ETHREAD/KTHREAD */
3084 ThreadBasicInfo->ExitStatus = Thread->ExitStatus;
3085 ThreadBasicInfo->TebBaseAddress = (PVOID)Thread->Tcb.Teb;
3086 ThreadBasicInfo->ClientId = Thread->Cid;
3087 ThreadBasicInfo->AffinityMask = Thread->Tcb.Affinity;
3088 ThreadBasicInfo->Priority = Thread->Tcb.Priority;
3089 ThreadBasicInfo->BasePriority = KeQueryBasePriorityThread(&Thread->Tcb);
3090 }
3092 {
3093 /* Get exception code */
3095 }
3096 _SEH2_END;
3097
3098 /* Dereference the thread */
3100 break;
3101 }
3102
3103 /* Thread time information */
3104 case ThreadTimes:
3105 {
3106 PKERNEL_USER_TIMES ThreadTime = (PKERNEL_USER_TIMES)ThreadInformation;
3107
3108 /* Set the return length */
3109 Length = sizeof(KERNEL_USER_TIMES);
3110
3112 {
3114 break;
3115 }
3116
3117 /* Reference the thread */
3118 Status = ObReferenceObjectByHandle(ThreadHandle,
3122 (PVOID*)&Thread,
3123 NULL);
3124 if (!NT_SUCCESS(Status))
3125 break;
3126
3127 /* Protect writes with SEH */
3128 _SEH2_TRY
3129 {
3130 /* Copy time information from ETHREAD/KTHREAD */
3133 ThreadTime->CreateTime = Thread->CreateTime;
3134
3135 /* Exit time is in a union and only valid on actual exit! */
3137 {
3138 ThreadTime->ExitTime = Thread->ExitTime;
3139 }
3140 else
3141 {
3142 ThreadTime->ExitTime.QuadPart = 0;
3143 }
3144 }
3146 {
3147 /* Get exception code */
3149 }
3150 _SEH2_END;
3151
3152 /* Dereference the thread */
3154 break;
3155 }
3156
3158 {
3159 /* Set the return length*/
3160 Length = sizeof(PVOID);
3161
3163 {
3165 break;
3166 }
3167
3168 /* Reference the thread */
3169 Status = ObReferenceObjectByHandle(ThreadHandle,
3173 (PVOID*)&Thread,
3174 NULL);
3175 if (!NT_SUCCESS(Status))
3176 break;
3177
3178 /* Protect write with SEH */
3179 _SEH2_TRY
3180 {
3181 /* Return the Win32 Start Address */
3182 *(PVOID*)ThreadInformation = Thread->Win32StartAddress;
3183 }
3185 {
3186 /* Get exception code */
3188 }
3189 _SEH2_END;
3190
3191 /* Dereference the thread */
3193 break;
3194 }
3195
3197 {
3198 /* Set the return length*/
3199 Length = sizeof(LARGE_INTEGER);
3200
3202 {
3204 break;
3205 }
3206
3207 /* Reference the thread */
3208 Status = ObReferenceObjectByHandle(ThreadHandle,
3212 (PVOID*)&Thread,
3213 NULL);
3214 if (!NT_SUCCESS(Status))
3215 break;
3216
3217 /* Protect write with SEH */
3218 _SEH2_TRY
3219 {
3220 /* FIXME */
3221 (*(PLARGE_INTEGER)ThreadInformation).QuadPart = 0;
3222 }
3224 {
3225 /* Get exception code */
3227 }
3228 _SEH2_END;
3229
3230 /* Dereference the thread */
3232 break;
3233 }
3234
3236 {
3237 /* Set the return length*/
3238 Length = sizeof(ULONG);
3239
3241 {
3243 break;
3244 }
3245
3246 /* This info class always refers to the current thread! */
3249
3250 /* Protect write with SEH */
3251 _SEH2_TRY
3252 {
3253 /* Return whether or not we are the last thread */
3254 *(PULONG)ThreadInformation = Process->ActiveThreads == 1;
3255 }
3257 {
3258 /* Get exception code */
3260 }
3261 _SEH2_END;
3262
3263 break;
3264 }
3265
3266 case ThreadIsIoPending:
3267 {
3268 KIRQL OldIrql;
3269
3270 /* Set the return length*/
3271 Length = sizeof(ULONG);
3272
3274 {
3276 break;
3277 }
3278
3279 /* Reference the thread */
3280 Status = ObReferenceObjectByHandle(ThreadHandle,
3284 (PVOID*)&Thread,
3285 NULL);
3286 if (!NT_SUCCESS(Status))
3287 break;
3288
3289 /* Raise the IRQL to protect the IRP list */
3291
3292 /* Protect write with SEH */
3293 _SEH2_TRY
3294 {
3295 /* Check if the IRP list is empty or not */
3296 *(PULONG)ThreadInformation = !IsListEmpty(&Thread->IrpList);
3297 }
3299 {
3300 /* Get exception code */
3302 }
3303 _SEH2_END;
3304
3305 /* Lower IRQL back */
3307
3308 /* Dereference the thread */
3310 break;
3311 }
3312
3313 /* LDT and GDT information */
3315 {
3316#if defined(_X86_)
3317 /* Reference the thread */
3318 Status = ObReferenceObjectByHandle(ThreadHandle,
3322 (PVOID*)&Thread,
3323 NULL);
3324 if (!NT_SUCCESS(Status))
3325 break;
3326
3327 /* Call the worker routine */
3329 ThreadInformation,
3331 ReturnLength);
3332
3333 /* Dereference the thread */
3335#else
3336 /* Only implemented on x86 */
3338#endif
3339 break;
3340 }
3341
3343 {
3344 /* Set the return length*/
3345 Length = sizeof(ULONG);
3346
3348 {
3350 break;
3351 }
3352
3353 /* Reference the thread */
3354 Status = ObReferenceObjectByHandle(ThreadHandle,
3358 (PVOID*)&Thread,
3359 NULL);
3360 if (!NT_SUCCESS(Status))
3361 break;
3362
3363 _SEH2_TRY
3364 {
3365 *(PULONG)ThreadInformation = Thread->Tcb.DisableBoost ? 1 : 0;
3366 }
3368 {
3370 }
3371 _SEH2_END;
3372
3373 /* Dereference the thread */
3375 break;
3376 }
3377
3378#if (NTDDI_VERSION >= NTDDI_VISTA) || defined(__REACTOS__)
3380 {
3381 /* Set the return length */
3382 Length = sizeof(BOOLEAN);
3383
3385 {
3387 break;
3388 }
3389
3390 /* Reference the thread */
3391 Status = ObReferenceObjectByHandle(ThreadHandle,
3395 (PVOID*)&Thread,
3396 NULL);
3397 if (!NT_SUCCESS(Status))
3398 break;
3399
3400 /* Protect write with SEH */
3401 _SEH2_TRY
3402 {
3403 *(PBOOLEAN)ThreadInformation = Thread->HideFromDebugger;
3404 }
3406 {
3407 /* Get exception code */
3409 }
3410 _SEH2_END;
3411
3412 /* Dereference the thread */
3414 break;
3415 }
3416#endif /* (NTDDI_VERSION >= NTDDI_VISTA) */
3417
3419 {
3420 /* Set the return length */
3421 Length = sizeof(ULONG);
3422
3424 {
3426 break;
3427 }
3428
3429 /* Reference the thread */
3430 Status = ObReferenceObjectByHandle(ThreadHandle,
3434 (PVOID*)&Thread,
3435 NULL);
3436 if (!NT_SUCCESS(Status))
3437 break;
3438
3439 _SEH2_TRY
3440 {
3441 *(PULONG)ThreadInformation = Thread->BreakOnTermination;
3442 }
3444 {
3446 }
3447 _SEH2_END;
3448
3449 /* Dereference the thread */
3451 break;
3452 }
3453
3454 case ThreadIsTerminated:
3455 {
3456 ULONG ThreadTerminated;
3457
3458 /* Set the return length*/
3459 Length = sizeof(ThreadTerminated);
3460
3462 {
3464 break;
3465 }
3466
3467 /* Reference the thread */
3468 Status = ObReferenceObjectByHandle(ThreadHandle,
3472 (PVOID*)&Thread,
3473 NULL);
3474 if (!NT_SUCCESS(Status))
3475 break;
3476
3477 ThreadTerminated = PsIsThreadTerminating(Thread);
3478
3479 _SEH2_TRY
3480 {
3481 *(PULONG)ThreadInformation = ThreadTerminated ? 1 : 0;
3482 }
3484 {
3486 }
3487 _SEH2_END;
3488
3489 /* Dereference the thread */
3491 break;
3492 }
3493
3494#if (NTDDI_VERSION >= NTDDI_WIN10_RS1) || defined(__REACTOS__)
3496 {
3497 PUNICODE_STRING ThreadName;
3498
3499 /* Reference the thread */
3500 Status = ObReferenceObjectByHandle(ThreadHandle,
3504 (PVOID*)&Thread,
3505 NULL);
3506 if (!NT_SUCCESS(Status))
3507 break;
3508
3510
3511 ThreadName = Thread->ThreadName;
3512
3513 /* Set the return length (REMARK: We only
3514 * consider Length instead of MaximumLength) */
3515 Length = sizeof(UNICODE_STRING);
3516 Length += (ThreadName ? ThreadName->Length : 0);
3518 {
3522 /* As on Windows, and *not* STATUS_INFO_LENGTH_MISMATCH */
3523 break;
3524 }
3525
3526 /* Protect writes with SEH */
3527 _SEH2_TRY
3528 {
3529 PTHREAD_NAME_INFORMATION NameInfo =
3530 (PTHREAD_NAME_INFORMATION)ThreadInformation;
3531 if (ThreadName && (ThreadName->Length > 0))
3532 {
3533 NameInfo->ThreadName.Length =
3534 NameInfo->ThreadName.MaximumLength = ThreadName->Length;
3535 NameInfo->ThreadName.Buffer = (PWCH)(&NameInfo->ThreadName + 1);
3537 ThreadName->Buffer,
3538 ThreadName->Length);
3539 }
3540 else
3541 {
3542 RtlInitEmptyUnicodeString(&NameInfo->ThreadName, NULL, 0);
3543 }
3544 }
3546 {
3547 /* Get exception code */
3549 }
3550 _SEH2_END;
3551
3553
3554 /* Dereference the thread */
3556 break;
3557 }
3558#endif /* (NTDDI_VERSION >= NTDDI_WIN10_RS1) || defined(__REACTOS__) */
3559
3560 /* Anything else */
3561 default:
3562 /* Not yet implemented */
3563#if DBG
3564 DPRINT1("Not implemented: %s\n", PspDumpThreadInfoClassName(ThreadInformationClass));
3565#endif
3567 }
3568
3569 /* Protect write with SEH */
3570 _SEH2_TRY
3571 {
3572 /* Check if caller wanted return length */
3574 }
3576 {
3577 /* Get exception code */
3579 }
3580 _SEH2_END;
3581
3582 return Status;
3583}
PEPROCESS __stdcall PsGetThreadProcess(_In_ PETHREAD Thread)
struct _THREAD_BASIC_INFORMATION THREAD_BASIC_INFORMATION
@ ThreadDescriptorTableEntry
Definition: compat.h:941
@ ThreadAmILastThread
Definition: compat.h:947
@ ThreadTimes
Definition: compat.h:936
@ ThreadQuerySetWin32StartAddress
Definition: compat.h:944
@ ThreadIsTerminated
Definition: compat.h:955
@ ThreadBreakOnTermination
Definition: compat.h:953
@ ThreadBasicInformation
Definition: compat.h:935
@ ThreadPriorityBoost
Definition: compat.h:949
@ ThreadPerformanceCount
Definition: compat.h:946
@ ThreadIsIoPending
Definition: compat.h:951
@ ThreadHideFromDebugger
Definition: compat.h:952
struct _THREAD_BASIC_INFORMATION * PTHREAD_BASIC_INFORMATION
#define IsListEmpty(ListHead)
Definition: env_spec_w32.h:954
UCHAR KIRQL
Definition: env_spec_w32.h:591
#define PsGetCurrentThread()
Definition: env_spec_w32.h:81
#define KeRaiseIrql(irql, oldIrql)
Definition: env_spec_w32.h:597
#define APC_LEVEL
Definition: env_spec_w32.h:695
#define KeLowerIrql(oldIrql)
Definition: env_spec_w32.h:602
_In_opt_ PFILE_OBJECT _In_opt_ PETHREAD Thread
Definition: fltkernel.h:2653
#define THREAD_QUERY_INFORMATION
Definition: pstypes.h:145
struct _THREAD_NAME_INFORMATION * PTHREAD_NAME_INFORMATION
#define THREAD_QUERY_LIMITED_INFORMATION
Definition: security.c:76
_In_ THREADINFOCLASS _In_ ULONG ThreadInformationLength
Definition: psfuncs.h:889
_In_ THREADINFOCLASS ThreadInformationClass
Definition: psfuncs.h:886
WCHAR * PWCH
Definition: ntbasedef.h:422
LONG NTAPI KeQueryBasePriorityThread(IN PKTHREAD Thread)
Definition: thrdobj.c:52
BOOLEAN NTAPI KeReadStateThread(IN PKTHREAD Thread)
Definition: thrdobj.c:42
POBJECT_TYPE PsThreadType
Definition: thread.c:20
BOOLEAN NTAPI PsIsThreadTerminating(IN PETHREAD Thread)
Definition: thread.c:892
#define BOOLEAN
Definition: pedump.c:73
static const INFORMATION_CLASS_INFO PsThreadInfoClass[]
Definition: ps_i.h:362
FORCEINLINE VOID PspUnlockThreadSecurityShared(IN PETHREAD Thread)
Definition: ps_x.h:166
FORCEINLINE VOID PspLockThreadSecurityShared(IN PETHREAD Thread)
Definition: ps_x.h:155
NTSTATUS NTAPI PspQueryDescriptorThread(IN PETHREAD Thread, IN PVOID ThreadInformation, IN ULONG ThreadInformationLength, OUT PULONG ReturnLength OPTIONAL)
Definition: psldt.c:43
#define STATUS_BUFFER_TOO_SMALL
Definition: shellext.h:69
LARGE_INTEGER ExitTime
Definition: pstypes.h:1300
NTSTATUS ExitStatus
Definition: pstypes.h:1306
KTHREAD Tcb
Definition: pstypes.h:1296
PVOID Win32StartAddress
Definition: pstypes.h:1345
CLIENT_ID Cid
Definition: pstypes.h:1321
LIST_ENTRY IrpList
Definition: pstypes.h:1337
PUNICODE_STRING ThreadName
Definition: pstypes.h:1450
LARGE_INTEGER CreateTime
Definition: pstypes.h:1297
ULONG BreakOnTermination
Definition: pstypes.h:1377
ULONG HideFromDebugger
Definition: pstypes.h:1373
GROUP_AFFINITY Affinity
Definition: ketypes.h:2085
ULONG DisableBoost
Definition: ketypes.h:1872
SCHAR Priority
Definition: ketypes.h:1929
PVOID Teb
Definition: ketypes.h:1954
ULONG KernelTime
Definition: ketypes.h:2134
ULONG UserTime
Definition: ketypes.h:2150
KPRIORITY BasePriority
Definition: compat.h:932
KAFFINITY AffinityMask
Definition: compat.h:930
UNICODE_STRING ThreadName
Definition: pstypes.h:1134
unsigned char * PBOOLEAN
Definition: typedefs.h:53
union _LARGE_INTEGER LARGE_INTEGER
union _LARGE_INTEGER * PLARGE_INTEGER
Definition: file.c:57
@ ThreadNameInformation
Definition: winternl.h:2319
_Requires_lock_held_ Interrupt _Releases_lock_ Interrupt _In_ _IRQL_restores_ KIRQL OldIrql
Definition: kefuncs.h:778

Referenced by CreateRemoteThread(), CsrCreateProcess(), CsrCreateRemoteThread(), CsrCreateThread(), CsrInsertThread(), CsrSbCreateSession(), DbgUiConvertStateChangeStructure(), DoThreadNameTest(), ExitThread(), fetch_thread_info(), GetExitCodeThread(), GetProcessIdOfThread(), GetThreadDescription(), GetThreadGroupAffinity(), GetThreadId(), GetThreadIdealProcessorEx(), GetThreadIOPendingFlag(), GetThreadPriority(), GetThreadPriorityBoost(), GetThreadSelectorEntry(), GetThreadTimes(), i386_stack_walk(), init_funcs(), InitFunctionPtrs(), ntGetThreadName(), PrintThreads(), QuerySetThreadValidator(), RtlCheckForOrphanedCriticalSections(), RtlFreeUserThreadStack(), RtlpIsIoPending(), SetThreadAffinityMask(), TerminateThread(), test_dbg_hidden_thread_creation(), test_HideFromDebugger(), Test_InfoClass_Access(), test_peb_teb(), test_process_machine(), Test_ThreadAmILastThread(), Test_ThreadBasicInformationClass(), test_ThreadEnableAlignmentFaultFixup(), Test_ThreadHideFromDebuggerClass(), and test_tls_links().

◆ NtQueryMultipleValueKey()

__kernel_entry NTSYSCALLAPI NTSTATUS NTAPI NtQueryMultipleValueKey ( _In_ HANDLE  KeyHandle,
_Inout_updates_(EntryCount) PKEY_VALUE_ENTRY  ValueEntries,
_In_ ULONG  EntryCount,
_Out_writes_bytes_ *BufferLength PVOID  ValueBuffer,
_Inout_ PULONG  BufferLength,
_Out_opt_ PULONG  RequiredBufferLength 
)

◆ NtQuerySystemInformation()

__kernel_entry NTSYSCALLAPI NTSTATUS NTAPI NtQuerySystemInformation ( _In_ SYSTEM_INFORMATION_CLASS  SystemInformationClass,
_Out_ PVOID  SystemInformation,
_In_ ULONG  InformationLength,
_Out_opt_ PULONG  ResultLength 
)

◆ NtQuerySystemTime()

__kernel_entry NTSYSCALLAPI NTSTATUS NTAPI NtQuerySystemTime ( _Out_ PLARGE_INTEGER  SystemTime)

◆ NtRenameKey()

__kernel_entry NTSYSCALLAPI NTSTATUS NTAPI NtRenameKey ( _In_ HANDLE  KeyHandle,
_In_ PUNICODE_STRING  NewName 
)

◆ NtSetInformationKey()

__kernel_entry NTSYSCALLAPI NTSTATUS NTAPI NtSetInformationKey ( _In_ HANDLE  KeyHandle,
_In_ _Strict_type_match_ KEY_SET_INFORMATION_CLASS  KeySetInformationClass,
_In_reads_bytes_(KeySetInformationLength) PVOID  KeySetInformation,
_In_ ULONG  KeySetInformationLength 
)

◆ NtWaitForSingleObject()

__kernel_entry NTSYSCALLAPI NTSTATUS NTAPI NtWaitForSingleObject ( _In_ HANDLE  Object,
_In_ BOOLEAN  Alertable,
_In_opt_ PLARGE_INTEGER  Timeout 
)

◆ RtlAnsiStringToUnicodeString()

NTSTATUS NTAPI RtlAnsiStringToUnicodeString ( PUNICODE_STRING  DestinationString,
PCANSI_STRING  SourceString,
BOOLEAN  AllocateDestinationString 
)

◆ RtlCharToInteger()

NTSTATUS NTAPI RtlCharToInteger ( PCSZ  String,
ULONG  Base,
PULONG  Value 
)

Definition at line 261 of file unicode.c.

265{
266 CHAR chCurrent;
267 int digit;
268 ULONG RunningTotal = 0;
269 char bMinus = 0;
270
271 /* skip leading whitespaces */
272 while (*str != '\0' && *str <= ' ') str++;
273
274 /* Check for +/- */
275 if (*str == '+')
276 {
277 str++;
278 }
279 else if (*str == '-')
280 {
281 bMinus = 1;
282 str++;
283 }
284
285 /* base = 0 means autobase */
286 if (base == 0)
287 {
288 base = 10;
289
290 if (str[0] == '0')
291 {
292 if (str[1] == 'b')
293 {
294 str += 2;
295 base = 2;
296 }
297 else if (str[1] == 'o')
298 {
299 str += 2;
300 base = 8;
301 }
302 else if (str[1] == 'x')
303 {
304 str += 2;
305 base = 16;
306 }
307 }
308 }
309 else if (base != 2 && base != 8 && base != 10 && base != 16)
310 {
312 }
313
314 if (value == NULL) return STATUS_ACCESS_VIOLATION;
315
316 while (*str != '\0')
317 {
318 chCurrent = *str;
319
320 if (chCurrent >= '0' && chCurrent <= '9')
321 {
322 digit = chCurrent - '0';
323 }
324 else if (chCurrent >= 'A' && chCurrent <= 'Z')
325 {
326 digit = chCurrent - 'A' + 10;
327 }
328 else if (chCurrent >= 'a' && chCurrent <= 'z')
329 {
330 digit = chCurrent - 'a' + 10;
331 }
332 else
333 {
334 digit = -1;
335 }
336
337 if (digit < 0 || digit >= (int)base) break;
338
339 RunningTotal = RunningTotal * base + digit;
340 str++;
341 }
342
343 *value = bMinus ? (0 - RunningTotal) : RunningTotal;
344 return STATUS_SUCCESS;
345}
#define STATUS_ACCESS_VIOLATION
char CHAR
Definition: pedump.c:57
const WCHAR * str
Definition: pdh_main.c:64

◆ RtlConvertSidToUnicodeString()

NTSTATUS NTAPI RtlConvertSidToUnicodeString ( PUNICODE_STRING  UnicodeString,
PSID  Sid,
BOOLEAN  AllocateDestinationString 
)

◆ RtlFreeAnsiString()

VOID NTAPI RtlFreeAnsiString ( PANSI_STRING  AnsiString)

◆ RtlFreeOemString()

◆ RtlFreeUnicodeString()

VOID NTAPI RtlFreeUnicodeString ( PUNICODE_STRING  UnicodeString)

◆ RtlInitAnsiString()

VOID NTAPI RtlInitAnsiString ( PANSI_STRING  DestinationString,
PCSZ  SourceString 
)

◆ RtlInitString()

VOID NTAPI RtlInitString ( PSTRING  DestinationString,
PCSZ  SourceString 
)

◆ RtlInitUnicodeString()

VOID NTAPI RtlInitUnicodeString ( PUNICODE_STRING  DestinationString,
PCWSTR  SourceString 
)

◆ RtlIsNameLegalDOS8Dot3()

◆ RtlLocalTimeToSystemTime()

NTSTATUS NTAPI RtlLocalTimeToSystemTime ( IN PLARGE_INTEGER  LocalTime,
_Out_ PLARGE_INTEGER  SystemTime 
)

◆ RtlTimeToSecondsSince1970()

◆ RtlUnicodeStringToAnsiString()

NTSTATUS NTAPI RtlUnicodeStringToAnsiString ( PANSI_STRING  DestinationString,
PCUNICODE_STRING  SourceString,
BOOLEAN  AllocateDestinationString 
)

◆ RtlUnicodeStringToOemString()

NTSTATUS NTAPI RtlUnicodeStringToOemString ( POEM_STRING  DestinationString,
PCUNICODE_STRING  SourceString,
BOOLEAN  AllocateDestinationString 
)

◆ RtlUnicodeToMultiByteSize()

NTSTATUS NTAPI RtlUnicodeToMultiByteSize ( _Out_ PULONG  BytesInMultiByteString,
_In_reads_bytes_(BytesInUnicodeString) PWCH  UnicodeString,
_In_ ULONG  BytesInUnicodeString 
)

◆ RtlUniform()

ULONG NTAPI RtlUniform ( PULONG  Seed)

Variable Documentation

◆ ObjectInformationClass

_In_ OBJECT_INFORMATION_CLASS ObjectInformationClass

Definition at line 469 of file winternl.h.

◆ ObjectInformationLength

_In_ OBJECT_INFORMATION_CLASS _In_ ULONG ObjectInformationLength

Definition at line 471 of file winternl.h.

◆ ReturnLength

Definition at line 472 of file winternl.h.