1 #ifndef __INCLUDE_DDK_ZWTYPES_H
2 #define __INCLUDE_DDK_ZWTYPES_H
4 typedef enum _DEBUG_CONTROL_CODE
6 DebugGetTraceInformation
= 1,
7 DebugSetInternalBreakpoint
,
9 DebugClearSpecialCalls
,
10 DebugQuerySpecialCalls
,
14 typedef enum _KPROFILE_SOURCE
19 #define NtCurrentProcess() ( (HANDLE) 0xFFFFFFFF )
20 #define NtCurrentThread() ( (HANDLE) 0xFFFFFFFE )
23 extern ULONG EXPORTED NtBuildNumber
;
25 extern ULONG IMPORTED NtBuildNumber
;
31 #define EVENT_READ_ACCESS 1
32 #define EVENT_WRITE_ACCESS 2
35 // file disposition values
38 #define FILE_SUPERSEDE 0x0000
39 #define FILE_OPEN 0x0001
40 #define FILE_CREATE 0x0002
41 #define FILE_OPEN_IF 0x0003
42 #define FILE_OVERWRITE 0x0004
43 #define FILE_OVERWRITE_IF 0x0005
44 #define FILE_MAXIMUM_DISPOSITION 0x0005
46 //process query / set information class
48 #define ProcessBasicInformation 0
49 #define ProcessQuotaLimits 1
50 #define ProcessIoCounters 2
51 #define ProcessVmCounters 3
52 #define ProcessTimes 4
53 #define ProcessBasePriority 5
54 #define ProcessRaisePriority 6
55 #define ProcessDebugPort 7
56 #define ProcessExceptionPort 8
57 #define ProcessAccessToken 9
58 #define ProcessLdtInformation 10
59 #define ProcessLdtSize 11
60 #define ProcessDefaultHardErrorMode 12
61 #define ProcessIoPortHandlers 13
62 #define ProcessPooledUsageAndLimits 14
63 #define ProcessWorkingSetWatch 15
64 #define ProcessUserModeIOPL 16
65 #define ProcessEnableAlignmentFaultFixup 17
66 #define ProcessPriorityClass 18
67 #define ProcessWx86Information 19
68 #define ProcessHandleCount 20
69 #define ProcessAffinityMask 21
70 #define ProcessImageFileName 22
71 #define MaxProcessInfoClass 23
74 * thread query / set information class
76 #define ThreadBasicInformation 0
78 #define ThreadPriority 2
79 #define ThreadBasePriority 3
80 #define ThreadAffinityMask 4
81 #define ThreadImpersonationToken 5
82 #define ThreadDescriptorTableEntry 6
83 #define ThreadEnableAlignmentFaultFixup 7
84 #define ThreadEventPair 8
85 #define ThreadQuerySetWin32StartAddress 9
86 #define ThreadZeroTlsCell 10
87 #define ThreadPerformanceCount 11
88 #define ThreadAmILastThread 12
89 #define ThreadIdealProcessor 13
90 #define ThreadPriorityBoost 14
91 #define ThreadSetTlsArrayAddress 15
92 #define ThreadIsIoPending 16
93 #define ThreadHideFromDebugger 17
94 #define MaxThreadInfoClass 17
96 // object handle information
98 #define ObjectBasicInformation 0
99 #define ObjectNameInformation 1
100 #define ObjectTypeInformation 2
101 #define ObjectAllInformation 3
102 #define ObjectDataInformation 4
105 // semaphore information
107 typedef enum _SEMAPHORE_INFORMATION_CLASS
109 SemaphoreBasicInformation
= 0
110 } SEMAPHORE_INFORMATION_CLASS
;
112 typedef struct _SEMAPHORE_BASIC_INFORMATION
116 } SEMAPHORE_BASIC_INFORMATION
, *PSEMAPHORE_BASIC_INFORMATION
;
121 typedef enum _EVENT_INFORMATION_CLASS
123 EventBasicInformation
= 0
124 } EVENT_INFORMATION_CLASS
;
126 typedef struct _EVENT_BASIC_INFORMATION
128 EVENT_TYPE EventType
;
130 } EVENT_BASIC_INFORMATION
, *PEVENT_BASIC_INFORMATION
;
133 // system information
134 // {Nt|Zw}{Query|Set}SystemInformation
135 // (GN means Gary Nebbet in "NT/W2K Native API Reference")
138 enum _SYSTEM_INFORMATION_CLASS
140 SystemInformationClassMin
= 0,
141 SystemBasicInformation
= 0, /* Q */
143 SystemProcessorInformation
= 1, /* Q */
145 SystemPerformanceInformation
= 2, /* Q */
147 SystemTimeOfDayInformation
= 3, /* Q */
149 SystemPathInformation
= 4, /* Q (checked build only) */
150 SystemNotImplemented1
= 4, /* Q (GN) */
152 SystemProcessInformation
= 5, /* Q */
153 SystemProcessesAndThreadsInformation
= 5, /* Q (GN) */
155 SystemCallCountInfoInformation
= 6, /* Q */
156 SystemCallCounts
= 6, /* Q (GN) */
158 SystemDeviceInformation
= 7, /* Q */
159 // It conflicts with symbol in ntoskrnl/io/resource.c
160 // SystemConfigurationInformation = 7, /* Q (GN) */
162 SystemProcessorPerformanceInformation
= 8, /* Q */
163 SystemProcessorTimes
= 8, /* Q (GN) */
165 SystemFlagsInformation
= 9, /* QS */
166 SystemGlobalFlag
= 9, /* QS (GN) */
168 SystemCallTimeInformation
= 10,
169 SystemNotImplemented2
= 10, /* (GN) */
171 SystemModuleInformation
= 11, /* Q */
173 SystemLocksInformation
= 12, /* Q */
174 SystemLockInformation
= 12, /* Q (GN) */
176 SystemStackTraceInformation
= 13,
177 SystemNotImplemented3
= 13, /* Q (GN) */
179 SystemPagedPoolInformation
= 14,
180 SystemNotImplemented4
= 14, /* Q (GN) */
182 SystemNonPagedPoolInformation
= 15,
183 SystemNotImplemented5
= 15, /* Q (GN) */
185 SystemHandleInformation
= 16, /* Q */
187 SystemObjectInformation
= 17, /* Q */
189 SystemPageFileInformation
= 18, /* Q */
190 SystemPagefileInformation
= 18, /* Q (GN) */
192 SystemVdmInstemulInformation
= 19, /* Q */
193 SystemInstructionEmulationCounts
= 19, /* Q (GN) */
195 SystemVdmBopInformation
= 20,
196 SystemInvalidInfoClass1
= 20, /* (GN) */
198 SystemFileCacheInformation
= 21, /* QS */
199 SystemCacheInformation
= 21, /* QS (GN) */
201 SystemPoolTagInformation
= 22, /* Q (checked build only) */
203 SystemInterruptInformation
= 23, /* Q */
204 SystemProcessorStatistics
= 23, /* Q (GN) */
206 SystemDpcBehaviourInformation
= 24, /* QS */
207 SystemDpcInformation
= 24, /* QS (GN) */
209 SystemFullMemoryInformation
= 25,
210 SystemNotImplemented6
= 25, /* (GN) */
212 SystemLoadGdiDriverInformation
= 26, /* S (callable) */
213 SystemLoadImage
= 26, /* S (callable) (GN) */
215 SystemUnloadGdiDriverInformation
= 27, /* S (callable) */
216 SystemUnloadImage
= 27, /* S (callable) (GN) */
218 SystemTimeAdjustmentInformation
= 28, /* QS */
219 SystemTimeAdjustment
= 28, /* QS (GN) */
221 SystemSummaryMemoryInformation
= 29,
222 SystemNotImplemented7
= 29, /* (GN) */
224 SystemNextEventIdInformation
= 30,
225 SystemNotImplemented8
= 30, /* (GN) */
227 SystemEventIdsInformation
= 31,
228 SystemNotImplemented9
= 31, /* (GN) */
230 SystemCrashDumpInformation
= 32, /* Q */
232 SystemExceptionInformation
= 33, /* Q */
234 SystemCrashDumpStateInformation
= 34, /* Q */
236 SystemKernelDebuggerInformation
= 35, /* Q */
238 SystemContextSwitchInformation
= 36, /* Q */
240 SystemRegistryQuotaInformation
= 37, /* QS */
242 SystemExtendServiceTableInformation
= 38, /* S */
243 SystemLoadAndCallImage
= 38, /* S (GN) */
245 SystemPrioritySeparation
= 39, /* S */
247 SystemPlugPlayBusInformation
= 40,
248 SystemNotImplemented10
= 40, /* Q (GN) */
250 SystemDockInformation
= 41,
251 SystemNotImplemented11
= 41, /* Q (GN) */
253 SystemPowerInformation
= 42,
254 SystemInvalidInfoClass2
= 42, /* (GN) */
256 SystemProcessorSpeedInformation
= 43,
257 SystemInvalidInfoClass3
= 43, /* (GN) */
259 SystemCurrentTimeZoneInformation
= 44, /* QS */
260 SystemTimeZoneInformation
= 44, /* QS (GN) */
262 SystemLookasideInformation
= 45, /* Q */
264 SystemSetTimeSlipEvent
= 46, /* S (GN) */
266 SystemCreateSession
= 47, /* S (GN) */
268 SystemDeleteSession
= 48, /* S (GN) */
270 SystemInvalidInfoClass4
= 49, /* (GN) */
272 SystemRangeStartInformation
= 50, /* Q (GN) */
274 SystemVerifierInformation
= 51, /* QS (GN) */
276 SystemAddVerifier
= 52, /* S (GN) */
278 SystemSessionProcessesInformation
= 53, /* Q (GN) */
279 SystemInformationClassMax
281 } SYSTEM_INFORMATION_CLASS
;
283 // SystemBasicInformation (0)
285 struct _SYSTEM_BASIC_INFORMATION
288 ULONG TimerResolution
;
290 ULONG NumberOfPhysicalPages
;
291 ULONG LowestPhysicalPageNumber
;
292 ULONG HighestPhysicalPageNumber
;
293 ULONG AllocationGranularity
;
294 ULONG MinimumUserModeAddress
;
295 ULONG MaximumUserModeAddress
;
296 KAFFINITY ActiveProcessorsAffinityMask
;
297 CCHAR NumberOfProcessors
;
298 } SYSTEM_BASIC_INFORMATION
, *PSYSTEM_BASIC_INFORMATION
;
300 // SystemProcessorInformation (1)
302 struct _SYSTEM_PROCESSOR_INFORMATION
304 USHORT ProcessorArchitecture
;
305 USHORT ProcessorLevel
;
306 USHORT ProcessorRevision
;
308 ULONG ProcessorFeatureBits
;
309 } SYSTEM_PROCESSOR_INFORMATION
, *PSYSTEM_PROCESSOR_INFORMATION
;
311 // SystemPerformanceInfo (2)
313 struct _SYSTEM_PERFORMANCE_INFORMATION
315 LARGE_INTEGER IdleProcessorTime
;
316 LARGE_INTEGER IoReadTransferCount
;
317 LARGE_INTEGER IoWriteTransferCount
;
318 LARGE_INTEGER IoOtherTransferCount
;
319 ULONG IoReadOperationCount
;
320 ULONG IoWriteOperationCount
;
321 ULONG IoOtherOperationCount
;
322 ULONG AvailablePages
;
325 ULONG PeakCommitment
;
326 ULONG PageFaultCount
;
327 ULONG CopyOnWriteCount
;
328 ULONG TransitionCount
;
329 ULONG CacheTransitionCount
;
330 ULONG DemandZeroCount
;
332 ULONG PageReadIoCount
;
333 ULONG CacheReadCount
;
335 ULONG DirtyPagesWriteCount
;
336 ULONG DirtyWriteIoCount
;
337 ULONG MappedPagesWriteCount
;
338 ULONG MappedWriteIoCount
;
339 ULONG PagedPoolPages
;
340 ULONG NonPagedPoolPages
;
345 ULONG MmTotalSystemFreePtes
;
346 ULONG MmSystemCodepage
;
347 ULONG MmTotalSystemDriverPages
;
348 ULONG MmTotalSystemCodePages
;
352 ULONG MmSystemCachePage
;
353 ULONG MmPagedPoolPage
;
354 ULONG MmSystemDriverPage
;
355 ULONG CcFastReadNoWait
;
356 ULONG CcFastReadWait
;
357 ULONG CcFastReadResourceMiss
;
358 ULONG CcFastReadNotPossible
;
359 ULONG CcFastMdlReadNoWait
;
360 ULONG CcFastMdlReadWait
;
361 ULONG CcFastMdlReadResourceMiss
;
362 ULONG CcFastMdlReadNotPossible
;
363 ULONG CcMapDataNoWait
;
365 ULONG CcMapDataNoWaitMiss
;
366 ULONG CcMapDataWaitMiss
;
367 ULONG CcPinMappedDataCount
;
368 ULONG CcPinReadNoWait
;
370 ULONG CcPinReadNoWaitMiss
;
371 ULONG CcPinReadWaitMiss
;
372 ULONG CcCopyReadNoWait
;
373 ULONG CcCopyReadWait
;
374 ULONG CcCopyReadNoWaitMiss
;
375 ULONG CcCopyReadWaitMiss
;
376 ULONG CcMdlReadNoWait
;
378 ULONG CcMdlReadNoWaitMiss
;
379 ULONG CcMdlReadWaitMiss
;
380 ULONG CcReadaheadIos
;
381 ULONG CcLazyWriteIos
;
382 ULONG CcLazyWritePages
;
385 ULONG ContextSwitches
;
390 } SYSTEM_PERFORMANCE_INFO
, *PSYSTEM_PERFORMANCE_INFO
;
392 // SystemTimeOfDayInformation (3)
394 struct _SYSTEM_TIMEOFDAY_INFORMATION
396 LARGE_INTEGER BootTime
;
397 LARGE_INTEGER CurrentTime
;
398 LARGE_INTEGER TimeZoneBias
;
401 } SYSTEM_TIMEOFDAY_INFORMATION
, *PSYSTEM_TIMEOFDAY_INFORMATION
;
403 // SystemPathInformation (4)
406 struct _SYSTEM_PATH_INFORMATION
410 } SYSTEM_PATH_INFORMATION
, * PSYSTEM_PATH_INFORMATION
;
412 // SystemProcessInformation (5)
414 struct _SYSTEM_THREAD_INFORMATION
422 ULONG DynamicPriority
;
426 KWAIT_REASON WaitReason
;
428 } SYSTEM_THREAD_INFORMATION
, *PSYSTEM_THREAD_INFORMATION
;
431 struct SYSTEM_PROCESS_INFORMATION
433 ULONG RelativeOffset
;
442 ULONG ParentProcessId
;
445 ULONG PeakVirtualSizeBytes
;
446 ULONG TotalVirtualSizeBytes
;
447 ULONG PageFaultCount
;
448 ULONG PeakWorkingSetSizeBytes
;
449 ULONG TotalWorkingSetSizeBytes
;
450 ULONG PeakPagedPoolUsagePages
;
451 ULONG TotalPagedPoolUsagePages
;
452 ULONG PeakNonPagedPoolUsagePages
;
453 ULONG TotalNonPagedPoolUsagePages
;
454 ULONG TotalPageFileUsageBytes
;
455 ULONG PeakPageFileUsageBytes
;
456 ULONG TotalPrivateBytes
;
457 SYSTEM_THREAD_INFORMATION ThreadSysInfo
[1];
459 } SYSTEM_PROCESS_INFORMATION
, *PSYSTEM_PROCESS_INFORMATION
;
461 // SystemCallCountInformation (6)
463 struct _SYSTEM_SDT_INFORMATION
466 ULONG NumberOfSystemServiceTables
;
467 ULONG NumberOfServices
[1];
468 ULONG ServiceCounters
[1];
470 } SYSTEM_SDT_INFORMATION
, *PSYSTEM_SDT_INFORMATION
;
472 // SystemDeviceInformation (7)
474 struct _SYSTEM_DEVICE_INFORMATION
477 ULONG NumberOfFloppies
;
478 ULONG NumberOfCdRoms
;
480 ULONG NumberOfSerialPorts
;
481 ULONG NumberOfParallelPorts
;
482 } SYSTEM_DEVICE_INFORMATION
, *PSYSTEM_DEVICE_INFORMATION
;
484 // SystemProcessorPerformanceInformation (8)
485 // (one per processor in the system)
487 struct _SYSTEM_PROCESSORTIME_INFO
489 TIME TotalProcessorRunTime
;
490 TIME TotalProcessorTime
;
491 TIME TotalProcessorUserTime
;
493 TIME TotalInterruptTime
;
494 ULONG TotalInterrupts
;
497 } SYSTEM_PROCESSORTIME_INFO
, *PSYSTEM_PROCESSORTIME_INFO
;
499 // SystemFlagsInformation (9)
501 struct _SYSTEM_FLAGS_INFORMATION
505 } SYSTEM_FLAGS_INFORMATION
, * PSYSTEM_FLAGS_INFORMATION
;
507 #define FLG_STOP_ON_EXCEPTION 0x00000001
508 #define FLG_SHOW_LDR_SNAPS 0x00000002
509 #define FLG_DEBUG_INITIAL_COMMAND 0x00000004
510 #define FLG_STOP_ON_HANG_GUI 0x00000008
511 #define FLG_HEAP_ENABLE_TAIL_CHECK 0x00000010
512 #define FLG_HEAP_ENABLE_FREE_CHECK 0x00000020
513 #define FLG_HEAP_VALIDATE_PARAMETERS 0x00000040
514 #define FLG_HEAP_VALIDATE_ALL 0x00000080
515 #define FLG_POOL_ENABLE_TAIL_CHECK 0x00000100
516 #define FLG_POOL_ENABLE_FREE_CHECK 0x00000200
517 #define FLG_POOL_ENABLE_TAGGING 0x00000400
518 #define FLG_HEAP_ENABLE_TAGGING 0x00000800
519 #define FLG_USER_STACK_TRACE_DB 0x00001000
520 #define FLG_KERNEL_STACK_TRACE_DB 0x00002000
521 #define FLG_MAINTAIN_OBJECT_TYPELIST 0x00004000
522 #define FLG_HEAP_ENABLE_TAG_BY_DLL 0x00008000
523 #define FLG_IGNORE_DEBUG_PRIV 0x00010000
524 #define FLG_ENABLE_CSRDEBUG 0x00020000
525 #define FLG_ENABLE_KDEBUG_SYMBOL_LOAD 0x00040000
526 #define FLG_DISABLE_PAGE_KERNEL_STACKS 0x00080000
527 #define FLG_HEAP_ENABLE_CALL_TRACING 0x00100000
528 #define FLG_HEAP_DISABLE_COALESCING 0x00200000
529 #define FLG_ENABLE_CLOSE_EXCEPTION 0x00400000
530 #define FLG_ENABLE_EXCEPTION_LOGGING 0x00800000
531 #define FLG_UNKNOWN_01000000 0x01000000
532 #define FLG_UNKNOWN_02000000 0x02000000
533 #define FLG_UNKNOWN_04000000 0x04000000
534 #define FLG_ENABLE_DBGPRINT_BUFFERING 0x08000000
535 #define FLG_UNKNOWN_10000000 0x10000000
536 #define FLG_UNKNOWN_20000000 0x20000000
537 #define FLG_UNKNOWN_40000000 0x40000000
538 #define FLG_UNKNOWN_80000000 0x80000000
540 // SystemCallTimeInformation (10)
543 // SystemModuleInformation (11)
545 struct _SYSTEM_MODULE_ENTRY
553 USHORT NameLength
; /* Length of module name not including the path, this field contains valid value only for NTOSKRNL module*/
554 USHORT PathLength
; /* Length of 'directory path' part of modulename*/
556 } SYSTEM_MODULE_ENTRY
, * PSYSTEM_MODULE_ENTRY
;
559 struct _SYSTEM_MODULE_INFORMATION
562 SYSTEM_MODULE_ENTRY Module
[1];
563 } SYSTEM_MODULE_INFORMATION
, *PSYSTEM_MODULE_INFORMATION
;
565 // SystemLocksInformation (12)
567 struct _SYSTEM_RESOURCE_LOCK_ENTRY
569 ULONG ResourceAddress
;
573 ULONG ContentionCount
;
575 ULONG NumberOfSharedWaiters
;
576 ULONG NumberOfExclusiveWaiters
;
578 } SYSTEM_RESOURCE_LOCK_ENTRY
, *PSYSTEM_RESOURCE_LOCK_ENTRY
;
581 struct _SYSTEM_RESOURCE_LOCK_INFO
584 SYSTEM_RESOURCE_LOCK_ENTRY Lock
[1];
586 } SYSTEM_RESOURCE_LOCK_INFO
, *PSYSTEM_RESOURCE_LOCK_INFO
;
588 // SystemInformation13 (13)
591 // SystemInformation14 (14)
594 // SystemInformation15 (15)
597 // SystemHandleInformation (16)
600 struct _SYSTEM_HANDLE_ENTRY
609 } SYSTEM_HANDLE_ENTRY
, *PSYSTEM_HANDLE_ENTRY
;
612 struct _SYSTEM_HANDLE_INFORMATION
615 SYSTEM_HANDLE_ENTRY Handle
[1];
617 } SYSTEM_HANDLE_INFORMATION
, *PSYSTEM_HANDLE_INFORMATION
;
619 // SystemObjectInformation (17)
621 struct _SYSTEM_OBJECT_TYPE_INFORMATION
623 ULONG NextEntryOffset
;
627 ULONG InvalidAttributes
;
628 GENERIC_MAPPING GenericMapping
;
629 ACCESS_MASK ValidAccessMask
;
634 } SYSTEM_OBJECT_TYPE_INFORMATION
, *PSYSTEM_OBJECT_TYPE_INFORMATION
;
637 struct _SYSTEM_OBJECT_INFORMATION
639 ULONG NextEntryOffset
;
641 ULONG CreatorProcessId
;
646 ULONG PagedPoolUsage
;
647 ULONG NonPagedPoolUsage
;
648 ULONG ExclusiveProcessId
;
649 PSECURITY_DESCRIPTOR SecurityDescriptor
;
652 } SYSTEM_OBJECT_INFORMATION
, *PSYSTEM_OBJECT_INFORMATION
;
654 // SystemPageFileInformation (18)
656 struct _SYSTEM_PAGEFILE_INFORMATION
658 ULONG RelativeOffset
;
659 ULONG CurrentSizePages
;
660 ULONG TotalUsedPages
;
662 UNICODE_STRING PagefileFileName
;
664 } SYSTEM_PAGEFILE_INFORMATION
, *PSYSTEM_PAGEFILE_INFORMATION
;
666 // SystemInstructionEmulationInfo (19)
668 struct _SYSTEM_VDM_INFORMATION
670 ULONG VdmSegmentNotPresentCount
;
672 ULONG VdmESPREFIXCount
;
673 ULONG VdmCSPREFIXCount
;
674 ULONG VdmSSPREFIXCount
;
675 ULONG VdmDSPREFIXCount
;
676 ULONG VdmFSPREFIXCount
;
677 ULONG VdmGSPREFIXCount
;
678 ULONG VdmOPER32PREFIXCount
;
679 ULONG VdmADDR32PREFIXCount
;
681 ULONG VdmINSWV86Count
;
689 ULONG VdmINBIMMCount
;
690 ULONG VdmINWIMMCount
;
691 ULONG VdmOUTBIMMCount
;
692 ULONG VdmOUTWIMMCount
;
697 ULONG VdmLOCKPREFIXCount
;
698 ULONG VdmREPNEPREFIXCount
;
699 ULONG VdmREPPREFIXCount
;
705 } SYSTEM_VDM_INFORMATION
, *PSYSTEM_VDM_INFORMATION
;
707 // SystemInformation20 (20)
710 // SystemCacheInformation (21)
712 struct _SYSTEM_CACHE_INFORMATION
716 ULONG PageFaultCount
;
717 ULONG MinimumWorkingSet
;
718 ULONG MaximumWorkingSet
;
721 } SYSTEM_CACHE_INFORMATION
;
723 // SystemPoolTagInformation (22)
724 // found by Klaus P. Gerlicher
725 // (implemented only in checked builds)
727 struct _POOL_TAG_STATS
729 ULONG AllocationCount
;
736 struct _SYSTEM_POOL_TAG_ENTRY
739 POOL_TAG_STATS Paged
;
740 POOL_TAG_STATS NonPaged
;
742 } SYSTEM_POOL_TAG_ENTRY
, * PSYSTEM_POOL_TAG_ENTRY
;
745 struct _SYSTEM_POOL_TAG_INFO
748 SYSTEM_POOL_TAG_ENTRY PoolEntry
[1];
750 } SYSTEM_POOL_TAG_INFO
, *PSYSTEM_POOL_TAG_INFO
;
752 // SystemProcessorScheduleInfo (23)
754 struct _SYSTEM_PROCESSOR_SCHEDULE_INFO
756 ULONG nContextSwitches
;
759 ULONG TimerResolution
;
763 } SYSTEM_PROCESSOR_SCHEDULE_INFO
, *PSYSTEM_PROCESSOR_SCHEDULE_INFO
;
765 // SystemDpcInformation (24)
767 struct _SYSTEM_DPC_INFORMATION
770 ULONG KiMaximumDpcQueueDepth
;
771 ULONG KiMinimumDpcRate
;
772 ULONG KiAdjustDpcThreshold
;
773 ULONG KiIdealDpcRate
;
775 } SYSTEM_DPC_INFORMATION
, *PSYSTEM_DPC_INFORMATION
;
777 // SystemInformation25 (25)
780 // SystemLoadGdiDriverInformation (26)
781 // SystemUnloadGdiDriverInformation (27)
782 typedef struct _SYSTEM_GDI_DRIVER_INFORMATION
784 UNICODE_STRING DriverName
;
786 PVOID SectionPointer
;
788 // PIMAGE_EXPORT_DIRECTORY ExportSectionPointer;
789 PVOID ExportSectionPointer
;
790 } SYSTEM_GDI_DRIVER_INFORMATION
, *PSYSTEM_GDI_DRIVER_INFORMATION
;
792 // SystemTimeAdjustmentInformation (28)
794 struct _SYSTEM_QUERY_TIME_ADJUSTMENT
796 ULONG TimeAdjustment
;
797 ULONG MaximumIncrement
;
798 BOOLEAN TimeSynchronization
;
800 } SYSTEM_QUERY_TIME_ADJUSTMENT
, *PSYSTEM_QUERY_TIME_ADJUSTMENT
;
803 struct _SYSTEM_SET_TIME_ADJUSTMENT
805 ULONG TimeAdjustment
;
806 BOOLEAN TimeSynchronization
;
808 } SYSTEM_TIME_ADJUSTMENT_INFO
, *PSYSTEM_TIME_ADJUSTMENT_INFO
;
810 // SystemProcessorFaultCountInfo (33)
812 struct _SYSTEM_PROCESSOR_FAULT_INFO
814 ULONG nAlignmentFixup
;
815 ULONG nExceptionDispatches
;
816 ULONG nFloatingEmulation
;
819 } SYSTEM_PROCESSOR_FAULT_INFO
, *PSYSTEM_PROCESSOR_FAULT_INFO
;
821 // SystemCrashDumpStateInfo (34)
824 // SystemDebuggerInformation (35)
826 struct _SYSTEM_DEBUGGER_INFO
828 BOOLEAN KdDebuggerEnabled
;
829 BOOLEAN KdDebuggerPresent
;
831 } SYSTEM_DEBUGGER_INFO
, *PSYSTEM_DEBUGGER_INFO
;
833 // SystemInformation36 (36)
836 // SystemQuotaInformation (37)
838 struct _SYSTEM_QUOTA_INFORMATION
840 ULONG CmpGlobalQuota
;
841 ULONG CmpGlobalQuotaUsed
;
842 ULONG MmSizeofPagedPoolInBytes
;
844 } SYSTEM_QUOTA_INFORMATION
, *PSYSTEM_QUOTA_INFORMATION
;
846 // SystemLoadDriver (38)
848 struct _SYSTEM_DRIVER_LOAD
850 UNICODE_STRING DriverRegistryEntry
;
852 } SYSTEM_DRIVER_LOAD
, *PSYSTEM_DRIVER_LOAD
;
854 // SystemTimeZoneInformation (44)
856 struct _SYSTEM_TIME_ZONE_INFORMATION
859 WCHAR StandardName
[32];
862 WCHAR DaylightName
[32];
866 } SYSTEM_TIME_ZONE_INFORMATION
, * PSYSTEM_TIME_ZONE_INFORMATION
;
868 // SystemLookasideInformation (45)
870 struct _SYSTEM_LOOKASIDE_INFORMATION
874 ULONG TotalAllocates
;
875 ULONG AllocatesMisses
;
882 } SYSTEM_LOOKASIDE_INFORMATION
, * PSYSTEM_LOOKASIDE_INFORMATION
;
884 // SystemSetTimeSlipEvent (46)
886 struct _SYSTEM_SET_TIME_SLIP_EVENT
888 HANDLE TimeSlipEvent
; /* IN */
890 } SYSTEM_SET_TIME_SLIP_EVENT
, * PSYSTEM_SET_TIME_SLIP_EVENT
;
892 // SystemCreateSession (47)
893 // (available only on TSE)
895 struct _SYSTEM_CREATE_SESSION
897 ULONG SessionId
; /* OUT */
899 } SYSTEM_CREATE_SESSION
, * PSYSTEM_CREATE_SESSION
;
901 // SystemDeleteSession (48)
902 // (available only on TSE)
904 struct _SYSTEM_DELETE_SESSION
906 ULONG SessionId
; /* IN */
908 } SYSTEM_DELETE_SESSION
, * PSYSTEM_DELETE_SESSION
;
913 // SystemRangeStartInformation (50)
915 struct _SYSTEM_RANGE_START_INFORMATION
917 PVOID SystemRangeStart
;
919 } SYSTEM_RANGE_START_INFORMATION
, * PSYSTEM_RANGE_START_INFORMATION
;
921 // SystemVerifierInformation (51)
924 // SystemAddVerifier (52)
927 // SystemSessionProcessesInformation (53)
928 // (available only on TSE)
930 struct _SYSTEM_SESSION_PROCESSES_INFORMATION
934 PVOID Buffer
; /* same format as in SystemProcessInformation */
936 } SYSTEM_SESSION_PROCESSES_INFORMATION
, * PSYSTEM_SESSION_PROCESSES_INFORMATION
;
938 // memory information
940 #define MemoryBasicInformation 0
944 typedef enum SHUTDOWN_ACTION_TAG
{
955 // number of wait objects
957 #define THREAD_WAIT_OBJECTS 3
958 //#define MAXIMUM_WAIT_OBJECTS 64
962 #define REG_WHOLE_HIVE_VOLATILE 1
963 #define REG_REFRESH_HIVE 2
965 // object type access rights
967 #define OBJECT_TYPE_CREATE 0x0001
968 #define OBJECT_TYPE_ALL_ACCESS (STANDARD_RIGHTS_REQUIRED | 0x1)
970 // directory access rights
972 #define DIRECTORY_QUERY 0x0001
973 #define DIRECTORY_TRAVERSE 0x0002
974 #define DIRECTORY_CREATE_OBJECT 0x0004
975 #define DIRECTORY_CREATE_SUBDIRECTORY 0x0008
977 #define DIRECTORY_ALL_ACCESS (STANDARD_RIGHTS_REQUIRED | 0xF)
979 // symbolic link access rights
981 #define SYMBOLIC_LINK_QUERY 0x0001
982 #define SYMBOLIC_LINK_ALL_ACCESS (STANDARD_RIGHTS_REQUIRED | 0x1)
984 typedef struct _PROCESS_WS_WATCH_INFORMATION
988 } PROCESS_WS_WATCH_INFORMATION
, *PPROCESS_WS_WATCH_INFORMATION
;
990 typedef struct _PROCESS_BASIC_INFORMATION
994 KAFFINITY AffinityMask
;
995 KPRIORITY BasePriority
;
996 ULONG UniqueProcessId
;
997 ULONG InheritedFromUniqueProcessId
;
998 } PROCESS_BASIC_INFORMATION
, *PPROCESS_BASIC_INFORMATION
;
1000 typedef struct _QUOTA_LIMITS
1002 ULONG PagedPoolLimit
;
1003 ULONG NonPagedPoolLimit
;
1004 ULONG MinimumWorkingSetSize
;
1005 ULONG MaximumWorkingSetSize
;
1006 ULONG PagefileLimit
;
1008 } QUOTA_LIMITS
, *PQUOTA_LIMITS
;
1010 typedef struct _IO_COUNTERS
1012 ULONG ReadOperationCount
;
1013 ULONG WriteOperationCount
;
1014 ULONG OtherOperationCount
;
1015 LARGE_INTEGER ReadTransferCount
;
1016 LARGE_INTEGER WriteTransferCount
;
1017 LARGE_INTEGER OtherTransferCount
;
1018 } IO_COUNTERS
, *PIO_COUNTERS
;
1021 typedef struct _VM_COUNTERS_
1023 ULONG PeakVirtualSize
;
1025 ULONG PageFaultCount
;
1026 ULONG PeakWorkingSetSize
;
1027 ULONG WorkingSetSize
;
1028 ULONG QuotaPeakPagedPoolUsage
;
1029 ULONG QuotaPagedPoolUsage
;
1030 ULONG QuotaPeakNonPagedPoolUsage
;
1031 ULONG QuotaNonPagedPoolUsage
;
1032 ULONG PagefileUsage
;
1033 ULONG PeakPagefileUsage
;
1034 } VM_COUNTERS
, *PVM_COUNTERS
;
1037 typedef struct _POOLED_USAGE_AND_LIMITS_
1039 ULONG PeakPagedPoolUsage
;
1040 ULONG PagedPoolUsage
;
1041 ULONG PagedPoolLimit
;
1042 ULONG PeakNonPagedPoolUsage
;
1043 ULONG NonPagedPoolUsage
;
1044 ULONG NonPagedPoolLimit
;
1045 ULONG PeakPagefileUsage
;
1046 ULONG PagefileUsage
;
1047 ULONG PagefileLimit
;
1048 } POOLED_USAGE_AND_LIMITS
, *PPOOLED_USAGE_AND_LIMITS
;
1051 typedef struct _PROCESS_ACCESS_TOKEN
1055 } PROCESS_ACCESS_TOKEN
, *PPROCESS_ACCESS_TOKEN
;
1057 typedef struct _KERNEL_USER_TIMES
1063 } KERNEL_USER_TIMES
;
1064 typedef KERNEL_USER_TIMES
*PKERNEL_USER_TIMES
;
1066 // thread information
1068 // incompatible with MS NT
1070 typedef struct _THREAD_BASIC_INFORMATION
1072 NTSTATUS ExitStatus
;
1073 PVOID TebBaseAddress
;
1075 KAFFINITY AffinityMask
;
1077 KPRIORITY BasePriority
;
1078 } THREAD_BASIC_INFORMATION
, *PTHREAD_BASIC_INFORMATION
;
1080 // object information
1082 typedef struct _OBJECT_NAME_INFORMATION
1084 UNICODE_STRING Name
;
1085 } OBJECT_NAME_INFORMATION
, *POBJECT_NAME_INFORMATION
;
1089 typedef struct _OBJECT_DATA_INFORMATION
1091 BOOLEAN bInheritHandle
;
1092 BOOLEAN bProtectFromClose
;
1093 } OBJECT_DATA_INFORMATION
, *POBJECT_DATA_INFORMATION
;
1096 typedef struct _OBJECT_TYPE_INFORMATION
1098 UNICODE_STRING Name
;
1099 UNICODE_STRING Type
;
1101 ULONG ReferenceCount
;
1102 } OBJECT_TYPE_INFORMATION
, *POBJECT_TYPE_INFORMATION
;
1106 typedef struct _FILE_BASIC_INFORMATION
1109 TIME LastAccessTime
;
1112 ULONG FileAttributes
;
1113 } FILE_BASIC_INFORMATION
, *PFILE_BASIC_INFORMATION
;
1115 typedef struct _FILE_STANDARD_INFORMATION
1117 LARGE_INTEGER AllocationSize
;
1118 LARGE_INTEGER EndOfFile
;
1119 ULONG NumberOfLinks
;
1120 BOOLEAN DeletePending
;
1122 } FILE_STANDARD_INFORMATION
, *PFILE_STANDARD_INFORMATION
;
1124 typedef struct _FILE_POSITION_INFORMATION
1126 LARGE_INTEGER CurrentByteOffset
;
1127 } FILE_POSITION_INFORMATION
, *PFILE_POSITION_INFORMATION
;
1129 typedef struct _FILE_ALIGNMENT_INFORMATION
1131 ULONG AlignmentRequirement
;
1132 } FILE_ALIGNMENT_INFORMATION
, *PFILE_ALIGNMENT_INFORMATION
;
1134 typedef struct _FILE_DISPOSITION_INFORMATION
1136 BOOLEAN DoDeleteFile
;
1137 } FILE_DISPOSITION_INFORMATION
, *PFILE_DISPOSITION_INFORMATION
;
1139 typedef struct _FILE_END_OF_FILE_INFORMATION
1141 LARGE_INTEGER EndOfFile
;
1142 } FILE_END_OF_FILE_INFORMATION
, *PFILE_END_OF_FILE_INFORMATION
;
1144 typedef struct _FILE_NETWORK_OPEN_INFORMATION
1147 TIME LastAccessTime
;
1150 LARGE_INTEGER AllocationSize
;
1151 LARGE_INTEGER EndOfFile
;
1152 ULONG FileAttributes
;
1153 } FILE_NETWORK_OPEN_INFORMATION
, *PFILE_NETWORK_OPEN_INFORMATION
;
1155 typedef struct _FILE_FULL_EA_INFORMATION
1157 ULONG NextEntryOffset
;
1160 USHORT EaValueLength
;
1162 } FILE_FULL_EA_INFORMATION
, *PFILE_FULL_EA_INFORMATION
;
1165 typedef struct _FILE_EA_INFORMATION
{
1167 } FILE_EA_INFORMATION
, *PFILE_EA_INFORMATION
;
1170 typedef struct _FILE_GET_EA_INFORMATION
{
1171 ULONG NextEntryOffset
;
1174 } FILE_GET_EA_INFORMATION
, *PFILE_GET_EA_INFORMATION
;
1176 typedef struct _FILE_STREAM_INFORMATION
{
1177 ULONG NextEntryOffset
;
1178 ULONG StreamNameLength
;
1179 LARGE_INTEGER StreamSize
;
1180 LARGE_INTEGER StreamAllocationSize
;
1181 WCHAR StreamName
[0];
1182 } FILE_STREAM_INFORMATION
, *PFILE_STREAM_INFORMATION
;
1184 typedef struct _FILE_ALLOCATION_INFORMATION
{
1185 LARGE_INTEGER AllocationSize
;
1186 } FILE_ALLOCATION_INFORMATION
, *PFILE_ALLOCATION_INFORMATION
;
1188 typedef struct _FILE_NAME_INFORMATION
{
1189 ULONG FileNameLength
;
1191 } FILE_NAME_INFORMATION
, *PFILE_NAME_INFORMATION
;
1193 typedef struct _FILE_NAMES_INFORMATION
1195 ULONG NextEntryOffset
;
1197 ULONG FileNameLength
;
1199 } FILE_NAMES_INFORMATION
, *PFILE_NAMES_INFORMATION
;
1202 typedef struct _FILE_RENAME_INFORMATION
{
1205 ULONG FileNameLength
;
1207 } FILE_RENAME_INFORMATION
, *PFILE_RENAME_INFORMATION
;
1210 typedef struct _FILE_INTERNAL_INFORMATION
{
1211 LARGE_INTEGER IndexNumber
;
1212 } FILE_INTERNAL_INFORMATION
, *PFILE_INTERNAL_INFORMATION
;
1214 typedef struct _FILE_ACCESS_INFORMATION
{
1215 ACCESS_MASK AccessFlags
;
1216 } FILE_ACCESS_INFORMATION
, *PFILE_ACCESS_INFORMATION
;
1219 typedef struct _FILE_MODE_INFORMATION
{
1221 } FILE_MODE_INFORMATION
, *PFILE_MODE_INFORMATION
;
1223 typedef struct _FILE_MAILSLOT_QUERY_INFORMATION
{
1224 ULONG MaxMessageSize
;
1225 ULONG Unknown
; /* ?? */
1228 LARGE_INTEGER Timeout
;
1229 } FILE_MAILSLOT_QUERY_INFORMATION
, *PFILE_MAILSLOT_QUERY_INFORMATION
;
1231 typedef struct _FILE_MAILSLOT_SET_INFORMATION
{
1232 LARGE_INTEGER Timeout
;
1233 } FILE_MAILSLOT_SET_INFORMATION
, *PFILE_MAILSLOT_SET_INFORMATION
;
1235 typedef struct _FILE_COMPRESSION_INFORMATION
{
1236 LARGE_INTEGER CompressedFileSize
;
1237 USHORT CompressionFormat
;
1238 UCHAR CompressionUnitShift
;
1242 } FILE_COMPRESSION_INFORMATION
, *PFILE_COMPRESSION_INFORMATION
;
1244 typedef struct _FILE_ALL_INFORMATION
{
1245 FILE_BASIC_INFORMATION BasicInformation
;
1246 FILE_STANDARD_INFORMATION StandardInformation
;
1247 FILE_INTERNAL_INFORMATION InternalInformation
;
1248 FILE_EA_INFORMATION EaInformation
;
1249 FILE_ACCESS_INFORMATION AccessInformation
;
1250 FILE_POSITION_INFORMATION PositionInformation
;
1251 FILE_MODE_INFORMATION ModeInformation
;
1252 FILE_ALIGNMENT_INFORMATION AlignmentInformation
;
1253 FILE_NAME_INFORMATION NameInformation
;
1254 } FILE_ALL_INFORMATION
, *PFILE_ALL_INFORMATION
;
1257 // file system information structures
1259 typedef struct _FILE_FS_DEVICE_INFORMATION
{
1260 DEVICE_TYPE DeviceType
;
1261 ULONG Characteristics
;
1262 } FILE_FS_DEVICE_INFORMATION
, *PFILE_FS_DEVICE_INFORMATION
;
1265 typedef struct _FILE_FS_VOLUME_INFORMATION
{
1266 TIME VolumeCreationTime
;
1267 ULONG VolumeSerialNumber
;
1268 ULONG VolumeLabelLength
;
1269 BOOLEAN SupportsObjects
;
1270 WCHAR VolumeLabel
[0];
1271 } FILE_FS_VOLUME_INFORMATION
, *PFILE_FS_VOLUME_INFORMATION
;
1273 typedef struct _FILE_FS_SIZE_INFORMATION
{
1274 LARGE_INTEGER TotalAllocationUnits
;
1275 LARGE_INTEGER AvailableAllocationUnits
;
1276 ULONG SectorsPerAllocationUnit
;
1277 ULONG BytesPerSector
;
1278 } FILE_FS_SIZE_INFORMATION
, *PFILE_FS_SIZE_INFORMATION
;
1280 typedef struct _FILE_FS_ATTRIBUTE_INFORMATION
{
1281 ULONG FileSystemAttributes
;
1282 LONG MaximumComponentNameLength
;
1283 ULONG FileSystemNameLength
;
1284 WCHAR FileSystemName
[0];
1285 } FILE_FS_ATTRIBUTE_INFORMATION
, *PFILE_FS_ATTRIBUTE_INFORMATION
;
1288 FileSystemAttributes is one of the following values:
1290 FILE_CASE_SENSITIVE_SEARCH 0x00000001
1291 FILE_CASE_PRESERVED_NAMES 0x00000002
1292 FILE_UNICODE_ON_DISK 0x00000004
1293 FILE_PERSISTENT_ACLS 0x00000008
1294 FILE_FILE_COMPRESSION 0x00000010
1295 FILE_VOLUME_QUOTAS 0x00000020
1296 FILE_VOLUME_IS_COMPRESSED 0x00008000
1298 typedef struct _FILE_FS_LABEL_INFORMATION
{
1299 ULONG VolumeLabelLength
;
1300 WCHAR VolumeLabel
[0];
1301 } FILE_FS_LABEL_INFORMATION
, *PFILE_FS_LABEL_INFORMATION
;
1303 // read file scatter / write file scatter
1304 //FIXME I am a win32 struct aswell
1306 typedef union _FILE_SEGMENT_ELEMENT
{
1309 }FILE_SEGMENT_ELEMENT
, *PFILE_SEGMENT_ELEMENT
;
1311 // directory information
1313 typedef struct _OBJDIR_INFORMATION
{
1314 UNICODE_STRING ObjectName
;
1315 UNICODE_STRING ObjectTypeName
; // Directory, Device ...
1317 } OBJDIR_INFORMATION
, *POBJDIR_INFORMATION
;
1320 typedef struct _FILE_DIRECTORY_INFORMATION
{
1321 ULONG NextEntryOffset
;
1324 TIME LastAccessTime
;
1327 LARGE_INTEGER EndOfFile
;
1328 LARGE_INTEGER AllocationSize
;
1329 ULONG FileAttributes
;
1330 ULONG FileNameLength
;
1332 } FILE_DIRECTORY_INFORMATION
, *PFILE_DIRECTORY_INFORMATION
;
1334 typedef struct _FILE_FULL_DIRECTORY_INFORMATION
{
1335 ULONG NextEntryOffset
;
1338 TIME LastAccessTime
;
1341 LARGE_INTEGER EndOfFile
;
1342 LARGE_INTEGER AllocationSize
;
1343 ULONG FileAttributes
;
1344 ULONG FileNameLength
;
1346 WCHAR FileName
[0]; // variable size
1347 } FILE_FULL_DIRECTORY_INFORMATION
, *PFILE_FULL_DIRECTORY_INFORMATION
,
1348 FILE_FULL_DIR_INFORMATION
, *PFILE_FULL_DIR_INFORMATION
;
1351 typedef struct _FILE_BOTH_DIRECTORY_INFORMATION
{
1352 ULONG NextEntryOffset
;
1355 TIME LastAccessTime
;
1358 LARGE_INTEGER EndOfFile
;
1359 LARGE_INTEGER AllocationSize
;
1360 ULONG FileAttributes
;
1361 ULONG FileNameLength
;
1363 CHAR ShortNameLength
;
1364 WCHAR ShortName
[12]; // 8.3 name
1366 } FILE_BOTH_DIRECTORY_INFORMATION
, *PFILE_BOTH_DIRECTORY_INFORMATION
,
1367 FILE_BOTH_DIR_INFORMATION
, *PFILE_BOTH_DIR_INFORMATION
;
1371 NotifyFilter / CompletionFilter:
1373 FILE_NOTIFY_CHANGE_FILE_NAME 0x00000001
1374 FILE_NOTIFY_CHANGE_DIR_NAME 0x00000002
1375 FILE_NOTIFY_CHANGE_NAME 0x00000003
1376 FILE_NOTIFY_CHANGE_ATTRIBUTES 0x00000004
1377 FILE_NOTIFY_CHANGE_SIZE 0x00000008
1378 FILE_NOTIFY_CHANGE_LAST_WRITE 0x00000010
1379 FILE_NOTIFY_CHANGE_LAST_ACCESS 0x00000020
1380 FILE_NOTIFY_CHANGE_CREATION 0x00000040
1381 FILE_NOTIFY_CHANGE_EA 0x00000080
1382 FILE_NOTIFY_CHANGE_SECURITY 0x00000100
1383 FILE_NOTIFY_CHANGE_STREAM_NAME 0x00000200
1384 FILE_NOTIFY_CHANGE_STREAM_SIZE 0x00000400
1385 FILE_NOTIFY_CHANGE_STREAM_WRITE 0x00000800
1388 typedef struct _FILE_NOTIFY_INFORMATION
{
1390 ULONG FileNameLength
;
1392 } FILE_NOTIFY_INFORMATION
;
1396 Action is one of the following values:
1398 FILE_ACTION_ADDED 0x00000001
1399 FILE_ACTION_REMOVED 0x00000002
1400 FILE_ACTION_MODIFIED 0x00000003
1401 FILE_ACTION_RENAMED_OLD_NAME 0x00000004
1402 FILE_ACTION_RENAMED_NEW_NAME 0x00000005
1403 FILE_ACTION_ADDED_STREAM 0x00000006
1404 FILE_ACTION_REMOVED_STREAM 0x00000007
1405 FILE_ACTION_MODIFIED_STREAM 0x00000008
1410 // File System Control commands ( related to defragging )
1412 #define FSCTL_READ_MFT_RECORD 0x90068 // NTFS only
1413 #define FSCTL_GET_VOLUME_BITMAP 0x9006F
1414 #define FSCTL_GET_RETRIEVAL_POINTERS 0x90073
1415 #define FSCTL_MOVE_FILE 0x90074
1417 typedef struct _MAPPING_PAIR
1421 } MAPPING_PAIR
, *PMAPPING_PAIR
;
1423 typedef struct _GET_RETRIEVAL_DESCRIPTOR
1425 ULONG NumberOfPairs
;
1427 MAPPING_PAIR Pair
[0]; // variable size
1428 } GET_RETRIEVAL_DESCRIPTOR
, *PGET_RETRIEVAL_DESCRIPTOR
;
1430 typedef struct _BITMAP_DESCRIPTOR
1433 ULONGLONG ClustersToEndOfVol
;
1434 BYTE Map
[0]; // variable size
1435 } BITMAP_DESCRIPTOR
, *PBITMAP_DESCRIPTOR
;
1437 typedef struct _MOVEFILE_DESCRIPTOR
1441 LARGE_INTEGER StartVcn
;
1442 LARGE_INTEGER TargetLcn
;
1445 } MOVEFILE_DESCRIPTOR
, *PMOVEFILE_DESCRIPTOR
;
1449 //typedef enum _TIMER_TYPE
1451 // NotificationTimer,
1452 // SynchronizationTimer
1456 struct _LPC_PORT_BASIC_INFORMATION
1473 } LPC_PORT_BASIC_INFORMATION
, * PLPC_PORT_BASIC_INFORMATION
;
1475 typedef struct _SECTION_BASIC_INFORMATION
1480 } SECTION_BASIC_INFORMATION
, *PSECTION_BASIC_INFORMATION
;
1482 typedef struct _SECTION_IMAGE_INFORMATION
1489 USHORT MinorSubsystemVersion
;
1490 USHORT MajorSubsystemVersion
;
1492 ULONG Characteristics
;
1497 } SECTION_IMAGE_INFORMATION
, *PSECTION_IMAGE_INFORMATION
;
1499 typedef enum _SECTION_INFORMATION_CLASS
1501 SectionBasicInformation
,
1502 SectionImageInformation
,
1503 } SECTION_INFORMATION_CLASS
;