1 #ifndef __INCLUDE_DDK_ZWTYPES_H
2 #define __INCLUDE_DDK_ZWTYPES_H
4 #define NtCurrentProcess() ( (HANDLE) 0xFFFFFFFF )
5 #define NtCurrentThread() ( (HANDLE) 0xFFFFFFFE )
11 #define EVENT_READ_ACCESS 1
12 #define EVENT_WRITE_ACCESS 2
15 // file disposition values
18 #define FILE_SUPERSEDE 0x0000
19 #define FILE_OPEN 0x0001
20 #define FILE_CREATE 0x0002
21 #define FILE_OPEN_IF 0x0003
22 #define FILE_OVERWRITE 0x0004
23 #define FILE_OVERWRITE_IF 0x0005
24 #define FILE_MAXIMUM_DISPOSITION 0x0005
26 //process query / set information class
28 #define ProcessBasicInformation 0
29 #define ProcessQuotaLimits 1
30 #define ProcessIoCounters 2
31 #define ProcessVmCounters 3
32 #define ProcessTimes 4
33 #define ProcessBasePriority 5
34 #define ProcessRaisePriority 6
35 #define ProcessDebugPort 7
36 #define ProcessExceptionPort 8
37 #define ProcessAccessToken 9
38 #define ProcessLdtInformation 10
39 #define ProcessLdtSize 11
40 #define ProcessDefaultHardErrorMode 12
41 #define ProcessIoPortHandlers 13
42 #define ProcessPooledUsageAndLimits 14
43 #define ProcessWorkingSetWatch 15
44 #define ProcessUserModeIOPL 16
45 #define ProcessEnableAlignmentFaultFixup 17
46 #define ProcessPriorityClass 18
47 #define ProcessWx86Information 19
48 #define ProcessHandleCount 20
49 #define ProcessAffinityMask 21
50 #define ProcessImageFileName 22
51 #define MaxProcessInfoClass 23
53 // thread query / set information class
54 #define ThreadBasicInformation 0
56 #define ThreadPriority 2
57 #define ThreadBasePriority 3
58 #define ThreadAffinityMask 4
59 #define ThreadImpersonationToken 5
60 #define ThreadDescriptorTableEntry 6
61 #define ThreadEnableAlignmentFaultFixup 7
62 #define ThreadEventPair 8
63 #define ThreadQuerySetWin32StartAddress 9
64 #define ThreadZeroTlsCell 10
65 #define ThreadPerformanceCount 11
66 #define ThreadAmILastThread 12
67 #define ThreadIdealProcessor 13
68 #define ThreadPriorityBoost 14
69 #define MaxThreadInfoClass 15
71 // object handle information
73 #define ObjectBasicInformation 0
74 #define ObjectNameInformation 1
75 #define ObjectTypeInformation 2
76 #define ObjectAllInformation 3
77 #define ObjectDataInformation 4
79 // semaphore information
81 #define SemaphoreBasicInformation 0
85 #define EventBasicInformation 0
89 #define SystemInformation0 0
90 #define SystemInformation1 1
91 #define SystemPerformanceInformation 2
92 #define SystemTimeInformation 3
93 #define SystemProcessInformation 5
94 #define SystemGlobalFlagInformation 9
95 #define SystemDriverInformation 11
96 #define SystemPageFileInformation 18
97 #define SystemCacheInformation 21
98 #define SystemPoolTagStatsInformation 22
99 #define SystemTimeAdjustmentInformation 28
100 #define SystemTimeZoneInformation 44
102 // memory information
104 #define MemoryBasicInformation 0
108 typedef enum SHUTDOWN_ACTION_TAG
{
119 // number of wait objects
121 #define THREAD_WAIT_OBJECTS 3
122 //#define MAXIMUM_WAIT_OBJECTS 64
126 #define REG_WHOLE_HIVE_VOLATILE 1
127 #define REG_REFRESH_HIVE 2
129 // object type access rights
131 #define OBJECT_TYPE_CREATE 0x0001
132 #define OBJECT_TYPE_ALL_ACCESS (STANDARD_RIGHTS_REQUIRED | 0x1)
134 // directory access rights
136 #define DIRECTORY_QUERY 0x0001
137 #define DIRECTORY_TRAVERSE 0x0002
138 #define DIRECTORY_CREATE_OBJECT 0x0004
139 #define DIRECTORY_CREATE_SUBDIRECTORY 0x0008
141 #define DIRECTORY_ALL_ACCESS (STANDARD_RIGHTS_REQUIRED | 0xF)
143 // symbolic link access rights
145 #define SYMBOLIC_LINK_QUERY 0x0001
146 #define SYMBOLIC_LINK_ALL_ACCESS (STANDARD_RIGHTS_REQUIRED | 0x1)
148 typedef struct _PROCESS_WS_WATCH_INFORMATION
152 } PROCESS_WS_WATCH_INFORMATION
, *PPROCESS_WS_WATCH_INFORMATION
;
154 typedef struct _PROCESS_BASIC_INFORMATION
158 KAFFINITY AffinityMask
;
159 KPRIORITY BasePriority
;
160 ULONG UniqueProcessId
;
161 ULONG InheritedFromUniqueProcessId
;
162 } PROCESS_BASIC_INFORMATION
, *PPROCESS_BASIC_INFORMATION
;
164 typedef struct _QUOTA_LIMITS
166 ULONG PagedPoolLimit
;
167 ULONG NonPagedPoolLimit
;
168 ULONG MinimumWorkingSetSize
;
169 ULONG MaximumWorkingSetSize
;
172 } QUOTA_LIMITS
, *PQUOTA_LIMITS
;
174 typedef struct _IO_COUNTERS
176 ULONG ReadOperationCount
;
177 ULONG WriteOperationCount
;
178 ULONG OtherOperationCount
;
179 LARGE_INTEGER ReadTransferCount
;
180 LARGE_INTEGER WriteTransferCount
;
181 LARGE_INTEGER OtherTransferCount
;
182 } IO_COUNTERS
, *PIO_COUNTERS
;
185 typedef struct _VM_COUNTERS_
187 ULONG PeakVirtualSize
;
189 ULONG PageFaultCount
;
190 ULONG PeakWorkingSetSize
;
191 ULONG WorkingSetSize
;
192 ULONG QuotaPeakPagedPoolUsage
;
193 ULONG QuotaPagedPoolUsage
;
194 ULONG QuotaPeakNonPagedPoolUsage
;
195 ULONG QuotaNonPagedPoolUsage
;
197 ULONG PeakPagefileUsage
;
198 } VM_COUNTERS
, *PVM_COUNTERS
;
201 typedef struct _POOLED_USAGE_AND_LIMITS_
203 ULONG PeakPagedPoolUsage
;
204 ULONG PagedPoolUsage
;
205 ULONG PagedPoolLimit
;
206 ULONG PeakNonPagedPoolUsage
;
207 ULONG NonPagedPoolUsage
;
208 ULONG NonPagedPoolLimit
;
209 ULONG PeakPagefileUsage
;
212 } POOLED_USAGE_AND_LIMITS
, *PPOOLED_USAGE_AND_LIMITS
;
215 typedef struct _PROCESS_ACCESS_TOKEN
219 } PROCESS_ACCESS_TOKEN
, *PPROCESS_ACCESS_TOKEN
;
221 typedef struct _KERNEL_USER_TIMES
228 typedef KERNEL_USER_TIMES
*PKERNEL_USER_TIMES
;
230 // thread information
232 // incompatible with MS NT
234 typedef struct _THREAD_BASIC_INFORMATION
237 PVOID TebBaseAddress
;
238 KAFFINITY AffinityMask
;
239 KPRIORITY BasePriority
;
240 ULONG UniqueThreadId
;
241 } THREAD_BASIC_INFORMATION
, *PTHREAD_BASIC_INFORMATION
;
243 // object information
245 typedef struct _OBJECT_NAME_INFORMATION
248 } OBJECT_NAME_INFORMATION
, *POBJECT_NAME_INFORMATION
;
252 typedef struct _OBJECT_DATA_INFORMATION
254 BOOLEAN bInheritHandle
;
255 BOOLEAN bProtectFromClose
;
256 } OBJECT_DATA_INFORMATION
, *POBJECT_DATA_INFORMATION
;
259 typedef struct _OBJECT_TYPE_INFORMATION
264 ULONG ReferenceCount
;
265 } OBJECT_TYPE_INFORMATION
, *POBJECT_TYPE_INFORMATION
;
267 // system information
271 typedef struct _SYSTEM_THREAD_INFORMATION
273 FILETIME ftCreationTime
;
275 PVOID dwStartAddress
;
278 DWORD dwCurrentPriority
;
279 DWORD dwBasePriority
;
280 DWORD dwContextSwitches
;
283 DWORD dwUnknown2
[ 5 ];
286 } SYSTEM_THREAD_INFORMATION
, * PSYSTEM_THREAD_INFORMATION
;
289 typedef struct _SYSTEM_PROCESS_INFORMATION
293 DWORD dwUnknown1
[6];
294 FILETIME ftCreationTime
;
295 DWORD dwUnknown2
[5];
296 WCHAR
* pszProcessName
;
297 DWORD dwBasePriority
;
299 DWORD dwParentProcessID
;
303 DWORD dwVirtualBytesPeak
;
304 DWORD dwVirtualBytes
;
306 DWORD dwWorkingSetPeak
;
311 DWORD dwNonPagedPool
;
312 DWORD dwPageFileBytesPeak
;
313 DWORD dwPrivateBytes
;
314 DWORD dwPageFileBytes
;
315 DWORD dwUnknown7
[4];
316 SYSTEM_THREAD_INFORMATION Threads
[1];
318 } SYSTEM_PROCESS_INFORMATION
, * PSYSTEM_PROCESS_INFORMATION
;
321 typedef struct _SYSTEM_TIME_INFO
323 LARGE_INTEGER BootTime
;
324 LARGE_INTEGER SystemTime
;
325 LARGE_INTEGER TimeZoneBias
;
328 } SYSTEM_TIME_INFO
, *PSYSTEM_TIME_INFO
;
330 typedef struct _SYSTEM_GLOBAL_FLAGS_INFO
334 } SYSTEM_GLOBAL_FLAGS_INFO
, * PSYSTEM_GLOBAL_FLAGS_INFO
;
338 typedef struct _SYSTEM_DRIVER_INFO
345 CHAR DriverName
[256];
347 } SYSTEM_DRIVER_INFO
, * PSYSTEM_DRIVER_INFO
;
350 typedef struct _SYSTEM_DRIVERS_INFO
353 SYSTEM_DRIVER_INFO DriverInfo
[1];
354 } SYSTEM_DRIVERS_INFO
, *PSYSTEM_DRIVERS_INFO
;
357 typedef struct _SYSTEM_TIME_ADJUSTMENT
360 BOOL TimeAdjustmentDisabled
;
362 } SYSTEM_TIME_ADJUSTMENT
, *PSYSTEM_TIME_ADJUSTMENT
;
364 typedef struct _SYSTEM_CONFIGURATION_INFO
{
368 WORD ProcessorArchitecture
;
373 PVOID MinimumApplicationAddress
;
374 PVOID MaximumApplicationAddress
;
375 ULONG ActiveProcessorMask
;
376 ULONG NumberOfProcessors
;
378 ULONG AllocationGranularity
;
380 WORD ProcessorRevision
;
381 } SYSTEM_CONFIGURATION_INFO
, *PSYSTEM_CONFIGURATION_INFO
;
384 typedef struct _SYSTEM_PAGEFILE_INFORMATION
387 WCHAR PagefileName
[16];
389 } SYSTEM_PAGEFILE_INFORMATION
, * PSYSTEM_PAGEFILE_INFORMATION
;
392 typedef struct _SYSTEM_CACHE_INFORMATION
396 ULONG PageFaultCount
;
397 ULONG MinimumWorkingSet
;
398 ULONG MaximumWorkingSet
;
400 } SYSTEM_CACHE_INFORMATION
;
403 /* SYSTEM_POOL_ENTRY_INFO, SYSTEM_POOL_INFORMATION
404 * found by Klaus P. Gerlicher */
406 struct _SYSTEM_POOL_ENTRY_INFO
416 } SYSTEM_POOL_ENTRY_INFO
, * PSYSTEM_POOL_ENTRY_INFO
;
420 struct _SYSTEM_POOL_INFORMATION
423 SYSTEM_POOL_ENTRY_INFO PoolEntry
[1];
425 } SYSTEM_POOL_INFORMATION
, *PSYSTEM_POOL_INFORMATION
;
431 typedef struct _FILE_BASIC_INFORMATION
437 ULONG FileAttributes
;
438 } FILE_BASIC_INFORMATION
, *PFILE_BASIC_INFORMATION
;
440 typedef struct _FILE_STANDARD_INFORMATION
442 LARGE_INTEGER AllocationSize
;
443 LARGE_INTEGER EndOfFile
;
445 BOOLEAN DeletePending
;
447 } FILE_STANDARD_INFORMATION
, *PFILE_STANDARD_INFORMATION
;
449 typedef struct _FILE_POSITION_INFORMATION
451 LARGE_INTEGER CurrentByteOffset
;
452 } FILE_POSITION_INFORMATION
, *PFILE_POSITION_INFORMATION
;
454 typedef struct _FILE_ALIGNMENT_INFORMATION
456 ULONG AlignmentRequirement
;
457 } FILE_ALIGNMENT_INFORMATION
, *PFILE_ALIGNMENT_INFORMATION
;
459 typedef struct _FILE_DISPOSITION_INFORMATION
462 } FILE_DISPOSITION_INFORMATION
, *PFILE_DISPOSITION_INFORMATION
;
464 typedef struct _FILE_END_OF_FILE_INFORMATION
466 LARGE_INTEGER EndOfFile
;
467 } FILE_END_OF_FILE_INFORMATION
, *PFILE_END_OF_FILE_INFORMATION
;
469 typedef struct _FILE_NETWORK_OPEN_INFORMATION
475 LARGE_INTEGER AllocationSize
;
476 LARGE_INTEGER EndOfFile
;
477 ULONG FileAttributes
;
478 } FILE_NETWORK_OPEN_INFORMATION
, *PFILE_NETWORK_OPEN_INFORMATION
;
480 typedef struct _FILE_FULL_EA_INFORMATION
482 ULONG NextEntryOffset
;
485 USHORT EaValueLength
;
487 } FILE_FULL_EA_INFORMATION
, *PFILE_FULL_EA_INFORMATION
;
490 typedef struct _FILE_EA_INFORMATION
{
492 } FILE_EA_INFORMATION
, *PFILE_EA_INFORMATION
;
495 typedef struct _FILE_GET_EA_INFORMATION
{
496 ULONG NextEntryOffset
;
499 } FILE_GET_EA_INFORMATION
, *PFILE_GET_EA_INFORMATION
;
501 typedef struct _FILE_STREAM_INFORMATION
{
502 ULONG NextEntryOffset
;
503 ULONG StreamNameLength
;
504 LARGE_INTEGER StreamSize
;
505 LARGE_INTEGER StreamAllocationSize
;
507 } FILE_STREAM_INFORMATION
, *PFILE_STREAM_INFORMATION
;
509 typedef struct _FILE_ALLOCATION_INFORMATION
{
510 LARGE_INTEGER AllocationSize
;
511 } FILE_ALLOCATION_INFORMATION
, *PFILE_ALLOCATION_INFORMATION
;
513 typedef struct _FILE_NAME_INFORMATION
{
514 ULONG FileNameLength
;
516 } FILE_NAME_INFORMATION
, *PFILE_NAME_INFORMATION
;
518 typedef struct _FILE_NAMES_INFORMATION
520 ULONG NextEntryOffset
;
522 ULONG FileNameLength
;
524 } FILE_NAMES_INFORMATION
, *PFILE_NAMES_INFORMATION
;
527 typedef struct _FILE_RENAME_INFORMATION
{
530 ULONG FileNameLength
;
532 } FILE_RENAME_INFORMATION
, *PFILE_RENAME_INFORMATION
;
535 typedef struct _FILE_INTERNAL_INFORMATION
{
536 LARGE_INTEGER IndexNumber
;
537 } FILE_INTERNAL_INFORMATION
, *PFILE_INTERNAL_INFORMATION
;
539 typedef struct _FILE_ACCESS_INFORMATION
{
540 ACCESS_MASK AccessFlags
;
541 } FILE_ACCESS_INFORMATION
, *PFILE_ACCESS_INFORMATION
;
544 typedef struct _FILE_MODE_INFORMATION
{
546 } FILE_MODE_INFORMATION
, *PFILE_MODE_INFORMATION
;
548 typedef struct _FILE_COMPRESSION_INFORMATION
{
549 LARGE_INTEGER CompressedFileSize
;
550 USHORT CompressionFormat
;
551 UCHAR CompressionUnitShift
;
555 } FILE_COMPRESSION_INFORMATION
, *PFILE_COMPRESSION_INFORMATION
;
557 typedef struct _FILE_ALL_INFORMATION
{
558 FILE_BASIC_INFORMATION BasicInformation
;
559 FILE_STANDARD_INFORMATION StandardInformation
;
560 FILE_INTERNAL_INFORMATION InternalInformation
;
561 FILE_EA_INFORMATION EaInformation
;
562 FILE_ACCESS_INFORMATION AccessInformation
;
563 FILE_POSITION_INFORMATION PositionInformation
;
564 FILE_MODE_INFORMATION ModeInformation
;
565 FILE_ALIGNMENT_INFORMATION AlignmentInformation
;
566 FILE_NAME_INFORMATION NameInformation
;
567 } FILE_ALL_INFORMATION
, *PFILE_ALL_INFORMATION
;
569 // file system information structures
571 typedef struct _FILE_FS_DEVICE_INFORMATION
{
572 DEVICE_TYPE DeviceType
;
573 ULONG Characteristics
;
574 } FILE_FS_DEVICE_INFORMATION
, *PFILE_FS_DEVICE_INFORMATION
;
577 typedef struct _FILE_FS_VOLUME_INFORMATION
{
578 TIME VolumeCreationTime
;
579 ULONG VolumeSerialNumber
;
580 ULONG VolumeLabelLength
;
581 BOOLEAN SupportsObjects
;
582 WCHAR VolumeLabel
[0];
583 } FILE_FS_VOLUME_INFORMATION
, *PFILE_FS_VOLUME_INFORMATION
;
585 typedef struct _FILE_FS_SIZE_INFORMATION
{
586 LARGE_INTEGER TotalAllocationUnits
;
587 LARGE_INTEGER AvailableAllocationUnits
;
588 ULONG SectorsPerAllocationUnit
;
589 ULONG BytesPerSector
;
590 } FILE_FS_SIZE_INFORMATION
, *PFILE_FS_SIZE_INFORMATION
;
592 typedef struct _FILE_FS_ATTRIBUTE_INFORMATION
{
593 ULONG FileSystemAttributes
;
594 LONG MaximumComponentNameLength
;
595 ULONG FileSystemNameLength
;
596 WCHAR FileSystemName
[0];
597 } FILE_FS_ATTRIBUTE_INFORMATION
, *PFILE_FS_ATTRIBUTE_INFORMATION
;
600 FileSystemAttributes is one of the following values:
602 FILE_CASE_SENSITIVE_SEARCH 0x00000001
603 FILE_CASE_PRESERVED_NAMES 0x00000002
604 FILE_UNICODE_ON_DISK 0x00000004
605 FILE_PERSISTENT_ACLS 0x00000008
606 FILE_FILE_COMPRESSION 0x00000010
607 FILE_VOLUME_QUOTAS 0x00000020
608 FILE_VOLUME_IS_COMPRESSED 0x00008000
610 typedef struct _FILE_FS_LABEL_INFORMATION
{
611 ULONG VolumeLabelLength
;
612 WCHAR VolumeLabel
[0];
613 } FILE_FS_LABEL_INFORMATION
, *PFILE_FS_LABEL_INFORMATION
;
615 // read file scatter / write file scatter
616 //FIXME I am a win32 struct aswell
618 typedef union _FILE_SEGMENT_ELEMENT
{
621 }FILE_SEGMENT_ELEMENT
, *PFILE_SEGMENT_ELEMENT
;
623 // directory information
625 typedef struct _OBJDIR_INFORMATION
{
626 UNICODE_STRING ObjectName
;
627 UNICODE_STRING ObjectTypeName
; // Directory, Device ...
629 } OBJDIR_INFORMATION
, *POBJDIR_INFORMATION
;
632 typedef struct _FILE_DIRECTORY_INFORMATION
{
633 ULONG NextEntryOffset
;
639 LARGE_INTEGER EndOfFile
;
640 LARGE_INTEGER AllocationSize
;
641 ULONG FileAttributes
;
642 ULONG FileNameLength
;
644 } FILE_DIRECTORY_INFORMATION
, *PFILE_DIRECTORY_INFORMATION
;
646 typedef struct _FILE_FULL_DIRECTORY_INFORMATION
{
647 ULONG NextEntryOffset
;
653 LARGE_INTEGER EndOfFile
;
654 LARGE_INTEGER AllocationSize
;
655 ULONG FileAttributes
;
656 ULONG FileNameLength
;
658 WCHAR FileName
[0]; // variable size
659 } FILE_FULL_DIRECTORY_INFORMATION
, *PFILE_FULL_DIRECTORY_INFORMATION
,
660 FILE_FULL_DIR_INFORMATION
, *PFILE_FULL_DIR_INFORMATION
;
663 typedef struct _FILE_BOTH_DIRECTORY_INFORMATION
{
664 ULONG NextEntryOffset
;
670 LARGE_INTEGER EndOfFile
;
671 LARGE_INTEGER AllocationSize
;
672 ULONG FileAttributes
;
673 ULONG FileNameLength
;
675 CHAR ShortNameLength
;
676 WCHAR ShortName
[12]; // 8.3 name
678 } FILE_BOTH_DIRECTORY_INFORMATION
, *PFILE_BOTH_DIRECTORY_INFORMATION
,
679 FILE_BOTH_DIR_INFORMATION
, *PFILE_BOTH_DIR_INFORMATION
;
683 NotifyFilter / CompletionFilter:
685 FILE_NOTIFY_CHANGE_FILE_NAME 0x00000001
686 FILE_NOTIFY_CHANGE_DIR_NAME 0x00000002
687 FILE_NOTIFY_CHANGE_NAME 0x00000003
688 FILE_NOTIFY_CHANGE_ATTRIBUTES 0x00000004
689 FILE_NOTIFY_CHANGE_SIZE 0x00000008
690 FILE_NOTIFY_CHANGE_LAST_WRITE 0x00000010
691 FILE_NOTIFY_CHANGE_LAST_ACCESS 0x00000020
692 FILE_NOTIFY_CHANGE_CREATION 0x00000040
693 FILE_NOTIFY_CHANGE_EA 0x00000080
694 FILE_NOTIFY_CHANGE_SECURITY 0x00000100
695 FILE_NOTIFY_CHANGE_STREAM_NAME 0x00000200
696 FILE_NOTIFY_CHANGE_STREAM_SIZE 0x00000400
697 FILE_NOTIFY_CHANGE_STREAM_WRITE 0x00000800
700 typedef struct _FILE_NOTIFY_INFORMATION
{
702 ULONG FileNameLength
;
704 } FILE_NOTIFY_INFORMATION
;
708 Action is one of the following values:
710 FILE_ACTION_ADDED 0x00000001
711 FILE_ACTION_REMOVED 0x00000002
712 FILE_ACTION_MODIFIED 0x00000003
713 FILE_ACTION_RENAMED_OLD_NAME 0x00000004
714 FILE_ACTION_RENAMED_NEW_NAME 0x00000005
715 FILE_ACTION_ADDED_STREAM 0x00000006
716 FILE_ACTION_REMOVED_STREAM 0x00000007
717 FILE_ACTION_MODIFIED_STREAM 0x00000008
722 //FIXME: I am a win32 object
726 LPVOID lpArgToCompletionRoutine
,
727 DWORD dwTimerLowValue
,
728 DWORD dwTimerHighValue
732 // File System Control commands ( related to defragging )
734 #define FSCTL_READ_MFT_RECORD 0x90068 // NTFS only
735 #define FSCTL_GET_VOLUME_BITMAP 0x9006F
736 #define FSCTL_GET_RETRIEVAL_POINTERS 0x90073
737 #define FSCTL_MOVE_FILE 0x90074
739 typedef struct _MAPPING_PAIR
743 } MAPPING_PAIR
, *PMAPPING_PAIR
;
745 typedef struct _GET_RETRIEVAL_DESCRIPTOR
749 MAPPING_PAIR Pair
[0]; // variable size
750 } GET_RETRIEVAL_DESCRIPTOR
, *PGET_RETRIEVAL_DESCRIPTOR
;
752 typedef struct _BITMAP_DESCRIPTOR
755 ULONGLONG ClustersToEndOfVol
;
756 BYTE Map
[0]; // variable size
757 } BITMAP_DESCRIPTOR
, *PBITMAP_DESCRIPTOR
;
759 typedef struct _MOVEFILE_DESCRIPTOR
763 LARGE_INTEGER StartVcn
;
764 LARGE_INTEGER TargetLcn
;
767 } MOVEFILE_DESCRIPTOR
, *PMOVEFILE_DESCRIPTOR
;
770 // semaphore information
772 typedef struct _SEMAPHORE_BASIC_INFORMATION
776 } SEMAPHORE_BASIC_INFORMATION
, *PSEMAPHORE_BASIC_INFORMATION
;
780 typedef struct _EVENT_BASIC_INFORMATION
784 } EVENT_BASIC_INFORMATION
, *PEVENT_INFORMATION
;
786 //typedef enum _TIMER_TYPE
788 // NotificationTimer,
789 // SynchronizationTimer
793 struct _LPC_PORT_BASIC_INFORMATION
810 } LPC_PORT_BASIC_INFORMATION
, * PLPC_PORT_BASIC_INFORMATION
;