ReactOS  0.4.15-dev-2985-g54406bf
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 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 charPCSZ
 
typedef struct _STRING STRING
 
typedef struct _STRINGPSTRING
 
typedef STRING ANSI_STRING
 
typedef PSTRING PANSI_STRING
 
typedef PSTRING PCANSI_STRING
 
typedef STRING OEM_STRING
 
typedef PSTRING POEM_STRING
 
typedef const STRINGPCOEM_STRING
 
typedef struct _UNICODE_STRING UNICODE_STRING
 
typedef struct _UNICODE_STRINGPUNICODE_STRING
 
typedef const UNICODE_STRINGPCUNICODE_STRING
 
typedef struct _RTL_USER_PROCESS_PARAMETERS RTL_USER_PROCESS_PARAMETERS
 
typedef struct _RTL_USER_PROCESS_PARAMETERSPRTL_USER_PROCESS_PARAMETERS
 
typedef struct _PEB_LDR_DATA PEB_LDR_DATA
 
typedef struct _PEB_LDR_DATAPPEB_LDR_DATA
 
typedef struct _LDR_DATA_TABLE_ENTRY LDR_DATA_TABLE_ENTRY
 
typedef struct _LDR_DATA_TABLE_ENTRYPLDR_DATA_TABLE_ENTRY
 
typedef VOID(NTAPIPPS_POST_PROCESS_INIT_ROUTINE) (VOID)
 
typedef struct _PEB PEB
 
typedef struct _PEBPPEB
 
typedef struct _TEB TEB
 
typedef struct _TEBPTEB
 
typedef enum _FILE_INFORMATION_CLASS FILE_INFORMATION_CLASS
 
typedef struct _OBJECT_ATTRIBUTES OBJECT_ATTRIBUTES
 
typedef struct _OBJECT_ATTRIBUTESPOBJECT_ATTRIBUTES
 
typedef struct _IO_STATUS_BLOCK IO_STATUS_BLOCK
 
typedef struct _IO_STATUS_BLOCKPIO_STATUS_BLOCK
 
typedef VOID(NTAPIPIO_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_ENTRYPKEY_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_INFORMATIONPPROCESS_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_INFORMATIONPPUBLIC_OBJECT_BASIC_INFORMATION
 
typedef struct __PUBLIC_OBJECT_TYPE_INFORMATION PUBLIC_OBJECT_TYPE_INFORMATION
 
typedef struct __PUBLIC_OBJECT_TYPE_INFORMATIONPPUBLIC_OBJECT_TYPE_INFORMATION
 
typedef enum _SYSTEM_INFORMATION_CLASS SYSTEM_INFORMATION_CLASS
 
typedef struct _SYSTEM_BASIC_INFORMATION SYSTEM_BASIC_INFORMATION
 
typedef struct _SYSTEM_BASIC_INFORMATIONPSYSTEM_BASIC_INFORMATION
 
typedef struct _SYSTEM_PERFORMANCE_INFORMATION SYSTEM_PERFORMANCE_INFORMATION
 
typedef struct _SYSTEM_PERFORMANCE_INFORMATIONPSYSTEM_PERFORMANCE_INFORMATION
 
typedef struct _SYSTEM_TIMEOFDAY_INFORMATION SYSTEM_TIMEOFDAY_INFORMATION
 
typedef struct _SYSTEM_TIMEOFDAY_INFORMATIONPSYSTEM_TIMEOFDAY_INFORMATION
 
typedef struct _SYSTEM_PROCESS_INFORMATION SYSTEM_PROCESS_INFORMATION
 
typedef struct _SYSTEM_PROCESS_INFORMATIONPSYSTEM_PROCESS_INFORMATION
 
typedef struct _SYSTEM_PROCESSOR_PERFORMANCE_INFORMATION SYSTEM_PROCESSOR_PERFORMANCE_INFORMATION
 
typedef struct _SYSTEM_PROCESSOR_PERFORMANCE_INFORMATIONPSYSTEM_PROCESSOR_PERFORMANCE_INFORMATION
 
typedef struct _SYSTEM_INTERRUPT_INFORMATION SYSTEM_INTERRUPT_INFORMATION
 
typedef struct _SYSTEM_INTERRUPT_INFORMATIONPSYSTEM_INTERRUPT_INFORMATION
 
typedef struct _SYSTEM_EXCEPTION_INFORMATION SYSTEM_EXCEPTION_INFORMATION
 
typedef struct _SYSTEM_EXCEPTION_INFORMATIONPSYSTEM_EXCEPTION_INFORMATION
 
typedef struct _SYSTEM_REGISTRY_QUOTA_INFORMATION SYSTEM_REGISTRY_QUOTA_INFORMATION
 
typedef struct _SYSTEM_REGISTRY_QUOTA_INFORMATIONPSYSTEM_REGISTRY_QUOTA_INFORMATION
 
typedef struct _SYSTEM_LOOKASIDE_INFORMATION SYSTEM_LOOKASIDE_INFORMATION
 
typedef struct _SYSTEM_LOOKASIDE_INFORMATIONPSYSTEM_LOOKASIDE_INFORMATION
 
typedef struct _SYSTEM_POLICY_INFORMATION SYSTEM_POLICY_INFORMATION
 
typedef struct _SYSTEM_POLICY_INFORMATIONPSYSTEM_POLICY_INFORMATION
 
typedef enum _WINSTATIONINFOCLASS WINSTATIONINFOCLASS
 
typedef struct _WINSTATIONINFORMATIONW WINSTATIONINFORMATIONW
 
typedef struct _WINSTATIONINFORMATIONWPWINSTATIONINFORMATIONW
 
typedef BOOLEAN(WINAPIPWINSTATIONQUERYINFORMATIONW) (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, 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, 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, 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, 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, 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, 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
}
 
enum  _OBJECT_INFORMATION_CLASS {
  ObjectBasicInformation, ObjectNameInformation, ObjectTypeInformation, ObjectAllTypesInformation,
  ObjectHandleInformation, ObjectBasicInformation = 0, ObjectTypeInformation = 2, ObjectBasicInformation,
  ObjectNameInformation, ObjectTypeInformation, ObjectTypesInformation, ObjectDataInformation
}
 
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, 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,
  SystemPlugPlayBusInformation, SystemDockInformation, SystemPowerInformationNative, SystemProcessorSpeedInformation,
  SystemCurrentTimeZoneInformation, SystemLookasideInformation, SystemTimeSlipNotification, SystemSessionCreate,
  SystemSessionDetach, SystemSessionInformation, SystemRangeStartInformation, SystemVerifierInformation,
  SystemAddVerifier, SystemSessionProcessesInformation, SystemLoadGdiDriverInSystemSpaceInformation, 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,
  SystemPrefetchPathInformation, SystemVerifierFaultsInformation, 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, Unknown4, SystemProcessInformation = 5, Unknown6,
  Unknown7, SystemProcessorPerformanceInformation = 8, Unknown9, Unknown10,
  SystemModuleInformation = 11, Unknown12, Unknown13, Unknown14,
  Unknown15, SystemHandleInformation = 16, Unknown17, SystemPageFileInformation = 18,
  Unknown19, Unknown20, SystemCacheInformation = 21, Unknown22,
  SystemInterruptInformation = 23, SystemDpcBehaviourInformation = 24, SystemFullMemoryInformation = 25, SystemNotImplemented6 = 25,
  SystemLoadImage = 26, SystemUnloadImage = 27, SystemTimeAdjustmentInformation = 28, SystemTimeAdjustment = 28,
  SystemSummaryMemoryInformation = 29, SystemNotImplemented7 = 29, SystemNextEventIdInformation = 30, SystemNotImplemented8 = 30,
  SystemEventIdsInformation = 31, SystemCrashDumpInformation = 32, SystemExceptionInformation = 33, SystemCrashDumpStateInformation = 34,
  SystemKernelDebuggerInformation = 35, SystemContextSwitchInformation = 36, SystemRegistryQuotaInformation = 37, SystemCurrentTimeZoneInformation = 44,
  SystemTimeZoneInformation = 44, SystemLookasideInformation = 45, SystemSetTimeSlipEvent = 46, SystemCreateSession = 47,
  SystemDeleteSession = 48, SystemInvalidInfoClass4 = 49, SystemRangeStartInformation = 50, SystemVerifierInformation = 51,
  SystemAddVerifier = 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, SystemWow64SharedInformation = 74, SystemRegisterFirmwareTableInformationHandler = 75,
  SystemFirmwareTableInformation = 76, SystemModuleInformationEx = 77, SystemVerifierTriageInformation = 78, SystemSuperfetchInformation = 79,
  SystemMemoryListInformation = 80, SystemFileCacheInformationEx = 81, SystemLogicalProcessorInformationEx = 107, SystemInformationClassMax
}
 
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_ PVOID ProcessInformation, _In_ ULONG ProcessInformationLength, _Out_opt_ PULONG ReturnLength)
 
