mirror of
https://github.com/reactos/reactos.git
synced 2025-04-15 01:47:30 +00:00
[NDK/DDK]
- Improve/fix/update/add several function declarations and structures Patch by Samuel Serapion svn path=/trunk/; revision=55151
This commit is contained in:
parent
50b16668d7
commit
97efb41b10
9 changed files with 244 additions and 45 deletions
|
@ -1156,7 +1156,7 @@ RtlUnicodeToMultiByteN(
|
|||
_Out_writes_bytes_to_(MaxBytesInMultiByteString, *BytesInMultiByteString) PCHAR MultiByteString,
|
||||
_In_ ULONG MaxBytesInMultiByteString,
|
||||
_Out_opt_ PULONG BytesInMultiByteString,
|
||||
_In_reads_bytes_(BytesInUnicodeString) PWCH UnicodeString,
|
||||
_In_reads_bytes_(BytesInUnicodeString) PCWCH UnicodeString,
|
||||
_In_ ULONG BytesInUnicodeString);
|
||||
|
||||
_IRQL_requires_max_(PASSIVE_LEVEL)
|
||||
|
|
|
@ -115,6 +115,8 @@ typedef enum _CM_SHARE_DISPOSITION
|
|||
//
|
||||
#define CM_RESOURCE_INTERRUPT_LEVEL_SENSITIVE 0x0000
|
||||
#define CM_RESOURCE_INTERRUPT_LATCHED 0x0001
|
||||
#define CM_RESOURCE_INTERRUPT_MESSAGE 0x0002
|
||||
#define CM_RESOURCE_INTERRUPT_POLICY_INCLUDED 0x0004
|
||||
|
||||
//
|
||||
// NtInitializeRegistry Flags
|
||||
|
@ -136,7 +138,10 @@ typedef enum _KEY_INFORMATION_CLASS
|
|||
KeyFullInformation,
|
||||
KeyNameInformation,
|
||||
KeyCachedInformation,
|
||||
KeyFlagsInformation
|
||||
KeyFlagsInformation,
|
||||
KeyVirtualizationInformation,
|
||||
KeyHandleTagsInformation,
|
||||
MaxKeyInfoClass
|
||||
} KEY_INFORMATION_CLASS;
|
||||
|
||||
typedef enum _KEY_VALUE_INFORMATION_CLASS
|
||||
|
@ -145,7 +150,8 @@ typedef enum _KEY_VALUE_INFORMATION_CLASS
|
|||
KeyValueFullInformation,
|
||||
KeyValuePartialInformation,
|
||||
KeyValueFullInformationAlign64,
|
||||
KeyValuePartialInformationAlign64
|
||||
KeyValuePartialInformationAlign64,
|
||||
MaxKeyValueInfoClass
|
||||
} KEY_VALUE_INFORMATION_CLASS;
|
||||
|
||||
typedef enum _KEY_SET_INFORMATION_CLASS {
|
||||
|
@ -216,11 +222,45 @@ typedef struct _KEY_WRITE_TIME_INFORMATION
|
|||
LARGE_INTEGER LastWriteTime;
|
||||
} KEY_WRITE_TIME_INFORMATION, *PKEY_WRITE_TIME_INFORMATION;
|
||||
|
||||
typedef struct _KEY_WOW64_FLAGS_INFORMATION
|
||||
{
|
||||
ULONG UserFlags;
|
||||
} KEY_WOW64_FLAGS_INFORMATION, *PKEY_WOW64_FLAGS_INFORMATION;
|
||||
|
||||
typedef struct _KEY_USER_FLAGS_INFORMATION
|
||||
{
|
||||
ULONG UserFlags;
|
||||
} KEY_USER_FLAGS_INFORMATION, *PKEY_USER_FLAGS_INFORMATION;
|
||||
|
||||
typedef struct _KEY_HANDLE_TAGS_INFORMATION
|
||||
{
|
||||
ULONG HandleTags;
|
||||
} KEY_HANDLE_TAGS_INFORMATION, *PKEY_HANDLE_TAGS_INFORMATION;
|
||||
|
||||
typedef struct _KEY_CONTROL_FLAGS_INFORMATION
|
||||
{
|
||||
ULONG ControlFlags;
|
||||
} KEY_CONTROL_FLAGS_INFORMATION, *PKEY_CONTROL_FLAGS_INFORMATION;
|
||||
|
||||
typedef struct _KEY_VIRTUALIZATION_INFORMATION
|
||||
{
|
||||
ULONG VirtualizationCandidate:1;
|
||||
ULONG VirtualizationEnabled:1;
|
||||
ULONG VirtualTarget:1;
|
||||
ULONG VirtualStore:1;
|
||||
ULONG VirtualSource:1;
|
||||
ULONG Reserved:27;
|
||||
} KEY_VIRTUALIZATION_INFORMATION, *PKEY_VIRTUALIZATION_INFORMATION;
|
||||
|
||||
typedef struct _KEY_SET_VIRTUALIZATION_INFORMATION
|
||||
{
|
||||
ULONG VirtualTarget:1;
|
||||
ULONG VirtualStore:1;
|
||||
ULONG VirtualSource:1;
|
||||
ULONG Reserved:29;
|
||||
} KEY_SET_VIRTUALIZATION_INFORMATION, *PKEY_SET_VIRTUALIZATION_INFORMATION;
|
||||
|
||||
|
||||
typedef struct _KEY_FULL_INFORMATION
|
||||
{
|
||||
LARGE_INTEGER LastWriteTime;
|
||||
|
@ -268,6 +308,13 @@ typedef struct _KEY_VALUE_PARTIAL_INFORMATION
|
|||
UCHAR Data[1];
|
||||
} KEY_VALUE_PARTIAL_INFORMATION, *PKEY_VALUE_PARTIAL_INFORMATION;
|
||||
|
||||
typedef struct _KEY_VALUE_PARTIAL_INFORMATION_ALIGN64
|
||||
{
|
||||
ULONG Type;
|
||||
ULONG DataLength;
|
||||
UCHAR Data[1];
|
||||
} KEY_VALUE_PARTIAL_INFORMATION_ALIGN64, *PKEY_VALUE_PARTIAL_INFORMATION_ALIGN64;
|
||||
|
||||
typedef struct _KEY_VALUE_BASIC_INFORMATION
|
||||
{
|
||||
ULONG TitleIndex;
|
||||
|
|
|
@ -772,7 +772,7 @@ typedef struct _SYSTEM_PERFORMANCE_INFORMATION
|
|||
ULONG TotalSystemCodePages;
|
||||
ULONG NonPagedPoolLookasideHits;
|
||||
ULONG PagedPoolLookasideHits;
|
||||
ULONG Spare3Count;
|
||||
ULONG AvailablePagedPoolPages;
|
||||
ULONG ResidentSystemCachePage;
|
||||
ULONG ResidentPagedPoolPage;
|
||||
ULONG ResidentSystemDriverPage;
|
||||
|
@ -849,9 +849,10 @@ typedef struct _SYSTEM_PROCESS_INFORMATION
|
|||
{
|
||||
ULONG NextEntryOffset;
|
||||
ULONG NumberOfThreads;
|
||||
LARGE_INTEGER SpareLi1;
|
||||
LARGE_INTEGER SpareLi2;
|
||||
LARGE_INTEGER SpareLi3;
|
||||
LARGE_INTEGER WorkingSetPrivateSize; //VISTA
|
||||
ULONG HardFaultCount; //WIN7
|
||||
ULONG NumberOfThreadsHighWatermark; //WIN7
|
||||
ULONGLONG CycleTime; //WIN7
|
||||
LARGE_INTEGER CreateTime;
|
||||
LARGE_INTEGER UserTime;
|
||||
LARGE_INTEGER KernelTime;
|
||||
|
@ -868,8 +869,8 @@ typedef struct _SYSTEM_PROCESS_INFORMATION
|
|||
// NOTE: *NOT* THE SAME AS VM_COUNTERS!
|
||||
//
|
||||
SIZE_T PeakVirtualSize;
|
||||
ULONG VirtualSize;
|
||||
SIZE_T PageFaultCount;
|
||||
SIZE_T VirtualSize;
|
||||
ULONG PageFaultCount;
|
||||
SIZE_T PeakWorkingSetSize;
|
||||
SIZE_T WorkingSetSize;
|
||||
SIZE_T QuotaPeakPagedPoolUsage;
|
||||
|
@ -890,7 +891,7 @@ typedef struct _SYSTEM_PROCESS_INFORMATION
|
|||
LARGE_INTEGER WriteTransferCount;
|
||||
LARGE_INTEGER OtherTransferCount;
|
||||
|
||||
//SYSTEM_THREAD_INFORMATION TH[1];
|
||||
SYSTEM_THREAD_INFORMATION TH[1];
|
||||
} SYSTEM_PROCESS_INFORMATION, *PSYSTEM_PROCESS_INFORMATION;
|
||||
|
||||
// Class 6
|
||||
|
@ -959,7 +960,7 @@ typedef struct _SYSTEM_POOL_ENTRY
|
|||
|
||||
typedef struct _SYSTEM_POOL_INFORMATION
|
||||
{
|
||||
ULONG TotalSize;
|
||||
SIZE_T TotalSize;
|
||||
PVOID FirstEntry;
|
||||
USHORT EntryOverhead;
|
||||
BOOLEAN PoolTagPresent;
|
||||
|
@ -1072,13 +1073,13 @@ typedef struct _SYSTEM_VDM_INSTEMUL_INFO
|
|||
// Class 21
|
||||
typedef struct _SYSTEM_FILECACHE_INFORMATION
|
||||
{
|
||||
ULONG CurrentSize;
|
||||
ULONG PeakSize;
|
||||
SIZE_T CurrentSize;
|
||||
SIZE_T PeakSize;
|
||||
ULONG PageFaultCount;
|
||||
ULONG MinimumWorkingSet;
|
||||
ULONG MaximumWorkingSet;
|
||||
ULONG CurrentSizeIncludingTransitionInPages;
|
||||
ULONG PeakSizeIncludingTransitionInPages;
|
||||
SIZE_T MinimumWorkingSet;
|
||||
SIZE_T MaximumWorkingSet;
|
||||
SIZE_T CurrentSizeIncludingTransitionInPages;
|
||||
SIZE_T PeakSizeIncludingTransitionInPages;
|
||||
ULONG TransitionRePurposeCount;
|
||||
ULONG Flags;
|
||||
} SYSTEM_FILECACHE_INFORMATION, *PSYSTEM_FILECACHE_INFORMATION;
|
||||
|
@ -1098,6 +1099,7 @@ typedef struct _SYSTEM_POOLTAG
|
|||
ULONG NonPagedFrees;
|
||||
SIZE_T NonPagedUsed;
|
||||
} SYSTEM_POOLTAG, *PSYSTEM_POOLTAG;
|
||||
|
||||
typedef struct _SYSTEM_POOLTAG_INFORMATION
|
||||
{
|
||||
ULONG Count;
|
||||
|
@ -1229,7 +1231,7 @@ typedef struct _SYSTEM_REGISTRY_QUOTA_INFORMATION
|
|||
{
|
||||
ULONG RegistryQuotaAllowed;
|
||||
ULONG RegistryQuotaUsed;
|
||||
ULONG PagedPoolSize;
|
||||
SIZE_T PagedPoolSize;
|
||||
} SYSTEM_REGISTRY_QUOTA_INFORMATION, *PSYSTEM_REGISTRY_QUOTA_INFORMATION;
|
||||
|
||||
// Class 38
|
||||
|
@ -1274,7 +1276,6 @@ typedef struct _SYSTEM_LEGACY_DRIVER_INFORMATION
|
|||
{
|
||||
PNP_VETO_TYPE VetoType;
|
||||
UNICODE_STRING VetoDriver;
|
||||
// CHAR Buffer[0];
|
||||
} SYSTEM_LEGACY_DRIVER_INFORMATION, *PSYSTEM_LEGACY_DRIVER_INFORMATION;
|
||||
|
||||
// Class 44
|
||||
|
@ -1451,6 +1452,7 @@ typedef struct _SYSTEM_MEMORY_LIST_INFORMATION
|
|||
SIZE_T BadPageCount;
|
||||
SIZE_T PageCountByPriority[8];
|
||||
SIZE_T RepurposedPagesByPriority[8];
|
||||
SIZE_T ModifiedPageCountPageFile;
|
||||
} SYSTEM_MEMORY_LIST_INFORMATION, *PSYSTEM_MEMORY_LIST_INFORMATION;
|
||||
|
||||
#endif
|
||||
|
|
|
@ -114,6 +114,10 @@ typedef struct _PEB_LDR_DATA
|
|||
LIST_ENTRY InMemoryOrderModuleList;
|
||||
LIST_ENTRY InInitializationOrderModuleList;
|
||||
PVOID EntryInProgress;
|
||||
#if (NTDDI_VERSION >= NTDDI_WIN7)
|
||||
UCHAR ShutdownInProgress;
|
||||
PVOID ShutdownThreadId;
|
||||
#endif
|
||||
} PEB_LDR_DATA, *PPEB_LDR_DATA;
|
||||
|
||||
//
|
||||
|
|
|
@ -146,7 +146,7 @@ typedef struct STRUCT(_PEB)
|
|||
PTR(PVOID*) FlsCallback;
|
||||
STRUCT(LIST_ENTRY) FlsListHead;
|
||||
PTR(PVOID) FlsBitmap;
|
||||
ULONG FlsBitmapBits[4];
|
||||
ULONG FlsBitmapBits[FLS_MAXIMUM_AVAILABLE/(sizeof(ULONG)*8)];
|
||||
ULONG FlsHighIndex;
|
||||
#endif
|
||||
#if (NTDDI_VERSION >= NTDDI_LONGHORN)
|
||||
|
@ -189,6 +189,7 @@ C_ASSERT(FIELD_OFFSET(STRUCT(PEB), FlsHighIndex) == 0x22C);
|
|||
#endif
|
||||
#endif
|
||||
|
||||
#define GDI_BATCH_BUFFER_SIZE 0x136
|
||||
//
|
||||
// GDI Batch Descriptor
|
||||
//
|
||||
|
@ -196,7 +197,7 @@ typedef struct STRUCT(_GDI_TEB_BATCH)
|
|||
{
|
||||
ULONG Offset;
|
||||
PTR(HANDLE) HDC;
|
||||
ULONG Buffer[0x136];
|
||||
ULONG Buffer[GDI_BATCH_BUFFER_SIZE];
|
||||
} STRUCT(GDI_TEB_BATCH), *STRUCT(PGDI_TEB_BATCH);
|
||||
|
||||
//
|
||||
|
|
|
@ -764,6 +764,19 @@ typedef struct _KERNEL_USER_TIMES
|
|||
LARGE_INTEGER UserTime;
|
||||
} KERNEL_USER_TIMES, *PKERNEL_USER_TIMES;
|
||||
|
||||
typedef struct _POOLED_USAGE_AND_LIMITS
|
||||
{
|
||||
SIZE_T PeakPagedPoolUsage;
|
||||
SIZE_T PagedPoolUsage;
|
||||
SIZE_T PagedPoolLimit;
|
||||
SIZE_T PeakNonPagedPoolUsage;
|
||||
SIZE_T NonPagedPoolUsage;
|
||||
SIZE_T NonPagedPoolLimit;
|
||||
SIZE_T PeakPagefileUsage;
|
||||
SIZE_T PagefileUsage;
|
||||
SIZE_T PagefileLimit;
|
||||
} POOLED_USAGE_AND_LIMITS, *PPOOLED_USAGE_AND_LIMITS;
|
||||
|
||||
typedef struct _PROCESS_SESSION_INFORMATION
|
||||
{
|
||||
ULONG SessionId;
|
||||
|
|
|
@ -964,7 +964,7 @@ NTSTATUS
|
|||
NTAPI
|
||||
RtlWalkHeap(
|
||||
IN HANDLE HeapHandle,
|
||||
IN PVOID HeapEntry
|
||||
IN OUT PRTL_HEAP_WALK_ENTRY HeapEntry
|
||||
);
|
||||
|
||||
#define RtlGetProcessHeap() (NtCurrentPeb()->ProcessHeap)
|
||||
|
@ -1818,7 +1818,7 @@ RtlUnicodeToMultiByteN(
|
|||
PCHAR MbString,
|
||||
ULONG MbSize,
|
||||
PULONG ResultSize,
|
||||
PWCHAR UnicodeString,
|
||||
PCWCH UnicodeString,
|
||||
ULONG UnicodeSize
|
||||
);
|
||||
|
||||
|
@ -1997,6 +1997,16 @@ RtlFillMemoryUlong(
|
|||
IN ULONG Fill
|
||||
);
|
||||
|
||||
NTSYSAPI
|
||||
VOID
|
||||
NTAPI
|
||||
RtlFillMemoryUlonglong(
|
||||
OUT PVOID Destination,
|
||||
IN SIZE_T Length,
|
||||
IN ULONGLONG Pattern
|
||||
);
|
||||
|
||||
|
||||
NTSYSAPI
|
||||
SIZE_T
|
||||
NTAPI
|
||||
|
@ -2080,6 +2090,25 @@ RtlPrefixString(
|
|||
BOOLEAN CaseInsensitive
|
||||
);
|
||||
|
||||
#ifdef _M_X64
|
||||
NTSYSAPI
|
||||
NTSTATUS
|
||||
NTAPI
|
||||
RtlWow64GetThreadContext(
|
||||
IN HANDLE ThreadHandle,
|
||||
IN OUT PWOW64_CONTEXT ThreadContext
|
||||
);
|
||||
|
||||
|
||||
NTSYSAPI
|
||||
NTSTATUS
|
||||
NTAPI
|
||||
RtlWow64SetThreadContext(
|
||||
IN HANDLE ThreadHandle,
|
||||
IN PWOW64_CONTEXT ThreadContext
|
||||
);
|
||||
#endif
|
||||
|
||||
NTSYSAPI
|
||||
BOOLEAN
|
||||
NTAPI
|
||||
|
@ -2321,6 +2350,25 @@ RtlInitializeContext(
|
|||
IN PINITIAL_TEB InitialTeb
|
||||
);
|
||||
|
||||
#ifdef _M_AMD64
|
||||
NTSYSAPI
|
||||
NTSTATUS
|
||||
NTAPI
|
||||
RtlWow64GetThreadContext(
|
||||
IN HANDLE ThreadHandle,
|
||||
IN OUT PWOW64_CONTEXT ThreadContext
|
||||
);
|
||||
|
||||
|
||||
NTSYSAPI
|
||||
NTSTATUS
|
||||
NTAPI
|
||||
RtlWow64SetThreadContext(
|
||||
IN HANDLE ThreadHandle,
|
||||
IN PWOW64_CONTEXT ThreadContext
|
||||
);
|
||||
#endif
|
||||
|
||||
NTSYSAPI
|
||||
BOOLEAN
|
||||
NTAPI
|
||||
|
@ -2545,6 +2593,19 @@ RtlGetFullPathName_U(
|
|||
OUT PWSTR *ShortName
|
||||
);
|
||||
|
||||
#if (NTDDI_VERSION >= NTDDI_WIN7)
|
||||
NTSYSAPI
|
||||
NTSTATUS
|
||||
NTAPI
|
||||
RtlGetFullPathName_UEx(
|
||||
IN PWSTR FileName,
|
||||
IN ULONG BufferLength,
|
||||
OUT PWSTR Buffer,
|
||||
OUT OPTIONAL PWSTR *FilePart,
|
||||
OUT OPTIONAL RTL_PATH_TYPE *InputPathType
|
||||
);
|
||||
#endif
|
||||
|
||||
ULONG
|
||||
NTAPI
|
||||
RtlGetFullPathName_UstrEx(
|
||||
|
@ -2586,9 +2647,9 @@ NTSYSAPI
|
|||
NTSTATUS
|
||||
NTAPI
|
||||
RtlQueryEnvironmentVariable_U(
|
||||
PWSTR Environment,
|
||||
PUNICODE_STRING Name,
|
||||
PUNICODE_STRING Value
|
||||
IN OPTIONAL PWSTR Environment,
|
||||
IN PUNICODE_STRING Name,
|
||||
OUT PUNICODE_STRING Value
|
||||
);
|
||||
|
||||
VOID
|
||||
|
@ -2604,6 +2665,14 @@ RtlSetCurrentDirectory_U(
|
|||
IN PUNICODE_STRING name
|
||||
);
|
||||
|
||||
NTSYSAPI
|
||||
NTSTATUS
|
||||
NTAPI
|
||||
RtlSetCurrentEnvironment(
|
||||
IN PVOID Environment,
|
||||
OUT OPTIONAL PVOID *PreviousEnvironment
|
||||
);
|
||||
|
||||
NTSYSAPI
|
||||
NTSTATUS
|
||||
NTAPI
|
||||
|
|
|
@ -36,18 +36,23 @@ Author:
|
|||
//
|
||||
#define RTL_USER_PROCESS_PARAMETERS_NORMALIZED 0x01
|
||||
#define RTL_USER_PROCESS_PARAMETERS_PROFILE_USER 0x02
|
||||
#define RTL_USER_PROCESS_PARAMETERS_PROFILE_SERVER 0x04
|
||||
#define RTL_USER_PROCESS_PARAMETERS_PROFILE_KERNEL 0x08
|
||||
#define RTL_USER_PROCESS_PARAMETERS_PROFILE_KERNEL 0x04
|
||||
#define RTL_USER_PROCESS_PARAMETERS_PROFILE_SERVER 0x08
|
||||
#define RTL_USER_PROCESS_PARAMETERS_UNKNOWN 0x10
|
||||
#define RTL_USER_PROCESS_PARAMETERS_RESERVE_1MB 0x20
|
||||
#define RTL_USER_PROCESS_PARAMETERS_RESERVE_16MB 0x40
|
||||
#define RTL_USER_PROCESS_PARAMETERS_CASE_SENSITIVE 0x80
|
||||
#define RTL_USER_PROCESS_PARAMETERS_DISABLE_HEAP_CHECKS 0x100
|
||||
#define RTL_USER_PROCESS_PARAMETERS_PROCESS_OR_1 0x200
|
||||
#define RTL_USER_PROCESS_PARAMETERS_PROCESS_OR_2 0x400
|
||||
#define RTL_USER_PROCESS_PARAMETERS_PRIVATE_DLL_PATH 0x1000
|
||||
#define RTL_USER_PROCESS_PARAMETERS_LOCAL_DLL_PATH 0x2000
|
||||
#define RTL_USER_PROCESS_PARAMETERS_APP_MANIFEST_PRESENT 0x2000
|
||||
#define RTL_USER_PROCESS_PARAMETERS_IMAGE_KEY_MISSING 0x4000
|
||||
#define RTL_USER_PROCESS_PARAMETERS_NX 0x20000
|
||||
|
||||
#define RTL_MAX_DRIVE_LETTERS 32
|
||||
#define RTL_DRIVE_LETTER_VALID (USHORT)0x0001
|
||||
|
||||
//
|
||||
// Exception Flags
|
||||
//
|
||||
|
@ -901,44 +906,94 @@ typedef struct _RTL_PROCESS_MODULE_INFORMATION_EX
|
|||
|
||||
typedef struct _RTL_HEAP_TAG_INFO
|
||||
{
|
||||
ULONG NumberOfAllocations;
|
||||
ULONG NumberOfFrees;
|
||||
ULONG BytesAllocated;
|
||||
ULONG NumberOfAllocations;
|
||||
ULONG NumberOfFrees;
|
||||
SIZE_T BytesAllocated;
|
||||
} RTL_HEAP_TAG_INFO, *PRTL_HEAP_TAG_INFO;
|
||||
|
||||
typedef struct _RTL_HEAP_USAGE_ENTRY
|
||||
{
|
||||
struct _RTL_HEAP_USAGE_ENTRY *Next;
|
||||
PVOID Address;
|
||||
SIZE_T Size;
|
||||
USHORT AllocatorBackTraceIndex;
|
||||
USHORT TagIndex;
|
||||
} RTL_HEAP_USAGE_ENTRY, *PRTL_HEAP_USAGE_ENTRY;
|
||||
|
||||
typedef struct _RTL_HEAP_USAGE
|
||||
{
|
||||
ULONG Length;
|
||||
ULONG BytesAllocated;
|
||||
ULONG BytesCommitted;
|
||||
ULONG BytesReserved;
|
||||
ULONG BytesReservedMaximum;
|
||||
SIZE_T BytesAllocated;
|
||||
SIZE_T BytesCommitted;
|
||||
SIZE_T BytesReserved;
|
||||
SIZE_T BytesReservedMaximum;
|
||||
PRTL_HEAP_USAGE_ENTRY Entries;
|
||||
PRTL_HEAP_USAGE_ENTRY AddedEntries;
|
||||
PRTL_HEAP_USAGE_ENTRY RemovedEntries;
|
||||
UCHAR Reserved[32];
|
||||
ULONG_PTR Reserved[8];
|
||||
} RTL_HEAP_USAGE, *PRTL_HEAP_USAGE;
|
||||
|
||||
typedef struct _RTL_HEAP_WALK_ENTRY
|
||||
{
|
||||
PVOID DataAddress;
|
||||
SIZE_T DataSize;
|
||||
UCHAR OverheadBytes;
|
||||
UCHAR SegmentIndex;
|
||||
USHORT Flags;
|
||||
union
|
||||
{
|
||||
struct
|
||||
{
|
||||
SIZE_T Settable;
|
||||
USHORT TagIndex;
|
||||
USHORT AllocatorBackTraceIndex;
|
||||
ULONG Reserved[2];
|
||||
} Block;
|
||||
struct
|
||||
{
|
||||
ULONG_PTR CommittedSize;
|
||||
ULONG_PTR UnCommittedSize;
|
||||
PVOID FirstEntry;
|
||||
PVOID LastEntry;
|
||||
} Segment;
|
||||
};
|
||||
} RTL_HEAP_WALK_ENTRY, *PRTL_HEAP_WALK_ENTRY;
|
||||
|
||||
typedef struct _RTL_HEAP_ENTRY
|
||||
{
|
||||
SIZE_T Size;
|
||||
USHORT Flags;
|
||||
USHORT AllocatorBackTraceIndex;
|
||||
union
|
||||
{
|
||||
struct
|
||||
{
|
||||
SIZE_T Settable;
|
||||
ULONG Tag;
|
||||
} s1;
|
||||
struct
|
||||
{
|
||||
SIZE_T CommittedSize;
|
||||
PVOID FirstBlock;
|
||||
} s2;
|
||||
} u;
|
||||
} RTL_HEAP_ENTRY, *PRTL_HEAP_ENTRY;
|
||||
|
||||
typedef struct _RTL_HEAP_INFORMATION
|
||||
{
|
||||
PVOID BaseAddress;
|
||||
ULONG Flags;
|
||||
USHORT EntryOverhead;
|
||||
USHORT CreatorBackTraceIndex;
|
||||
ULONG BytesAllocated;
|
||||
ULONG BytesCommitted;
|
||||
SIZE_T BytesAllocated;
|
||||
SIZE_T BytesCommitted;
|
||||
ULONG NumberOfTags;
|
||||
ULONG NumberOfEntries;
|
||||
ULONG NumberOfPseudoTags;
|
||||
ULONG PseudoTagGranularity;
|
||||
ULONG Reserved[4];
|
||||
PVOID Tags;
|
||||
PVOID Entries;
|
||||
PRTL_HEAP_TAG Tags;
|
||||
PRTL_HEAP_ENTRY Entries;
|
||||
} RTL_HEAP_INFORMATION, *PRTL_HEAP_INFORMATION;
|
||||
|
||||
typedef struct _RTL_PROCESS_HEAPS
|
||||
|
@ -1196,6 +1251,8 @@ typedef struct _RANGE_LIST_ITERATOR
|
|||
//
|
||||
// RTL Resource
|
||||
//
|
||||
#define RTL_RESOURCE_FLAG_LONG_TERM ((ULONG)0x00000001)
|
||||
|
||||
typedef struct _RTL_RESOURCE
|
||||
{
|
||||
RTL_CRITICAL_SECTION Lock;
|
||||
|
@ -1205,8 +1262,8 @@ typedef struct _RTL_RESOURCE
|
|||
ULONG ExclusiveWaiters;
|
||||
LONG NumberActive;
|
||||
HANDLE OwningThread;
|
||||
ULONG TimeoutBoost;
|
||||
PVOID DebugInfo;
|
||||
ULONG Flags;
|
||||
PRTL_RESOURCE_DEBUG DebugInfo;
|
||||
} RTL_RESOURCE, *PRTL_RESOURCE;
|
||||
|
||||
//
|
||||
|
@ -1241,7 +1298,13 @@ typedef struct _RTL_USER_PROCESS_PARAMETERS
|
|||
UNICODE_STRING DesktopInfo;
|
||||
UNICODE_STRING ShellInfo;
|
||||
UNICODE_STRING RuntimeData;
|
||||
RTL_DRIVE_LETTER_CURDIR CurrentDirectories[32];
|
||||
RTL_DRIVE_LETTER_CURDIR CurrentDirectories[RTL_MAX_DRIVE_LETTERS];
|
||||
#if (NTDDI_VERSION >= NTDDI_LONGHORN)
|
||||
SIZE_T EnvironmentSize;
|
||||
#endif
|
||||
#if (NTDDI_VERSION >= NTDDI_WIN7)
|
||||
SIZE_T EnvironmentVersion;
|
||||
#endif
|
||||
} RTL_USER_PROCESS_PARAMETERS, *PRTL_USER_PROCESS_PARAMETERS;
|
||||
|
||||
typedef struct _RTL_USER_PROCESS_INFORMATION
|
||||
|
|
|
@ -1369,7 +1369,7 @@ RtlUnicodeToMultiByteN(
|
|||
_Out_writes_bytes_to_(MaxBytesInMultiByteString, *BytesInMultiByteString) PCHAR MultiByteString,
|
||||
_In_ ULONG MaxBytesInMultiByteString,
|
||||
_Out_opt_ PULONG BytesInMultiByteString,
|
||||
_In_reads_bytes_(BytesInUnicodeString) PWCH UnicodeString,
|
||||
_In_reads_bytes_(BytesInUnicodeString) PCWCH UnicodeString,
|
||||
_In_ ULONG BytesInUnicodeString);
|
||||
|
||||
_IRQL_requires_max_(PASSIVE_LEVEL)
|
||||
|
|
Loading…
Reference in a new issue