X-Git-Url: http://git.jankratochvil.net/?a=blobdiff_plain;f=include%2Fntos%2Fzwtypes.h;h=1c3461bb00580c06ad085a85a49a8242b72f06ce;hb=e0f734ac7c51af60fef5d0a0639cf63c175f91e9;hp=cc1fe026bf8d627fa1eb3d34e7e3efb140e2944b;hpb=f4077c1bf64ef89d74a8d4822d2d7aada3ba9927;p=reactos.git diff --git a/include/ntos/zwtypes.h b/include/ntos/zwtypes.h index cc1fe02..1c3461b 100755 --- a/include/ntos/zwtypes.h +++ b/include/ntos/zwtypes.h @@ -301,8 +301,18 @@ struct _SYSTEM_PERFORMANCE_INFORMATION // SystemModuleInformation (11) typedef -struct _SYSTEM_MODULE_ENTRY +struct _SYSTEM_MODULE_INFORMATION { + ULONG Reserved[2]; + PVOID Base; + SIZE_T Size; + ULONG Flags; + USHORT Index; + USHORT Unknown; + USHORT LoadCount; + USHORT ModuleNameOffset; + CHAR ImageName[256]; +#if 0 ULONG Unknown1; ULONG Unknown2; PVOID BaseAddress; @@ -312,14 +322,15 @@ struct _SYSTEM_MODULE_ENTRY USHORT NameLength; /* Length of module name not including the path, this field contains valid value only for NTOSKRNL module*/ USHORT PathLength; /* Length of 'directory path' part of modulename*/ CHAR Name [256]; -} SYSTEM_MODULE_ENTRY, * PSYSTEM_MODULE_ENTRY; +#endif +} SYSTEM_MODULE_INFORMATION, * PSYSTEM_MODULE_INFORMATION; typedef -struct _SYSTEM_MODULE_INFORMATION +struct _SYSTEM_MODULES { - ULONG Count; - SYSTEM_MODULE_ENTRY Module [1]; -} SYSTEM_MODULE_INFORMATION, *PSYSTEM_MODULE_INFORMATION; + SIZE_T Count; + SYSTEM_MODULE_INFORMATION Modules[ANYSIZE_ARRAY]; +} SYSTEM_MODULES, *PSYSTEM_MODULES; // SystemHandleInformation (16) // (see ontypes.h) @@ -608,9 +619,9 @@ typedef struct _QUOTA_LIMITS // Information class 2 typedef struct _IO_COUNTERS { - ULONG ReadOperationCount; - ULONG WriteOperationCount; - ULONG OtherOperationCount; + LARGE_INTEGER ReadOperationCount; + LARGE_INTEGER WriteOperationCount; + LARGE_INTEGER OtherOperationCount; LARGE_INTEGER ReadTransferCount; LARGE_INTEGER WriteTransferCount; LARGE_INTEGER OtherTransferCount; @@ -721,10 +732,10 @@ typedef struct _OBJECT_NAME_INFORMATION typedef struct _FILE_BASIC_INFORMATION { - TIME CreationTime; - TIME LastAccessTime; - TIME LastWriteTime; - TIME ChangeTime; + LARGE_INTEGER CreationTime; + LARGE_INTEGER LastAccessTime; + LARGE_INTEGER LastWriteTime; + LARGE_INTEGER ChangeTime; ULONG FileAttributes; } FILE_BASIC_INFORMATION, *PFILE_BASIC_INFORMATION; @@ -881,6 +892,11 @@ typedef struct _FILE_COMPRESSION_INFORMATION { UCHAR Reserved[3]; } FILE_COMPRESSION_INFORMATION, *PFILE_COMPRESSION_INFORMATION; +typedef struct _FILE_COMPLETION_INFORMATION { // Information Class 30 + HANDLE IoCompletionHandle; + ULONG CompletionKey; +} FILE_COMPLETION_INFORMATION, *PFILE_COMPLETION_INFORMATION; + typedef struct _FILE_ALL_INFORMATION { FILE_BASIC_INFORMATION BasicInformation; FILE_STANDARD_INFORMATION StandardInformation; @@ -997,6 +1013,24 @@ typedef struct _FILE_BOTH_DIRECTORY_INFORMATION { } FILE_BOTH_DIRECTORY_INFORMATION, *PFILE_BOTH_DIRECTORY_INFORMATION, FILE_BOTH_DIR_INFORMATION, *PFILE_BOTH_DIR_INFORMATION; +typedef struct _FILE_ID_BOTH_DIR_INFORMATION { + ULONG NextEntryOffset; + ULONG FileIndex; + LARGE_INTEGER CreationTime; + LARGE_INTEGER LastAccessTime; + LARGE_INTEGER LastWriteTime; + LARGE_INTEGER ChangeTime; + LARGE_INTEGER EndOfFile; + LARGE_INTEGER AllocationSize; + ULONG FileAttributes; + ULONG FileNameLength; + ULONG EaSize; + CCHAR ShortNameLength; + WCHAR ShortName[12]; + LARGE_INTEGER FileId; + WCHAR FileName[1]; +} FILE_ID_BOTH_DIR_INFORMATION, *PFILE_ID_BOTH_DIR_INFORMATION; + /* NotifyFilter / CompletionFilter: @@ -1021,6 +1055,7 @@ typedef struct _FILE_NOTIFY_INFORMATION { WCHAR FileName[0]; } FILE_NOTIFY_INFORMATION; +#define FSCTL_DISMOUNT_VOLUME 0x90020 #define FSCTL_GET_VOLUME_BITMAP 0x9006F #define FSCTL_GET_RETRIEVAL_POINTERS 0x90073 #define FSCTL_MOVE_FILE 0x90074 @@ -1069,6 +1104,14 @@ typedef enum SHUTDOWN_ACTION_TAG { ShutdownPowerOff } SHUTDOWN_ACTION; +typedef enum _IO_COMPLETION_INFORMATION_CLASS { + IoCompletionBasicInformation +} IO_COMPLETION_INFORMATION_CLASS; + +typedef struct _IO_COMPLETION_BASIC_INFORMATION { + LONG SignalState; +} IO_COMPLETION_BASIC_INFORMATION, *PIO_COMPLETION_BASIC_INFORMATION; + #else /* __USE_W32API */ #define DebugDbgLoadSymbols ((DEBUG_CONTROL_CODE)0xffffffff) @@ -1200,53 +1243,61 @@ struct _SYSTEM_PATH_INFORMATION } SYSTEM_PATH_INFORMATION, * PSYSTEM_PATH_INFORMATION; // SystemProcessInformation (5) -typedef -struct _SYSTEM_THREAD_INFORMATION -{ - TIME KernelTime; - TIME UserTime; - TIME CreateTime; - ULONG TickCount; - ULONG StartEIP; - CLIENT_ID ClientId; - ULONG DynamicPriority; - ULONG BasePriority; - ULONG nSwitches; - DWORD State; - KWAIT_REASON WaitReason; - -} SYSTEM_THREAD_INFORMATION, *PSYSTEM_THREAD_INFORMATION; -typedef -struct SYSTEM_PROCESS_INFORMATION -{ - ULONG RelativeOffset; - ULONG ThreadCount; - ULONG Unused1 [6]; - TIME CreateTime; - TIME UserTime; - TIME KernelTime; - UNICODE_STRING Name; - ULONG BasePriority; - ULONG ProcessId; - ULONG ParentProcessId; - ULONG HandleCount; - ULONG Unused2[2]; - ULONG PeakVirtualSizeBytes; - ULONG TotalVirtualSizeBytes; - ULONG PageFaultCount; - ULONG PeakWorkingSetSizeBytes; - ULONG TotalWorkingSetSizeBytes; - ULONG PeakPagedPoolUsagePages; - ULONG TotalPagedPoolUsagePages; - ULONG PeakNonPagedPoolUsagePages; - ULONG TotalNonPagedPoolUsagePages; - ULONG TotalPageFileUsageBytes; - ULONG PeakPageFileUsageBytes; - ULONG TotalPrivateBytes; - SYSTEM_THREAD_INFORMATION ThreadSysInfo [1]; - -} SYSTEM_PROCESS_INFORMATION, *PSYSTEM_PROCESS_INFORMATION; +typedef struct _SYSTEM_THREADS +{ + TIME KernelTime; + TIME UserTime; + TIME CreateTime; + ULONG WaitTime; + PVOID StartAddress; + CLIENT_ID ClientId; + KPRIORITY Priority; + KPRIORITY BasePriority; + ULONG ContextSwitchCount; + ULONG State; + KWAIT_REASON WaitReason; +} SYSTEM_THREADS, *PSYSTEM_THREADS; + +typedef struct _SYSTEM_PROCESSES_NT4 +{ + SIZE_T NextEntryDelta; + ULONG ThreadCount; + ULONG Reserved1[6]; + TIME CreateTime; + TIME UserTime; + TIME KernelTime; + UNICODE_STRING ProcessName; + KPRIORITY BasePriority; + ULONG ProcessId; + ULONG InheritedFromProcessId; + ULONG HandleCount; + ULONG Reserved2[2]; + VM_COUNTERS VmCounters; + SYSTEM_THREADS Threads[ANYSIZE_ARRAY]; +} SYSTEM_PROCESSES_NT4, *PSYSTEM_PROCESSES_NT4; + +typedef struct _SYSTEM_PROCESSES_NT5 +{ + SIZE_T NextEntryDelta; + ULONG ThreadCount; + ULONG Reserved1[6]; + TIME CreateTime; + TIME UserTime; + TIME KernelTime; + UNICODE_STRING ProcessName; + KPRIORITY BasePriority; + ULONG ProcessId; + ULONG InheritedFromProcessId; + ULONG HandleCount; + ULONG Reserved2[2]; + VM_COUNTERS VmCounters; + IO_COUNTERS IoCounters; + SYSTEM_THREADS Threads[ANYSIZE_ARRAY]; +} SYSTEM_PROCESSES_NT5, *PSYSTEM_PROCESSES_NT5; + +/* Not sure. What version are we emulating? */ +typedef SYSTEM_PROCESSES_NT5 SYSTEM_PROCESSES, *PSYSTEM_PROCESSES; // SystemCallCountInformation (6) typedef