__kernel_entry NTSYSCALLAPI NTSTATUS NTAPI NtQueryInformationThread (_In_ HANDLE ThreadHandle, _In_ THREADINFOCLASS ThreadInformationClass, _Out_ PVOID ThreadInformation, _In_ ULONG ThreadInformationLength, _Out_opt_ PULONG ReturnLength)
 
 _IRQL_requires_max_ (PASSIVE_LEVEL) __kernel_entry NTSYSCALLAPI NTSTATUS NTAPI NtQueryObject(_In_opt_ HANDLE Handle
 
_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; \
}
_In_ ULONG _In_ ULONG _In_ ULONG Length
Definition: ntddpcm.h:101
WCHAR RootDirectory[MAX_PATH]
Definition: format.c:74
_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:182
GLdouble GLdouble GLdouble r
Definition: gl.h:2055
GLdouble n
Definition: glext.h:7729
_In_ PVOID _Out_opt_ PULONG_PTR _Outptr_opt_ PCUNICODE_STRING * ObjectName
Definition: cmfuncs.h:62
GLdouble s
Definition: gl.h:2039
#define NULL
Definition: types.h:112
GLboolean GLboolean GLboolean GLboolean a
Definition: glext.h:6204
GLfloat GLfloat p
Definition: glext.h:8902
_Must_inspect_result_ _In_ WDFDMAENABLER _In_ _In_opt_ PWDF_OBJECT_ATTRIBUTES Attributes

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.

◆ RtlFillMemory

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

Definition at line 593 of file winternl.h.

◆ RtlMoveMemory

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

Definition at line 592 of file winternl.h.

◆ RtlZeroMemory

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

Definition at line 594 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 294 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 119 of file winternl.h.

◆ PPUBLIC_OBJECT_BASIC_INFORMATION

◆ PPUBLIC_OBJECT_TYPE_INFORMATION

◆ PROCESS_BASIC_INFORMATION

◆ PROCESSINFOCLASS

Definition at line 63 of file loader.c.

