2 * PROJECT: ReactOS Native Headers
3 * FILE: include/ndk/zwtypes.h
4 * PURPOSE: Defintions for Native Types not defined in DDK/IFS
5 * PROGRAMMER: Alex Ionescu (alex@relsoft.net)
12 /* DEPENDENCIES **************************************************************/
15 /* EXPORTED DATA *************************************************************/
17 /* CONSTANTS *****************************************************************/
19 /* ENUMERATIONS **************************************************************/
21 typedef enum _PLUGPLAY_BUS_CLASS
26 } PLUGPLAY_BUS_CLASS
, *PPLUGPLAY_BUS_CLASS
;
28 typedef enum _PLUGPLAY_VIRTUAL_BUS_TYPE
31 MaxPlugPlayVirtualBusType
32 } PLUGPLAY_VIRTUAL_BUS_TYPE
, *PPLUGPLAY_VIRTUAL_BUS_TYPE
;
34 /**** Information Classes ****/
38 typedef enum _SYSTEM_INFORMATION_CLASS
40 SystemBasicInformation
,
41 SystemProcessorInformation
,
42 SystemPerformanceInformation
,
43 SystemTimeOfDayInformation
,
44 SystemPathInformation
, /* OBSOLETE: USE KUSER_SHARED_DATA */
45 SystemProcessInformation
,
46 SystemCallCountInformation
,
47 SystemDeviceInformation
,
48 SystemProcessorPerformanceInformation
,
49 SystemFlagsInformation
,
50 SystemCallTimeInformation
,
51 SystemModuleInformation
,
52 SystemLocksInformation
,
53 SystemStackTraceInformation
,
54 SystemPagedPoolInformation
,
55 SystemNonPagedPoolInformation
,
56 SystemHandleInformation
,
57 SystemObjectInformation
,
58 SystemPageFileInformation
,
59 SystemVdmInstemulInformation
,
60 SystemVdmBopInformation
,
61 SystemFileCacheInformation
,
62 SystemPoolTagInformation
,
63 SystemInterruptInformation
,
64 SystemDpcBehaviorInformation
,
65 SystemFullMemoryInformation
,
66 SystemLoadGdiDriverInformation
,
67 SystemUnloadGdiDriverInformation
,
68 SystemTimeAdjustmentInformation
,
69 SystemSummaryMemoryInformation
,
70 SystemNextEventIdInformation
,
71 SystemEventIdsInformation
,
72 SystemCrashDumpInformation
,
73 SystemExceptionInformation
,
74 SystemCrashDumpStateInformation
,
75 SystemKernelDebuggerInformation
,
76 SystemContextSwitchInformation
,
77 SystemRegistryQuotaInformation
,
78 SystemExtendServiceTableInformation
,
79 SystemPrioritySeperation
,
80 SystemPlugPlayBusInformation
,
81 SystemDockInformation
,
82 SystemPowerInformation
,
83 SystemProcessorSpeedInformation
,
84 SystemCurrentTimeZoneInformation
,
85 SystemLookasideInformation
,
86 SystemTimeSlipNotification
,
89 SystemSessionInformation
,
90 SystemRangeStartInformation
,
91 SystemVerifierInformation
,
93 SystemSessionProcessesInformation
,
94 SystemInformationClassMax
95 } SYSTEM_INFORMATION_CLASS
;
100 typedef enum _OBJECT_INFORMATION_CLASS
102 ObjectBasicInformation
,
103 ObjectNameInformation
,
104 ObjectTypeInformation
,
105 ObjectAllTypesInformation
,
106 ObjectHandleInformation
107 } OBJECT_INFORMATION_CLASS
;
112 typedef enum _MEMORY_INFORMATION_CLASS
114 MemoryBasicInformation
,
115 MemoryWorkingSetList
,
117 MemoryBasicVlmInformation
118 } MEMORY_INFORMATION_CLASS
;
123 typedef enum _MUTANT_INFORMATION_CLASS
125 MutantBasicInformation
126 } MUTANT_INFORMATION_CLASS
;
131 typedef enum _ATOM_INFORMATION_CLASS
133 AtomBasicInformation
,
134 AtomTableInformation
,
135 } ATOM_INFORMATION_CLASS
;
140 typedef enum _SECTION_INFORMATION_CLASS
142 SectionBasicInformation
,
143 SectionImageInformation
,
144 } SECTION_INFORMATION_CLASS
;
149 typedef enum _TIMER_INFORMATION_CLASS
{
150 TimerBasicInformation
151 } TIMER_INFORMATION_CLASS
;
156 typedef enum _SEMAPHORE_INFORMATION_CLASS
158 SemaphoreBasicInformation
159 } SEMAPHORE_INFORMATION_CLASS
;
164 typedef enum _EVENT_INFORMATION_CLASS
166 EventBasicInformation
167 } EVENT_INFORMATION_CLASS
;
172 typedef enum _IO_COMPLETION_INFORMATION_CLASS
174 IoCompletionBasicInformation
175 } IO_COMPLETION_INFORMATION_CLASS
;
177 /* TYPES *********************************************************************/
179 typedef unsigned short LANGID
;
180 typedef LANGID
*PLANGID
;
182 /**** Information Structures ****/
188 typedef struct _MUTANT_BASIC_INFORMATION
191 BOOLEAN OwnedbyCalled
;
192 BOOLEAN AbandonedState
;
193 } MUTANT_BASIC_INFORMATION
, *PMUTANT_BASIC_INFORMATION
;
200 typedef struct _THREAD_BASIC_INFORMATION
203 PVOID TebBaseAddress
;
205 KAFFINITY AffinityMask
;
207 KPRIORITY BasePriority
;
208 } THREAD_BASIC_INFORMATION
, *PTHREAD_BASIC_INFORMATION
;
215 typedef struct _ATOM_BASIC_INFORMATION
{
220 } ATOM_BASIC_INFORMATION
, *PATOM_BASIC_INFORMATION
;
223 typedef struct _ATOM_TABLE_INFORMATION
227 } ATOM_TABLE_INFORMATION
, *PATOM_TABLE_INFORMATION
;
234 typedef struct _MEMORY_WORKING_SET_LIST
237 ULONG WorkingSetList
[1];
238 } MEMORY_WORKING_SET_LIST
, *PMEMORY_WORKING_SET_LIST
;
242 UNICODE_STRING SectionFileName
;
243 WCHAR NameBuffer
[ANYSIZE_ARRAY
];
244 } MEMORY_SECTION_NAME
, *PMEMORY_SECTION_NAME
;
251 typedef struct _SECTION_BASIC_INFORMATION
256 } SECTION_BASIC_INFORMATION
, *PSECTION_BASIC_INFORMATION
;
259 typedef struct _SECTION_IMAGE_INFORMATION
263 ULONG_PTR StackReserve
;
264 ULONG_PTR StackCommit
;
266 USHORT MinorSubsystemVersion
;
267 USHORT MajorSubsystemVersion
;
269 ULONG Characteristics
;
274 } SECTION_IMAGE_INFORMATION
, *PSECTION_IMAGE_INFORMATION
;
281 typedef struct _OBJECT_HANDLE_ATTRIBUTE_INFORMATION
284 BOOLEAN ProtectFromClose
;
285 } OBJECT_HANDLE_ATTRIBUTE_INFORMATION
, *POBJECT_HANDLE_ATTRIBUTE_INFORMATION
;
292 typedef struct _TIMER_BASIC_INFORMATION
294 LARGE_INTEGER TimeRemaining
;
296 } TIMER_BASIC_INFORMATION
, *PTIMER_BASIC_INFORMATION
;
303 typedef struct _SEMAPHORE_BASIC_INFORMATION
{
306 } SEMAPHORE_BASIC_INFORMATION
, *PSEMAPHORE_BASIC_INFORMATION
;
312 typedef struct _EVENT_BASIC_INFORMATION
314 EVENT_TYPE EventType
;
316 } EVENT_BASIC_INFORMATION
, *PEVENT_BASIC_INFORMATION
;
323 typedef struct _SYSTEM_BASIC_INFORMATION
326 ULONG TimerResolution
;
328 ULONG NumberOfPhysicalPages
;
329 ULONG LowestPhysicalPageNumber
;
330 ULONG HighestPhysicalPageNumber
;
331 ULONG AllocationGranularity
;
332 ULONG MinimumUserModeAddress
;
333 ULONG MaximumUserModeAddress
;
334 KAFFINITY ActiveProcessorsAffinityMask
;
335 CCHAR NumberOfProcessors
;
336 } SYSTEM_BASIC_INFORMATION
, *PSYSTEM_BASIC_INFORMATION
;
339 typedef struct _SYSTEM_PROCESSOR_INFORMATION
{
340 USHORT ProcessorArchitecture
;
341 USHORT ProcessorLevel
;
342 USHORT ProcessorRevision
;
344 ULONG ProcessorFeatureBits
;
345 } SYSTEM_PROCESSOR_INFORMATION
, *PSYSTEM_PROCESSOR_INFORMATION
;
348 typedef struct _SYSTEM_PERFORMANCE_INFORMATION
350 LARGE_INTEGER IdleProcessTime
;
351 LARGE_INTEGER IoReadTransferCount
;
352 LARGE_INTEGER IoWriteTransferCount
;
353 LARGE_INTEGER IoOtherTransferCount
;
354 ULONG IoReadOperationCount
;
355 ULONG IoWriteOperationCount
;
356 ULONG IoOtherOperationCount
;
357 ULONG AvailablePages
;
358 ULONG CommittedPages
;
360 ULONG PeakCommitment
;
361 ULONG PageFaultCount
;
362 ULONG CopyOnWriteCount
;
363 ULONG TransitionCount
;
364 ULONG CacheTransitionCount
;
365 ULONG DemandZeroCount
;
367 ULONG PageReadIoCount
;
368 ULONG CacheReadCount
;
370 ULONG DirtyPagesWriteCount
;
371 ULONG DirtyWriteIoCount
;
372 ULONG MappedPagesWriteCount
;
373 ULONG MappedWriteIoCount
;
374 ULONG PagedPoolPages
;
375 ULONG NonPagedPoolPages
;
376 ULONG PagedPoolAllocs
;
377 ULONG PagedPoolFrees
;
378 ULONG NonPagedPoolAllocs
;
379 ULONG NonPagedPoolFrees
;
380 ULONG FreeSystemPtes
;
381 ULONG ResidentSystemCodePage
;
382 ULONG TotalSystemDriverPages
;
383 ULONG TotalSystemCodePages
;
384 ULONG NonPagedPoolLookasideHits
;
385 ULONG PagedPoolLookasideHits
;
387 ULONG ResidentSystemCachePage
;
388 ULONG ResidentPagedPoolPage
;
389 ULONG ResidentSystemDriverPage
;
390 ULONG CcFastReadNoWait
;
391 ULONG CcFastReadWait
;
392 ULONG CcFastReadResourceMiss
;
393 ULONG CcFastReadNotPossible
;
394 ULONG CcFastMdlReadNoWait
;
395 ULONG CcFastMdlReadWait
;
396 ULONG CcFastMdlReadResourceMiss
;
397 ULONG CcFastMdlReadNotPossible
;
398 ULONG CcMapDataNoWait
;
400 ULONG CcMapDataNoWaitMiss
;
401 ULONG CcMapDataWaitMiss
;
402 ULONG CcPinMappedDataCount
;
403 ULONG CcPinReadNoWait
;
405 ULONG CcPinReadNoWaitMiss
;
406 ULONG CcPinReadWaitMiss
;
407 ULONG CcCopyReadNoWait
;
408 ULONG CcCopyReadWait
;
409 ULONG CcCopyReadNoWaitMiss
;
410 ULONG CcCopyReadWaitMiss
;
411 ULONG CcMdlReadNoWait
;
413 ULONG CcMdlReadNoWaitMiss
;
414 ULONG CcMdlReadWaitMiss
;
415 ULONG CcReadAheadIos
;
416 ULONG CcLazyWriteIos
;
417 ULONG CcLazyWritePages
;
420 ULONG ContextSwitches
;
421 ULONG FirstLevelTbFills
;
422 ULONG SecondLevelTbFills
;
424 } SYSTEM_PERFORMANCE_INFORMATION
, *PSYSTEM_PERFORMANCE_INFORMATION
;
427 typedef struct _SYSTEM_TIMEOFDAY_INFORMATION
{
428 LARGE_INTEGER BootTime
;
429 LARGE_INTEGER CurrentTime
;
430 LARGE_INTEGER TimeZoneBias
;
433 } SYSTEM_TIMEOFDAY_INFORMATION
, *PSYSTEM_TIMEOFDAY_INFORMATION
;
436 /* This class is obsoleted, please use KUSER_SHARED_DATA instead */
439 typedef struct _SYSTEM_THREAD_INFORMATION
441 LARGE_INTEGER KernelTime
;
442 LARGE_INTEGER UserTime
;
443 LARGE_INTEGER CreateTime
;
449 ULONG ContextSwitches
;
452 } SYSTEM_THREAD_INFORMATION
, *PSYSTEM_THREAD_INFORMATION
;
453 typedef struct _SYSTEM_PROCESS_INFORMATION
455 ULONG NextEntryOffset
;
456 ULONG NumberOfThreads
;
457 LARGE_INTEGER SpareLi1
;
458 LARGE_INTEGER SpareLi2
;
459 LARGE_INTEGER SpareLi3
;
460 LARGE_INTEGER CreateTime
;
461 LARGE_INTEGER UserTime
;
462 LARGE_INTEGER KernelTime
;
463 UNICODE_STRING ImageName
;
464 KPRIORITY BasePriority
;
465 HANDLE UniqueProcessId
;
466 HANDLE InheritedFromUniqueProcessId
;
469 ULONG PageDirectoryFrame
;
472 * This part corresponds to VM_COUNTERS_EX.
473 * NOTE: *NOT* THE SAME AS VM_COUNTERS!
475 ULONG PeakVirtualSize
;
477 ULONG PageFaultCount
;
478 ULONG PeakWorkingSetSize
;
479 ULONG WorkingSetSize
;
480 ULONG QuotaPeakPagedPoolUsage
;
481 ULONG QuotaPagedPoolUsage
;
482 ULONG QuotaPeakNonPagedPoolUsage
;
483 ULONG QuotaNonPagedPoolUsage
;
485 ULONG PeakPagefileUsage
;
488 /* This part corresponds to IO_COUNTERS */
489 LARGE_INTEGER ReadOperationCount
;
490 LARGE_INTEGER WriteOperationCount
;
491 LARGE_INTEGER OtherOperationCount
;
492 LARGE_INTEGER ReadTransferCount
;
493 LARGE_INTEGER WriteTransferCount
;
494 LARGE_INTEGER OtherTransferCount
;
496 /* Finally, the array of Threads */
497 SYSTEM_THREAD_INFORMATION TH
[1];
498 } SYSTEM_PROCESS_INFORMATION
, *PSYSTEM_PROCESS_INFORMATION
;
501 typedef struct _SYSTEM_CALL_COUNT_INFORMATION
504 ULONG NumberOfTables
;
505 } SYSTEM_CALL_COUNT_INFORMATION
, *PSYSTEM_CALL_COUNT_INFORMATION
;
508 typedef struct _SYSTEM_DEVICE_INFORMATION
{
510 ULONG NumberOfFloppies
;
511 ULONG NumberOfCdRoms
;
513 ULONG NumberOfSerialPorts
;
514 ULONG NumberOfParallelPorts
;
515 } SYSTEM_DEVICE_INFORMATION
, *PSYSTEM_DEVICE_INFORMATION
;
518 typedef struct _SYSTEM_PROCESSOR_PERFORMANCE_INFORMATION
520 LARGE_INTEGER IdleTime
;
521 LARGE_INTEGER KernelTime
;
522 LARGE_INTEGER UserTime
;
523 LARGE_INTEGER DpcTime
;
524 LARGE_INTEGER InterruptTime
;
525 ULONG InterruptCount
;
526 } SYSTEM_PROCESSOR_PERFORMANCE_INFORMATION
,
529 typedef struct _SYSTEM_FLAGS_INFORMATION
532 } SYSTEM_FLAGS_INFORMATION
, *PSYSTEM_FLAGS_INFORMATION
;
535 typedef struct _SYSTEM_CALL_TIME_INFORMATION
539 LARGE_INTEGER TimeOfCalls
[1];
540 } SYSTEM_CALL_TIME_INFORMATION
, *PSYSTEM_CALL_TIME_INFORMATION
;
543 typedef struct _SYSTEM_MODULE_INFORMATION_ENTRY
555 } SYSTEM_MODULE_INFORMATION_ENTRY
, *PSYSTEM_MODULE_INFORMATION_ENTRY
;
556 typedef struct _SYSTEM_MODULE_INFORMATION
559 SYSTEM_MODULE_INFORMATION_ENTRY Module
[1];
560 } SYSTEM_MODULE_INFORMATION
, *PSYSTEM_MODULE_INFORMATION
;
563 typedef struct _SYSTEM_RESOURCE_LOCK_ENTRY
565 ULONG ResourceAddress
;
569 ULONG ContentionCount
;
571 ULONG NumberOfSharedWaiters
;
572 ULONG NumberOfExclusiveWaiters
;
573 } SYSTEM_RESOURCE_LOCK_ENTRY
, *PSYSTEM_RESOURCE_LOCK_ENTRY
;
574 typedef struct _SYSTEM_RESOURCE_LOCK_INFO
577 SYSTEM_RESOURCE_LOCK_ENTRY Lock
[1];
578 } SYSTEM_RESOURCE_LOCK_INFO
, *PSYSTEM_RESOURCE_LOCK_INFO
;
581 typedef struct _SYSTEM_BACKTRACE_INFORMATION_ENTRY
584 } SYSTEM_BACKTRACE_INFORMATION_ENTRY
, *PSYSTEM_BACKTRACE_INFORMATION_ENTRY
;
585 typedef struct _SYSTEM_BACKTRACE_INFORMATION
590 SYSTEM_BACKTRACE_INFORMATION_ENTRY Trace
[1];
591 } SYSTEM_BACKTRACE_INFORMATION
, *PSYSTEM_BACKTRACE_INFORMATION
;
594 typedef struct _SYSTEM_POOL_ENTRY
598 USHORT AllocatorBackTraceIndex
;
603 PVOID ProcessChargedQuota
;
605 } SYSTEM_POOL_ENTRY
, *PSYSTEM_POOL_ENTRY
;
606 typedef struct _SYSTEM_POOL_INFORMATION
610 USHORT EntryOverhead
;
611 BOOLEAN PoolTagPresent
;
613 ULONG NumberOfEntries
;
614 SYSTEM_POOL_ENTRY Entries
[1];
615 } SYSTEM_POOL_INFORMATION
, *PSYSTEM_POOL_INFORMATION
;
618 typedef struct _SYSTEM_HANDLE_TABLE_ENTRY_INFO
620 USHORT UniqueProcessId
;
621 USHORT CreatorBackTraceIndex
;
622 UCHAR ObjectTypeIndex
;
623 UCHAR HandleAttributes
;
627 } SYSTEM_HANDLE_TABLE_ENTRY_INFO
, *PSYSTEM_HANDLE_TABLE_ENTRY_INFO
;
628 typedef struct _SYSTEM_HANDLE_INFORMATION
630 ULONG NumberOfHandles
;
631 SYSTEM_HANDLE_TABLE_ENTRY_INFO Handles
[1];
632 } SYSTEM_HANDLE_INFORMATION
, *PSYSTEM_HANDLE_INFORMATION
;
635 typedef struct _SYSTEM_OBJECTTYPE_INFORMATION
637 ULONG NextEntryOffset
;
638 ULONG NumberOfObjects
;
639 ULONG NumberOfHandles
;
641 ULONG InvalidAttributes
;
642 GENERIC_MAPPING GenericMapping
;
643 ULONG ValidAccessMask
;
645 BOOLEAN SecurityRequired
;
646 BOOLEAN WaitableObject
;
647 UNICODE_STRING TypeName
;
648 } SYSTEM_OBJECTTYPE_INFORMATION
, *PSYSTEM_OBJECTTYPE_INFORMATION
;
649 typedef struct _SYSTEM_OBJECT_INFORMATION
651 ULONG NextEntryOffset
;
653 HANDLE CreatorUniqueProcess
;
654 USHORT CreatorBackTraceIndex
;
658 ULONG PagedPoolCharge
;
659 ULONG NonPagedPoolCharge
;
660 HANDLE ExclusiveProcessId
;
661 PVOID SecurityDescriptor
;
662 OBJECT_NAME_INFORMATION NameInfo
;
663 } SYSTEM_OBJECT_INFORMATION
, *PSYSTEM_OBJECT_INFORMATION
;
666 typedef struct _SYSTEM_PAGEFILE_INFORMATION
668 ULONG NextEntryOffset
;
672 UNICODE_STRING PageFileName
;
673 } SYSTEM_PAGEFILE_INFORMATION
, *PSYSTEM_PAGEFILE_INFORMATION
;
676 typedef struct _SYSTEM_VDM_INSTEMUL_INFO
678 ULONG SegmentNotPresent
;
680 ULONG OpcodeESPrefix
;
681 ULONG OpcodeCSPrefix
;
682 ULONG OpcodeSSPrefix
;
683 ULONG OpcodeDSPrefix
;
684 ULONG OpcodeFSPrefix
;
685 ULONG OpcodeGSPrefix
;
686 ULONG OpcodeOPER32Prefix
;
687 ULONG OpcodeADDR32Prefix
;
700 ULONG OpcodeOUTWimm
;
705 ULONG OpcodeLOCKPrefix
;
706 ULONG OpcodeREPNEPrefix
;
707 ULONG OpcodeREPPrefix
;
712 } SYSTEM_VDM_INSTEMUL_INFO
, *PSYSTEM_VDM_INSTEMUL_INFO
;
715 typedef struct _SYSTEM_VDM_BOP_INFO
721 typedef struct _SYSTEM_CACHE_INFORMATION
725 ULONG PageFaultCount
;
726 ULONG MinimumWorkingSet
;
727 ULONG MaximumWorkingSet
;
728 ULONG CurrentSizeIncludingTransitionInPages
;
729 ULONG PeakSizeIncludingTransitionInPages
;
731 } SYSTEM_CACHE_INFORMATION
;
734 typedef struct _SYSTEM_POOLTAG
744 ULONG NonPagedAllocs
;
747 } SYSTEM_POOLTAG
, *PSYSTEM_POOLTAG
;
748 typedef struct _SYSTEM_POOLTAG_INFORMATION
751 SYSTEM_POOLTAG TagInfo
[1];
752 } SYSTEM_POOLTAG_INFORMATION
, *PSYSTEM_POOLTAG_INFORMATION
;
755 typedef struct _SYSTEM_INTERRUPT_INFORMATION
757 ULONG ContextSwitches
;
761 ULONG DpcBypassCount
;
762 ULONG ApcBypassCount
;
763 } SYSTEM_INTERRUPT_INFORMATION
, *PSYSTEM_INTERRUPT_INFORMATION
;
766 typedef struct _SYSTEM_DPC_BEHAVIOR_INFORMATION
770 ULONG MinimumDpcRate
;
771 ULONG AdjustDpcThreshold
;
773 } SYSTEM_DPC_BEHAVIOR_INFORMATION
, *PSYSTEM_DPC_BEHAVIOR_INFORMATION
;
776 typedef struct _SYSTEM_MEMORY_INFO
780 USHORT TransitionCount
;
781 USHORT ModifiedCount
;
782 USHORT PageTableCount
;
783 } SYSTEM_MEMORY_INFO
, *PSYSTEM_MEMORY_INFO
;
784 typedef struct _SYSTEM_MEMORY_INFORMATION
788 SYSTEM_MEMORY_INFO Memory
[1];
789 } SYSTEM_MEMORY_INFORMATION
, *PSYSTEM_MEMORY_INFORMATION
;
792 typedef struct _SYSTEM_GDI_DRIVER_INFORMATION
{
793 UNICODE_STRING DriverName
;
795 PVOID SectionPointer
;
797 PIMAGE_EXPORT_DIRECTORY ExportSectionPointer
;
798 } SYSTEM_GDI_DRIVER_INFORMATION
, *PSYSTEM_GDI_DRIVER_INFORMATION
;
801 /* Not an actuall class, simply a PVOID to the ImageAddress */
804 typedef struct _SYSTEM_QUERY_TIME_ADJUST_INFORMATION
806 ULONG TimeAdjustment
;
809 } SYSTEM_QUERY_TIME_ADJUST_INFORMATION
, *PSYSTEM_QUERY_TIME_ADJUST_INFORMATION
;
810 typedef struct _SYSTEM_SET_TIME_ADJUST_INFORMATION
812 ULONG TimeAdjustment
;
814 } SYSTEM_SET_TIME_ADJUST_INFORMATION
, *PSYSTEM_SET_TIME_ADJUST_INFORMATION
;
816 /* Class 29 - Same as 25 */
822 typedef struct _SYSTEM_CRASH_DUMP_INFORMATION
824 HANDLE CrashDumpSection
;
825 } SYSTEM_CRASH_DUMP_INFORMATION
, *PSYSTEM_CRASH_DUMP_INFORMATION
;
828 typedef struct _SYSTEM_EXCEPTION_INFORMATION
830 ULONG AlignmentFixupCount
;
831 ULONG ExceptionDispatchCount
;
832 ULONG FloatingEmulationCount
;
833 ULONG ByteWordEmulationCount
;
834 } SYSTEM_EXCEPTION_INFORMATION
, *PSYSTEM_EXCEPTION_INFORMATION
;
837 typedef struct _SYSTEM_CRASH_STATE_INFORMATION
839 ULONG ValidCrashDump
;
840 } SYSTEM_CRASH_STATE_INFORMATION
, *PSYSTEM_CRASH_STATE_INFORMATION
;
843 typedef struct _SYSTEM_KERNEL_DEBUGGER_INFORMATION
845 BOOLEAN KernelDebuggerEnabled
;
846 BOOLEAN KernelDebuggerNotPresent
;
847 } SYSTEM_KERNEL_DEBUGGER_INFORMATION
, *PSYSTEM_KERNEL_DEBUGGER_INFORMATION
;
850 typedef struct _SYSTEM_CONTEXT_SWITCH_INFORMATION
{
851 ULONG ContextSwitches
;
860 ULONG PreemptCurrent
;
863 } SYSTEM_CONTEXT_SWITCH_INFORMATION
, *PSYSTEM_CONTEXT_SWITCH_INFORMATION
;
866 typedef struct _SYSTEM_REGISTRY_QUOTA_INFORMATION
868 ULONG RegistryQuotaAllowed
;
869 ULONG RegistryQuotaUsed
;
871 } SYSTEM_REGISTRY_QUOTA_INFORMATION
, *PSYSTEM_REGISTRY_QUOTA_INFORMATION
;
874 /* Not a structure, simply send the UNICODE_STRING */
877 /* Not a structure, simply send a ULONG containing the new separation */
880 typedef struct _PLUGPLAY_BUS_TYPE
882 PLUGPLAY_BUS_CLASS BusClass
;
885 INTERFACE_TYPE SystemBusType
;
886 PLUGPLAY_VIRTUAL_BUS_TYPE PlugPlayVirtualBusType
;
888 } PLUGPLAY_BUS_TYPE
, *PPLUGPLAY_BUS_TYPE
;
889 typedef struct _PLUGPLAY_BUS_INSTANCE
891 PLUGPLAY_BUS_TYPE BusType
;
893 WCHAR BusName
[MAX_BUS_NAME
];
894 } PLUGPLAY_BUS_INSTANCE
, *PPLUGPLAY_BUS_INSTANCE
;
895 typedef struct _SYSTEM_PLUGPLAY_BUS_INFORMATION
898 PLUGPLAY_BUS_INSTANCE BusInstance
[1];
899 } SYSTEM_PLUGPLAY_BUS_INFORMATION
, *PSYSTEM_PLUGPLAY_BUS_INFORMATION
;
902 typedef struct _SYSTEM_DOCK_INFORMATION
904 SYSTEM_DOCK_STATE DockState
;
905 INTERFACE_TYPE DeviceBusType
;
906 ULONG DeviceBusNumber
;
908 } SYSTEM_DOCK_INFORMATION
, *PSYSTEM_DOCK_INFORMATION
;
911 typedef struct _SYSTEM_POWER_INFORMATION
913 BOOLEAN SystemSuspendSupported
;
914 BOOLEAN SystemHibernateSupported
;
915 BOOLEAN ResumeTimerSupportsSuspend
;
916 BOOLEAN ResumeTimerSupportsHibernate
;
917 BOOLEAN LidSupported
;
918 BOOLEAN TurboSettingSupported
;
920 BOOLEAN SystemAcOrDc
;
921 BOOLEAN PowerDownDisabled
;
922 LARGE_INTEGER SpindownDrives
;
923 } SYSTEM_POWER_INFORMATION
, *PSYSTEM_POWER_INFORMATION
;
926 typedef struct _SYSTEM_LEGACY_DRIVER_INFORMATION
928 PNP_VETO_TYPE VetoType
;
929 UNCODE_STRING VetoDriver
;
931 } SYSTEM_PROCESSOR_SPEED_INFORMATION
, *PSYSTEM_PROCESSOR_SPEED_INFORMATION
;
934 typedef TIME_ZONE_INFORMATION RTL_TIME_ZONE_INFORMATION
;
937 typedef struct _SYSTEM_LOOKASIDE_INFORMATION
941 ULONG TotalAllocates
;
942 ULONG AllocateMisses
;
948 } SYSTEM_LOOKASIDE_INFORMATION
, *PSYSTEM_LOOKASIDE_INFORMATION
;
951 /* Not a structure. Only a HANDLE for the SlipEvent;
954 /* Not a structure. Only a ULONG for the SessionId;
957 /* Not a structure. Only a ULONG for the SessionId;
963 /* Not a structure. Only a ULONG_PTR for the SystemRangeStart */
966 /* FIXME. Based on MM_DRIVER_VERIFIER_DATA */
972 typedef struct _SYSTEM_SESSION_PROCESSES_INFORMATION
976 PVOID Buffer
; /* same format as in SystemProcessInformation */
977 } SYSTEM_SESSION_PROCESSES_INFORMATION
, * PSYSTEM_SESSION_PROCESSES_INFORMATION
;