◆ 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 577 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 
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 {
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 370 of file winternl.h.

◆ _OBJECT_INFORMATION_CLASS

Enumerator
ObjectBasicInformation 
ObjectNameInformation 
ObjectTypeInformation 
ObjectAllTypesInformation 
ObjectHandleInformation 
ObjectBasicInformation 
ObjectTypeInformation 
ObjectBasicInformation 
ObjectNameInformation 
ObjectTypeInformation 
ObjectTypesInformation 
ObjectDataInformation 

Definition at line 437 of file winternl.h.

438 {
enum _OBJECT_INFORMATION_CLASS OBJECT_INFORMATION_CLASS

◆ _PROCESSINFOCLASS

Enumerator
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 
ProcessExecuteFlags 
ProcessTlsInformation 
ProcessCookie 
ProcessImageInformation 
ProcessCycleTime 
ProcessPagePriority 
ProcessInstrumentationCallback 
ProcessThreadStackAllocation 
ProcessWorkingSetWatchEx 
ProcessImageFileNameWin32 
ProcessImageFileMapping 
ProcessAffinityUpdateMode 
ProcessMemoryAllocationMode 
ProcessGroupInformation 
ProcessTokenVirtualizationEnabled 
ProcessConsoleHostProcess 
ProcessWindowInformation 
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 392 of file winternl.h.

◆ _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 

Obsolete: Use KUSER_SHARED_DATA.

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 
SystemPlugPlayBusInformation 
SystemDockInformation 
SystemPowerInformationNative 
SystemProcessorSpeedInformation 
SystemCurrentTimeZoneInformation 
SystemLookasideInformation 
SystemTimeSlipNotification 
SystemSessionCreate 
SystemSessionDetach 
SystemSessionInformation 
SystemRangeStartInformation 
SystemVerifierInformation 
SystemAddVerifier 
SystemSessionProcessesInformation 
SystemLoadGdiDriverInSystemSpaceInformation 
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 
SystemPrefetchPathInformation 
SystemVerifierFaultsInformation 
MaxSystemInfoClass 
SystemBasicInformation 
SystemPerformanceInformation 
SystemTimeOfDayInformation 
SystemProcessInformation 
SystemProcessorPerformanceInformation 
SystemInterruptInformation 
SystemExceptionInformation 
SystemRegistryQuotaInformation 
SystemLookasideInformation 
SystemPolicyInformation 
SystemBasicInformation 
SystemCpuInformation 
SystemPerformanceInformation 
SystemTimeOfDayInformation 
Unknown4 
SystemProcessInformation 
Unknown6 
Unknown7 
SystemProcessorPerformanceInformation 
Unknown9 
Unknown10 
SystemModuleInformation 
Unknown12 
Unknown13 
Unknown14 
Unknown15 
SystemHandleInformation 
Unknown17 
SystemPageFileInformation 
Unknown19 
Unknown20 
SystemCacheInformation 
Unknown22 
SystemInterruptInformation 
SystemDpcBehaviourInformation 
SystemFullMemoryInformation 
SystemNotImplemented6 
SystemLoadImage 
SystemUnloadImage 
SystemTimeAdjustmentInformation 
SystemTimeAdjustment 
SystemSummaryMemoryInformation 
SystemNotImplemented7 
SystemNextEventIdInformation 
SystemNotImplemented8 
SystemEventIdsInformation 
SystemCrashDumpInformation 
SystemExceptionInformation 
SystemCrashDumpStateInformation 
SystemKernelDebuggerInformation 
SystemContextSwitchInformation 
SystemRegistryQuotaInformation 
SystemCurrentTimeZoneInformation 
SystemTimeZoneInformation 
SystemLookasideInformation 
SystemSetTimeSlipEvent 
SystemCreateSession 
SystemDeleteSession 
SystemInvalidInfoClass4 
SystemRangeStartInformation 
SystemVerifierInformation 
SystemAddVerifier 
SystemSessionProcessesInformation 
SystemLoadGdiDriverInSystemSpace 
SystemNumaProcessorMap 
SystemPrefetcherInformation 
SystemExtendedProcessInformation 
SystemRecommendedSharedDataAlignment 
SystemComPlusPackage 
SystemNumaAvailableMemory 
SystemProcessorPowerInformation 
SystemEmulationBasicInformation 
SystemEmulationProcessorInformation 
SystemExtendedHandleInformation 
SystemLostDelayedWriteInformation 
SystemBigPoolInformation 
SystemSessionPoolTagInformation 
SystemSessionMappedViewInformation 
SystemHotpatchInformation 
SystemObjectSecurityMode 
SystemWatchdogTimerHandler 
SystemWatchdogTimerInformation 
SystemLogicalProcessorInformation 
SystemWow64SharedInformation 
SystemRegisterFirmwareTableInformationHandler 
SystemFirmwareTableInformation 
SystemModuleInformationEx 
SystemVerifierTriageInformation 
SystemSuperfetchInformation 
SystemMemoryListInformation 
SystemFileCacheInformationEx 
SystemLogicalProcessorInformationEx 
SystemInformationClassMax 

Definition at line 470 of file winternl.h.

◆ _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 
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 
MaxThreadInfoClass 

Definition at line 421 of file winternl.h.

422 {
423  ThreadIsIoPending = 16
enum _THREADINFOCLASS THREADINFOCLASS

◆ _WINSTATIONINFOCLASS

Enumerator
WinStationInformation 
WinStationInformation 

Definition at line 563 of file winternl.h.

564 {
enum _WINSTATIONINFOCLASS WINSTATIONINFOCLASS

Function Documentation

◆ _IRQL_requires_max_()

_IRQL_requires_max_ ( PASSIVE_LEVEL  )

Definition at line 64 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 */
106  KernelMode,
107  NULL,
108  sizeof(FLT_SERVER_PORT_OBJECT),
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;
122  PortObject->ConnectNotify = ConnectNotifyCallback;
124  PortObject->MessageNotify = MessageNotifyCallback;
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 }
IN PUNICODE_STRING IN POBJECT_ATTRIBUTES ObjectAttributes
Definition: conport.c:35
#define STATUS_INVALID_PARAMETER
Definition: udferr_usr.h:135
_Must_inspect_result_ _Outptr_ PFLT_PORT * ServerPort
Definition: fltkernel.h:1872
PFLT_CONNECT_NOTIFY ConnectNotify
Definition: fltmgrint.h:191
VOID FLTAPI FltObjectDereference(_Inout_ PVOID Object)
Definition: Object.c:53
LONG NTSTATUS
Definition: precomp.h:26
#define InsertTailList(ListHead, Entry)
#define OBJ_KERNEL_HANDLE
Definition: winternl.h:231
VOID FASTCALL ExReleaseFastMutex(IN PFAST_MUTEX FastMutex)
Definition: fmutex.c:31
ULONG FltpObjectPointerReference(_In_ PFLT_OBJECT Object)
Definition: Object.c:322
LIST_ENTRY mList
Definition: fltmgrint.h:56
_Must_inspect_result_ _In_opt_ PFLT_FILTER Filter
Definition: fltkernel.h:1801
#define FILE_READ_DATA
Definition: nt_native.h:628
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:952
Status
Definition: gdiplustypes.h:24
POBJECT_TYPE ServerPortObjectType
Definition: Messaging.c:24
#define NT_SUCCESS(StatCode)
Definition: apphelp.c:32
_Must_inspect_result_ _Outptr_ PFLT_PORT _In_ POBJECT_ATTRIBUTES _In_opt_ PVOID _In_ PFLT_CONNECT_NOTIFY _In_ PFLT_DISCONNECT_NOTIFY DisconnectNotifyCallback
Definition: fltkernel.h:1872
PVOID *typedef PHANDLE
Definition: ntsecpkg.h:454
_Must_inspect_result_ _Outptr_ PFLT_PORT _In_ POBJECT_ATTRIBUTES _In_opt_ PVOID _In_ PFLT_CONNECT_NOTIFY ConnectNotifyCallback
Definition: fltkernel.h:1872
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:2931
#define STANDARD_RIGHTS_ALL
Definition: nt_native.h:69
VOID FASTCALL ExAcquireFastMutex(IN PFAST_MUTEX FastMutex)
Definition: fmutex.c:23
NTSTATUS FLTAPI FltObjectReference(_Inout_ PVOID Object)
Definition: Object.c:41
_Must_inspect_result_ _Outptr_ PFLT_PORT _In_ POBJECT_ATTRIBUTES _In_opt_ PVOID ServerPortCookie
Definition: fltkernel.h:1872
#define NULL
Definition: types.h:112
FAST_MUTEX mLock
Definition: fltmgrint.h:55
PFLT_MESSAGE_NOTIFY MessageNotify
Definition: fltmgrint.h:193
#define RtlZeroMemory(Destination, Length)
Definition: typedefs.h:262
_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 _In_ LONG MaxConnections
Definition: fltkernel.h:1872
PFLT_DISCONNECT_NOTIFY DisconnectNotify
Definition: fltmgrint.h:192
_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:1872
FLT_MUTEX_LIST_HEAD ConnectionList
Definition: fltmgrint.h:121

◆ _Out_range_()

_Out_range_ ( )

◆ _Out_writes_bytes_opt_()

◆ _Return_type_success_()

typedef _Return_type_success_ ( return >=  0)

◆ _When_()

_When_ ( Status< 0, _Out_range_(>  ,
 
)
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_ PVOID  ProcessInformation,
_In_ ULONG  ProcessInformationLength,
_Out_opt_ PULONG  ReturnLength 
)

Definition at line 59 of file query.c.

65 {
69  ULONG Length = 0;
70  HANDLE DebugPort = 0;
71  PPROCESS_BASIC_INFORMATION ProcessBasicInfo =
72  (PPROCESS_BASIC_INFORMATION)ProcessInformation;
73  PKERNEL_USER_TIMES ProcessTime = (PKERNEL_USER_TIMES)ProcessInformation;
74  ULONG UserTime, KernelTime;
75  PPROCESS_PRIORITY_CLASS PsPriorityClass = (PPROCESS_PRIORITY_CLASS)ProcessInformation;
76  ULONG HandleCount;
78  (PPROCESS_SESSION_INFORMATION)ProcessInformation;
79  PVM_COUNTERS VmCounters = (PVM_COUNTERS)ProcessInformation;
80  PIO_COUNTERS IoCounters = (PIO_COUNTERS)ProcessInformation;
81  PQUOTA_LIMITS QuotaLimits = (PQUOTA_LIMITS)ProcessInformation;
83  ULONG Cookie, ExecuteOptions = 0;
84  ULONG_PTR Wow64 = 0;
85  PROCESS_VALUES ProcessValues;
86  ULONG Flags;
87  PAGED_CODE();
88 
89  /* Verify Information Class validity */
90  Status = DefaultQueryInfoBufferCheck(ProcessInformationClass,
93  ProcessInformation,
94  ProcessInformationLength,
96  NULL,
98  FALSE);
99  if (!NT_SUCCESS(Status))
100  {
101  DPRINT1("NtQueryInformationProcess(): Information verification class failed! (Status -> 0x%lx, ProcessInformationClass -> %lx)\n", Status, ProcessInformationClass);
102  return Status;
103  }
104 
105  if (((ProcessInformationClass == ProcessCookie) ||
106  (ProcessInformationClass == ProcessImageInformation)) &&
108  {
109  /*
110  * Retrieving the process cookie is only allowed for the calling process
111  * itself! XP only allows NtCurrentProcess() as process handles even if
112  * a real handle actually represents the current process.
113  */
115  }
116 
117  /* Check the information class */
118  switch (ProcessInformationClass)
119  {
120  /* Basic process information */
122 
123  if (ProcessInformationLength != sizeof(PROCESS_BASIC_INFORMATION))
124  {
126  break;
127  }
128 
129  /* Set return length */
131 
132  /* Reference the process */
136  PreviousMode,
137  (PVOID*)&Process,
138  NULL);
139  if (!NT_SUCCESS(Status)) break;
140 
141  /* Protect writes with SEH */
142  _SEH2_TRY
143  {
144  /* Write all the information from the EPROCESS/KPROCESS */
145  ProcessBasicInfo->ExitStatus = Process->ExitStatus;
146  ProcessBasicInfo->PebBaseAddress = Process->Peb;
147  ProcessBasicInfo->AffinityMask = Process->Pcb.Affinity;
148  ProcessBasicInfo->UniqueProcessId = (ULONG_PTR)Process->
149  UniqueProcessId;
150  ProcessBasicInfo->InheritedFromUniqueProcessId =
151  (ULONG_PTR)Process->InheritedFromUniqueProcessId;
152  ProcessBasicInfo->BasePriority = Process->Pcb.BasePriority;
153 
154  }
156  {
157  /* Get exception code */
159  }
160  _SEH2_END;
161 
162  /* Dereference the process */
164  break;
165 
166  /* Process quota limits */
167  case ProcessQuotaLimits:
168 
169  if (ProcessInformationLength != sizeof(QUOTA_LIMITS))
170  {
172  break;
173  }
174 
175  Length = sizeof(QUOTA_LIMITS);
176 
177  /* Reference the process */
181  PreviousMode,
182  (PVOID*)&Process,
183  NULL);
184  if (!NT_SUCCESS(Status)) break;
185 
186  /* Indicate success */
188 
189  _SEH2_TRY
190  {
191  /* Set max/min working set sizes */
192  QuotaLimits->MaximumWorkingSetSize =
193  Process->Vm.MaximumWorkingSetSize << PAGE_SHIFT;
194  QuotaLimits->MinimumWorkingSetSize =
195  Process->Vm.MinimumWorkingSetSize << PAGE_SHIFT;
196 
197  /* Set default time limits */
198  QuotaLimits->TimeLimit.LowPart = MAXULONG;
199  QuotaLimits->TimeLimit.HighPart = MAXULONG;
200 
201  /* Is quota block a default one? */
202  if (Process->QuotaBlock == &PspDefaultQuotaBlock)
203  {
204  /* Set default pools and pagefile limits */
205  QuotaLimits->PagedPoolLimit = (SIZE_T)-1;
206  QuotaLimits->NonPagedPoolLimit = (SIZE_T)-1;
207  QuotaLimits->PagefileLimit = (SIZE_T)-1;
208  }
209  else
210  {
211  /* Get limits from non-default quota block */
212  QuotaLimits->PagedPoolLimit =
213  Process->QuotaBlock->QuotaEntry[PagedPool].Limit;
214  QuotaLimits->NonPagedPoolLimit =
215  Process->QuotaBlock->QuotaEntry[NonPagedPool].Limit;
216  QuotaLimits->PagefileLimit =
217  Process->QuotaBlock->QuotaEntry[2].Limit;
218  }
219  }
221  {
222  /* Get exception code */
224  }
225  _SEH2_END;
226 
227  /* Dereference the process */
229  break;
230 
231  case ProcessIoCounters:
232 
233  if (ProcessInformationLength != sizeof(IO_COUNTERS))
234  {
236  break;
237  }
238 
239  Length = sizeof(IO_COUNTERS);
240 
241  /* Reference the process */
245  PreviousMode,
246  (PVOID*)&Process,
247  NULL);
248  if (!NT_SUCCESS(Status)) break;
249 
250  /* Query IO counters from the process */
251  KeQueryValuesProcess(&Process->Pcb, &ProcessValues);
252 
253  _SEH2_TRY
254  {
255  RtlCopyMemory(IoCounters, &ProcessValues.IoInfo, sizeof(IO_COUNTERS));
256  }
258  {
259  /* Ignore exception */
260  }
261  _SEH2_END;
262 
263  /* Set status to success in any case */
265 
266  /* Dereference the process */
268  break;
269 
270  /* Timing */
271  case ProcessTimes:
272 
273  /* Set the return length */
274  if (ProcessInformationLength != sizeof(KERNEL_USER_TIMES))
275  {
277  break;
278  }
279 
280  Length = sizeof(KERNEL_USER_TIMES);
281 
282  /* Reference the process */
286  PreviousMode,
287  (PVOID*)&Process,
288  NULL);
289  if (!NT_SUCCESS(Status)) break;
290 
291  /* Protect writes with SEH */
292  _SEH2_TRY
293  {
294  /* Copy time information from EPROCESS/KPROCESS */
295  KernelTime = KeQueryRuntimeProcess(&Process->Pcb, &UserTime);
296  ProcessTime->CreateTime = Process->CreateTime;
298  ProcessTime->KernelTime.QuadPart = (LONGLONG)KernelTime * KeMaximumIncrement;
299  ProcessTime->ExitTime = Process->ExitTime;
300  }
302  {
303  /* Get exception code */
305  }
306  _SEH2_END;
307 
308  /* Dereference the process */
310  break;
311 
312  /* Process Debug Port */
313  case ProcessDebugPort:
314 
315  if (ProcessInformationLength != sizeof(HANDLE))
316  {
318  break;
319  }
320 
321  /* Set return length */
322  Length = sizeof(HANDLE);
323 
324  /* Reference the process */
328  PreviousMode,
329  (PVOID*)&Process,
330  NULL);
331  if (!NT_SUCCESS(Status)) break;
332 
333  /* Protect write with SEH */
334  _SEH2_TRY
335  {
336  /* Return whether or not we have a debug port */
337  *(PHANDLE)ProcessInformation = (Process->DebugPort ?
338  (HANDLE)-1 : NULL);
339  }
341  {
342  /* Get exception code */
344  }
345  _SEH2_END;
346 
347  /* Dereference the process */
349  break;
350 
351  case ProcessHandleCount:
352 
353  if (ProcessInformationLength != sizeof(ULONG))
354  {
356  break;
357  }
358 
359  /* Set the return length*/
360  Length = sizeof(ULONG);
361 
362  /* Reference the process */
366  PreviousMode,
367  (PVOID*)&Process,
368  NULL);
369  if (!NT_SUCCESS(Status)) break;
370 
371  /* Count the number of handles this process has */
372  HandleCount = ObGetProcessHandleCount(Process);
373 
374  /* Protect write in SEH */
375  _SEH2_TRY
376  {
377  /* Return the count of handles */
378  *(PULONG)ProcessInformation = HandleCount;
379  }
381  {
382  /* Get the exception code */
384  }
385  _SEH2_END;
386 
387  /* Dereference the process */
389  break;
390 
391  /* Session ID for the process */
393 
394  if (ProcessInformationLength != sizeof(PROCESS_SESSION_INFORMATION))
395  {
397  break;
398  }
399 
400  /* Set the return length*/
402 
403  /* Reference the process */
407  PreviousMode,
408  (PVOID*)&Process,
409  NULL);
410  if (!NT_SUCCESS(Status)) break;
411 
412  /* Enter SEH for write safety */
413  _SEH2_TRY
414  {
415  /* Write back the Session ID */
417  }
419  {
420  /* Get the exception code */
422  }
423  _SEH2_END;
424 
425  /* Dereference the process */
427  break;
428 
429  /* Virtual Memory Statistics */
430  case ProcessVmCounters:
431 
432  /* Validate the input length */
433  if ((ProcessInformationLength != sizeof(VM_COUNTERS)) &&
434  (ProcessInformationLength != sizeof(VM_COUNTERS_EX)))
435  {
437  break;
438  }
439 
440  /* Reference the process */
444  PreviousMode,
445  (PVOID*)&Process,
446  NULL);
447  if (!NT_SUCCESS(Status)) break;
448 
449  /* Enter SEH for write safety */
450  _SEH2_TRY
451  {
452  /* Return data from EPROCESS */
453  VmCounters->PeakVirtualSize = Process->PeakVirtualSize;
454  VmCounters->VirtualSize = Process->VirtualSize;
455  VmCounters->PageFaultCount = Process->Vm.PageFaultCount;
456  VmCounters->PeakWorkingSetSize = Process->Vm.PeakWorkingSetSize;
457  VmCounters->WorkingSetSize = Process->Vm.WorkingSetSize;
458  VmCounters->QuotaPeakPagedPoolUsage = Process->QuotaPeak[PsPagedPool];
459  VmCounters->QuotaPagedPoolUsage = Process->QuotaUsage[PsPagedPool];
460  VmCounters->QuotaPeakNonPagedPoolUsage = Process->QuotaPeak[PsNonPagedPool];
461  VmCounters->QuotaNonPagedPoolUsage = Process->QuotaUsage[PsNonPagedPool];
462  VmCounters->PagefileUsage = Process->QuotaUsage[PsPageFile] << PAGE_SHIFT;
463  VmCounters->PeakPagefileUsage = Process->QuotaPeak[PsPageFile] << PAGE_SHIFT;
464  //VmCounters->PrivateUsage = Process->CommitCharge << PAGE_SHIFT;
465  //
466 
467  /* Set the return length */
468  Length = ProcessInformationLength;
469  }
471  {
472  /* Get the exception code */
474  }
475  _SEH2_END;
476 
477  /* Dereference the process */
479  break;
480 
481  /* Hard Error Processing Mode */
483 
484  if (ProcessInformationLength != sizeof(ULONG))
485  {
487  break;
488  }
489 
490  /* Set the return length*/
491  Length = sizeof(ULONG);
492 
493  /* Reference the process */
497  PreviousMode,
498  (PVOID*)&Process,
499  NULL);
500  if (!NT_SUCCESS(Status)) break;
501 
502  /* Enter SEH for writing back data */
503  _SEH2_TRY
504  {
505  /* Write the current processing mode */
506  *(PULONG)ProcessInformation = Process->
507  DefaultHardErrorProcessing;
508  }
510  {
511  /* Get the exception code */
513  }
514  _SEH2_END;
515 
516  /* Dereference the process */
518  break;
519 
520  /* Priority Boosting status */
522 
523  if (ProcessInformationLength != sizeof(ULONG))
524  {
526  break;
527  }
528 
529  /* Set the return length */
530  Length = sizeof(ULONG);
531 
532  /* Reference the process */
536  PreviousMode,
537  (PVOID*)&Process,
538  NULL);
539  if (!NT_SUCCESS(Status)) break;
540 
541  /* Enter SEH for writing back data */
542  _SEH2_TRY
543  {
544  /* Return boost status */
545  *(PULONG)ProcessInformation = Process->Pcb.DisableBoost ?
546  TRUE : FALSE;
547  }
549  {
550  /* Get the exception code */
552  }
553  _SEH2_END;
554 
555  /* Dereference the process */
557  break;
558 
559  /* DOS Device Map */
560  case ProcessDeviceMap:
561 
562  if (ProcessInformationLength == sizeof(PROCESS_DEVICEMAP_INFORMATION_EX))
563  {
564  /* Protect read in SEH */
565  _SEH2_TRY
566  {
567  PPROCESS_DEVICEMAP_INFORMATION_EX DeviceMapEx = ProcessInformation;
568 
569  Flags = DeviceMapEx->Flags;
570  }
572  {
573  /* Get the exception code */
575  _SEH2_YIELD(break);
576  }
577  _SEH2_END;
578 
579  /* Only one flag is supported and it needs LUID mappings */
580  if ((Flags & ~PROCESS_LUID_DOSDEVICES_ONLY) != 0 ||
582  {
584  break;
585  }
586  }
587  else
588  {
589  /* This has to be the size of the Query union field for x64 compatibility! */
590  if (ProcessInformationLength != RTL_FIELD_SIZE(PROCESS_DEVICEMAP_INFORMATION, Query))
591  {
593  break;
594  }
595 
596  /* No flags for standard call */
597  Flags = 0;
598  }
599 
600  /* Set the return length */
601  Length = ProcessInformationLength;
602 
603  /* Reference the process */
607  PreviousMode,
608  (PVOID*)&Process,
609  NULL);
610  if (!NT_SUCCESS(Status)) break;
611 
612  /* Query the device map information */
614  ProcessInformation,
615  Flags);
616 
617  /* Dereference the process */
619  break;
620 
621  /* Priority class */
623 
624  if (ProcessInformationLength != sizeof(PROCESS_PRIORITY_CLASS))
625  {
627  break;
628  }
629 
630  /* Set the return length*/
631  Length = sizeof(PROCESS_PRIORITY_CLASS);
632 
633  /* Reference the process */
637  PreviousMode,
638  (PVOID*)&Process,
639  NULL);
640  if (!NT_SUCCESS(Status)) break;
641 
642  /* Enter SEH for writing back data */
643  _SEH2_TRY
644  {
645  /* Return current priority class */
646  PsPriorityClass->PriorityClass = Process->PriorityClass;
647  PsPriorityClass->Foreground = FALSE;
648  }
650  {
651  /* Get the exception code */
653  }
654  _SEH2_END;
655 
656  /* Dereference the process */
658  break;
659 
661 
662  /* Reference the process */
666  PreviousMode,
667  (PVOID*)&Process,
668  NULL);
669  if (!NT_SUCCESS(Status)) break;
670 
671  /* Get the image path */
673  if (NT_SUCCESS(Status))
674  {
675  /* Set return length */
676  Length = ImageName->MaximumLength +
677  sizeof(OBJECT_NAME_INFORMATION);
678 
679  /* Make sure it's large enough */
680  if (Length <= ProcessInformationLength)
681  {
682  /* Enter SEH to protect write */
683  _SEH2_TRY
684  {
685  /* Copy it */
686  RtlCopyMemory(ProcessInformation,
687  ImageName,
688  Length);
689 
690  /* Update pointer */
691  ((PUNICODE_STRING)ProcessInformation)->Buffer =
692  (PWSTR)((PUNICODE_STRING)ProcessInformation + 1);
693  }
695  {
696  /* Get the exception code */
698  }
699  _SEH2_END;
700  }
701  else
702  {
703  /* Buffer too small */
705  }
706 
707  /* Free the image path */
709  }
710  /* Dereference the process */
712  break;
713 
714  case ProcessDebugFlags:
715 
716  if (ProcessInformationLength != sizeof(ULONG))
717  {
719  break;
720  }
721 
722  /* Set the return length*/
723  Length = sizeof(ULONG);
724 
725  /* Reference the process */
729  PreviousMode,
730  (PVOID*)&Process,
731  NULL);
732  if (!NT_SUCCESS(Status)) break;
733 
734  /* Enter SEH for writing back data */
735  _SEH2_TRY
736  {
737  /* Return the debug flag state */
738  *(PULONG)ProcessInformation = Process->NoDebugInherit ? 0 : 1;
739  }
741  {
742  /* Get the exception code */
744  }
745  _SEH2_END;
746 
747  /* Dereference the process */
749  break;
750 
752 
753  if (ProcessInformationLength != sizeof(ULONG))
754  {
756  break;
757  }
758 
759  /* Set the return length */
760  Length = sizeof(ULONG);
761 
762  /* Reference the process */
766  PreviousMode,
767  (PVOID*)&Process,
768  NULL);
769  if (!NT_SUCCESS(Status)) break;
770 
771  /* Enter SEH for writing back data */
772  _SEH2_TRY
773  {
774  /* Return the BreakOnTermination state */
775  *(PULONG)ProcessInformation = Process->BreakOnTermination;
776  }
778  {
779  /* Get the exception code */
781  }
782  _SEH2_END;
783 
784  /* Dereference the process */
786  break;
787 
788  /* Per-process security cookie */
789  case ProcessCookie:
790 
791  if (ProcessInformationLength != sizeof(ULONG))
792  {
793  /* Length size wrong, bail out */
795  break;
796  }
797 
798  /* Get the current process and cookie */
800  Cookie = Process->Cookie;
801  if (!Cookie)
802  {
803  LARGE_INTEGER SystemTime;
804  ULONG NewCookie;
805  PKPRCB Prcb;
806 
807  /* Generate a new cookie */
808  KeQuerySystemTime(&SystemTime);
809  Prcb = KeGetCurrentPrcb();
810  NewCookie = Prcb->KeSystemCalls ^ Prcb->InterruptTime ^
811  SystemTime.u.LowPart ^ SystemTime.u.HighPart;
812 
813  /* Set the new cookie or return the current one */
815  NewCookie,
816  Cookie);
817  if (!Cookie) Cookie = NewCookie;
818 
819  /* Set return length */
820  Length = sizeof(ULONG);
821  }
822 
823  /* Indicate success */
825 
826  /* Enter SEH to protect write */
827  _SEH2_TRY
828  {
829  /* Write back the cookie */
830  *(PULONG)ProcessInformation = Cookie;
831  }
833  {
834  /* Get the exception code */
836  }
837  _SEH2_END;
838  break;
839 
841 
842  if (ProcessInformationLength != sizeof(SECTION_IMAGE_INFORMATION))
843  {
844  /* Break out */
846  break;
847  }
848 
849  /* Set the length required and validate it */
851 
852  /* Enter SEH to protect write */
853  _SEH2_TRY
854  {
856  }
858  {
859  /* Get the exception code */
861  }
862  _SEH2_END;
863 
864  /* Indicate success */
866  break;
867 
869 
870  if (ProcessInformationLength != sizeof(HANDLE))
871  {
873  break;
874  }
875 
876  /* Set the return length */
877  Length = sizeof(HANDLE);
878 
879  /* Reference the process */
883  PreviousMode,
884  (PVOID*)&Process,
885  NULL);
886  if (!NT_SUCCESS(Status)) break;
887 
888  /* Get the debug port */
890 
891  /* Let go of the process */
893 
894  /* Protect write in SEH */
895  _SEH2_TRY
896  {
897  /* Return debug port's handle */
898  *(PHANDLE)ProcessInformation = DebugPort;
899  }
901  {
902  /* Get the exception code */
904  }
905  _SEH2_END;
906  break;
907 
909  DPRINT1("Handle tracing Not implemented: %lx\n", ProcessInformationClass);
911  break;
912 
914 
915  if (ProcessInformationLength != sizeof(ULONG))
916  {
918  break;
919  }
920 
921  /* Set the return length */
922  Length = sizeof(ULONG);
923 
924  /* Indicate success */
926 
927  /* Protect write in SEH */
928  _SEH2_TRY
929  {
930  /* Query Ob */
931  *(PULONG)ProcessInformation = ObIsLUIDDeviceMapsEnabled();
932  }
934  {
935  /* Get the exception code */
937  }
938  _SEH2_END;
939  break;
940 
942 
943  if (ProcessInformationLength != sizeof(ULONG))
944  {
946  break;
947  }
948 
949  /* Set the return length */
950  Length = sizeof(ULONG);
951 
952  /* Reference the process */
956  PreviousMode,
957  (PVOID*)&Process,
958  NULL);
959  if (!NT_SUCCESS(Status)) break;
960 
961  /* Protect write in SEH */
962  _SEH2_TRY
963  {
964  /* Return if the flag is set */
965  *(PULONG)ProcessInformation = (ULONG)Process->VdmAllowed;
966  }
968  {
969  /* Get the exception code */
971  }
972  _SEH2_END;
973 
974  /* Dereference the process */
976  break;
977 
979 
980  if (ProcessInformationLength != sizeof(ULONG_PTR))
981  {
983  break;
984  }
985 
986  /* Set return length */
987  Length = sizeof(ULONG_PTR);
988 
989  /* Reference the process */
993  PreviousMode,
994  (PVOID*)&Process,
995  NULL);
996  if (!NT_SUCCESS(Status)) break;
997 
998  /* Make sure the process isn't dying */
999  if (ExAcquireRundownProtection(&Process->RundownProtect))
1000  {
1001  /* Get the WOW64 process structure */
1002 #ifdef _WIN64
1003  Wow64 = (ULONG_PTR)Process->Wow64Process;
1004 #else
1005  Wow64 = 0;
1006 #endif
1007  /* Release the lock */
1008  ExReleaseRundownProtection(&Process->RundownProtect);
1009  }
1010 
1011  /* Protect write with SEH */
1012  _SEH2_TRY
1013  {
1014  /* Return whether or not we have a debug port */
1015  *(PULONG_PTR)ProcessInformation = Wow64;
1016  }
1018  {
1019  /* Get exception code */
1021  }
1022  _SEH2_END;
1023 
1024  /* Dereference the process */
1026  break;
1027 
1028  case ProcessExecuteFlags:
1029 
1030  if (ProcessInformationLength != sizeof(ULONG))
1031  {
1033  break;
1034  }
1035 
1036  /* Set return length */
1037  Length = sizeof(ULONG);
1038 
1040  {
1041  return STATUS_INVALID_PARAMETER;
1042  }
1043 
1044  /* Get the options */
1045  Status = MmGetExecuteOptions(&ExecuteOptions);
1046  if (NT_SUCCESS(Status))
1047  {
1048  /* Protect write with SEH */
1049  _SEH2_TRY
1050  {
1051  /* Return them */
1052  *(PULONG)ProcessInformation = ExecuteOptions;
1053  }
1055  {
1056  /* Get exception code */
1058  }
1059  _SEH2_END;
1060  }
1061  break;
1062 
1063  case ProcessLdtInformation:
1064  DPRINT1("VDM/16-bit not implemented: %lx\n", ProcessInformationClass);
1066  break;
1067 
1069  DPRINT1("WS Watch Not implemented: %lx\n", ProcessInformationClass);
1071  break;
1072 
1074  DPRINT1("Pool limits Not implemented: %lx\n", ProcessInformationClass);
1076  break;
1077 
1078  /* Not supported by Server 2003 */
1079  default:
1080  DPRINT1("Unsupported info class: %lx\n", ProcessInformationClass);
1082  }
1083 
1084  /* Protect write with SEH */
1085  _SEH2_TRY
1086  {
1087  /* Check if caller wanted return length */
1088  if ((ReturnLength) && (Length)) *ReturnLength = Length;
1089  }
1091  {
1092  /* Get exception code */
1094  }
1095  _SEH2_END;
1096 
1097  return Status;
1098 }
LARGE_INTEGER TimeLimit
Definition: lsa.idl:292
#define KeQuerySystemTime(t)
Definition: env_spec_w32.h:570
ULONG KeMaximumIncrement
Definition: clock.c:20
#define RTL_FIELD_SIZE(type, field)
Definition: kdb_expr.c:84
IN CINT OUT PVOID IN ULONG OUT PULONG ReturnLength
Definition: dumpinfo.c:39
SIZE_T PeakVirtualSize
Definition: winternl.h:1605
INT64 NonPagedPoolLimit
Definition: lsa.idl:288
#define PAGE_SHIFT
Definition: env_spec_w32.h:45
struct _VM_COUNTERS_ * PVM_COUNTERS
_In_ ULONG _In_ ULONG _In_ ULONG Length
Definition: ntddpcm.h:101
INT64 PagefileLimit
Definition: lsa.idl:291
#define STATUS_INFO_LENGTH_MISMATCH
Definition: udferr_usr.h:133
ULONG InterruptTime
Definition: ketypes.h:740
SIZE_T PeakPagefileUsage
Definition: winternl.h:1615
#define PROCESS_QUERY_INFORMATION
Definition: pstypes.h:166
NTSTATUS NTAPI ObQueryDeviceMapInformation(_In_opt_ PEPROCESS Process, _Out_ PPROCESS_DEVICEMAP_INFORMATION DeviceMapInfo, _In_ ULONG Flags)
Definition: devicemap.c:539
NTKERNELAPI VOID FASTCALL ExReleaseRundownProtection(_Inout_ PEX_RUNDOWN_REF RunRef)
#define TRUE
Definition: types.h:120
#define STATUS_INVALID_PARAMETER
Definition: udferr_usr.h:135
uint16_t * PWSTR
Definition: typedefs.h:56
SIZE_T QuotaPagedPoolUsage
Definition: winternl.h:1611
NTSTATUS NTAPI SeLocateProcessImageName(IN PEPROCESS Process, OUT PUNICODE_STRING *ProcessImageName)
Definition: audit.c:122
struct _KERNEL_USER_TIMES KERNEL_USER_TIMES
LONG NTSTATUS
Definition: precomp.h:26
LARGE_INTEGER UserTime
Definition: winternl.h:1063
FORCEINLINE struct _KPRCB * KeGetCurrentPrcb(VOID)
Definition: ketypes.h:1079
#define ExAcquireRundownProtection
Definition: ex.h:133
SIZE_T PagefileUsage
Definition: winternl.h:1614
SIZE_T QuotaPeakPagedPoolUsage
Definition: winternl.h:1610
#define InterlockedCompareExchange
Definition: interlocked.h:104
KPROCESSOR_MODE NTAPI ExGetPreviousMode(VOID)
Definition: sysinfo.c:3070
SIZE_T VirtualSize
Definition: winternl.h:1606
IO_COUNTERS IoInfo
Definition: ke.h:48
static __inline NTSTATUS DefaultQueryInfoBufferCheck(ULONG Class, const INFORMATION_CLASS_INFO *ClassList, ULONG ClassListEntries, PVOID Buffer, ULONG BufferLength, PULONG ReturnLength, PULONG_PTR ReturnLengthPtr, KPROCESSOR_MODE PreviousMode, BOOLEAN CompleteProbing)
Definition: probe.h:59
_SEH2_TRY
Definition: create.c:4226
SIZE_T QuotaPeakNonPagedPoolUsage
Definition: winternl.h:1612
uint32_t ULONG_PTR
Definition: typedefs.h:65
LARGE_INTEGER ExitTime
Definition: winternl.h:1061
ULONG PageFaultCount
Definition: winternl.h:1607
struct _QUOTA_LIMITS QUOTA_LIMITS
return STATUS_NOT_IMPLEMENTED
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:494
VOID NTAPI MmGetImageInformation(OUT PSECTION_IMAGE_INFORMATION ImageInformation)
Definition: section.c:1808
#define FALSE
Definition: types.h:117
long LONG
Definition: pedump.c:60
EPROCESS_QUOTA_BLOCK PspDefaultQuotaBlock
Definition: quota.c:17
INT64 PagedPoolLimit
Definition: lsa.idl:287
ULONG NTAPI ObGetProcessHandleCount(IN PEPROCESS Process)
Definition: obhandle.c:58
struct _QUOTA_LIMITS * PQUOTA_LIMITS
#define PsGetCurrentProcess
Definition: psfuncs.h:17
struct _PROCESS_PRIORITY_CLASS PROCESS_PRIORITY_CLASS
NTSTATUS NTAPI MmGetExecuteOptions(IN PULONG ExecuteOptions)
Definition: pagfault.c:2572
struct _OBJECT_NAME_INFORMATION OBJECT_NAME_INFORMATION
SIZE_T QuotaNonPagedPoolUsage
Definition: winternl.h:1613
struct _KERNEL_USER_TIMES * PKERNEL_USER_TIMES
NTSTATUS NTAPI DbgkOpenProcessDebugPort(IN PEPROCESS Process, IN KPROCESSOR_MODE PreviousMode, OUT HANDLE *DebugHandle)
Definition: dbgkobj.c:1526
ULONG_PTR InheritedFromUniqueProcessId
Definition: pstypes.h:340
#define NtCurrentProcess()
Definition: nt_native.h:1657
_Out_ PULONG UserTime
Definition: kefuncs.h:771
Status
Definition: gdiplustypes.h:24
int64_t LONGLONG
Definition: typedefs.h:68
_In_ KPROCESSOR_MODE PreviousMode
Definition: sefuncs.h:103
struct _PROCESS_SESSION_INFORMATION * PPROCESS_SESSION_INFORMATION
_Must_inspect_result_ _In_ ULONG Flags
Definition: wsk.h:170
VOID NTAPI KeQueryValuesProcess(IN PKPROCESS Process, PPROCESS_VALUES Values)
Definition: procobj.c:525
#define NT_SUCCESS(StatCode)
Definition: apphelp.c:32
#define EXCEPTION_EXECUTE_HANDLER
Definition: excpt.h:85
LARGE_INTEGER CreateTime
Definition: winternl.h:1060
_In_opt_ PVOID _Out_ PLARGE_INTEGER Cookie
Definition: cmfuncs.h:13
#define ObDereferenceObject
Definition: obfuncs.h:203
PVOID HANDLE
Definition: typedefs.h:73
ULONG KeSystemCalls
Definition: ketypes.h:651
BOOL Query(LPCTSTR *ServiceArgs, DWORD ArgCount, BOOL bExtended)
Definition: query.c:292
CCHAR KPROCESSOR_MODE
Definition: ketypes.h:7
struct _SECTION_IMAGE_INFORMATION SECTION_IMAGE_INFORMATION
struct _PROCESS_BASIC_INFORMATION * PPROCESS_BASIC_INFORMATION
struct _PROCESS_PRIORITY_CLASS * PPROCESS_PRIORITY_CLASS
static const char * ImageName
Definition: image.c:34
#define STATUS_INVALID_INFO_CLASS
Definition: ntstatus.h:240
#define PROCESS_LUID_DOSDEVICES_ONLY
Definition: pstypes.h:228
PVOID *typedef PHANDLE
Definition: ntsecpkg.h:454
ULONG LowPart
Definition: typedefs.h:106
INT64 MinimumWorkingSetSize
Definition: lsa.idl:289
#define MAXULONG
Definition: typedefs.h:251
ULONG_PTR SIZE_T
Definition: typedefs.h:80
SIZE_T WorkingSetSize
Definition: winternl.h:1609
_SEH2_END
Definition: create.c:4400
struct _PROCESS_SESSION_INFORMATION PROCESS_SESSION_INFORMATION
#define RTL_NUMBER_OF(x)
Definition: RtlRegistry.c:12
ULONG NTAPI KeQueryRuntimeProcess(IN PKPROCESS Process, OUT PULONG UserTime)
Definition: procobj.c:860
unsigned int * PULONG
Definition: retypes.h:1
#define NULL
Definition: types.h:112
INT64 MaximumWorkingSetSize
Definition: lsa.idl:290
UNICODE_STRING * PUNICODE_STRING
Definition: env_spec_w32.h:373
struct _IO_COUNTERS IO_COUNTERS
#define DPRINT1
Definition: precomp.h:8
_Must_inspect_result_ _In_ PLARGE_INTEGER _In_ PLARGE_INTEGER _In_ ULONG _In_ PFILE_OBJECT _In_ PVOID Process
Definition: fsrtlfuncs.h:219
unsigned int ULONG
Definition: retypes.h:1
ULONG NTAPI PsGetProcessSessionId(IN PEPROCESS Process)
Definition: process.c:1163
#define ULONG_PTR
Definition: config.h:101
uint32_t * PULONG_PTR
Definition: typedefs.h:65
#define RtlCopyMemory(Destination, Source, Length)
Definition: typedefs.h:263
#define _SEH2_EXCEPT(...)
Definition: pseh2_64.h:40
#define TAG_SEPA
Definition: tag.h:191
#define STATUS_SUCCESS
Definition: shellext.h:65
SIZE_T PeakWorkingSetSize
Definition: winternl.h:1608
#define _SEH2_GetExceptionCode()
Definition: pseh2_64.h:165
#define _SEH2_YIELD(__stmt)
Definition: pseh2_64.h:168
struct _PROCESS_BASIC_INFORMATION PROCESS_BASIC_INFORMATION
_In_ HANDLE ProcessHandle
Definition: mmfuncs.h:403
#define ExFreePoolWithTag(_P, _T)
Definition: module.h:1099
ULONG NTAPI ObIsLUIDDeviceMapsEnabled(VOID)
Definition: devicemap.c:662
LARGE_INTEGER KernelTime
Definition: winternl.h:1062
POBJECT_TYPE PsProcessType
Definition: process.c:20
static const INFORMATION_CLASS_INFO PsProcessInfoClass[]
Definition: ps_i.h:15
LONGLONG QuadPart
Definition: typedefs.h:114
struct _LARGE_INTEGER::@2252 u
#define PAGED_CODE()
struct _IO_COUNTERS * PIO_COUNTERS

◆ NtQueryInformationThread()

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

◆ 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 }
Definition: pdh_main.c:93
#define STATUS_INVALID_PARAMETER
Definition: udferr_usr.h:135
char CHAR
Definition: xmlstorage.h:175
const WCHAR * str
#define STATUS_ACCESS_VIOLATION
Definition: ntstatus.h:242
#define NULL
Definition: types.h:112
unsigned int ULONG
Definition: retypes.h:1
#define STATUS_SUCCESS
Definition: shellext.h:65

◆ 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 465 of file winternl.h.

◆ ObjectInformationLength

_In_ OBJECT_INFORMATION_CLASS _In_ ULONG ObjectInformationLength

Definition at line 467 of file winternl.h.

◆ ReturnLength

Definition at line 467 of file winternl.h.