mirror of
https://github.com/reactos/reactos.git
synced 2025-04-21 04:37:15 +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,
|
_Out_writes_bytes_to_(MaxBytesInMultiByteString, *BytesInMultiByteString) PCHAR MultiByteString,
|
||||||
_In_ ULONG MaxBytesInMultiByteString,
|
_In_ ULONG MaxBytesInMultiByteString,
|
||||||
_Out_opt_ PULONG BytesInMultiByteString,
|
_Out_opt_ PULONG BytesInMultiByteString,
|
||||||
_In_reads_bytes_(BytesInUnicodeString) PWCH UnicodeString,
|
_In_reads_bytes_(BytesInUnicodeString) PCWCH UnicodeString,
|
||||||
_In_ ULONG BytesInUnicodeString);
|
_In_ ULONG BytesInUnicodeString);
|
||||||
|
|
||||||
_IRQL_requires_max_(PASSIVE_LEVEL)
|
_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_LEVEL_SENSITIVE 0x0000
|
||||||
#define CM_RESOURCE_INTERRUPT_LATCHED 0x0001
|
#define CM_RESOURCE_INTERRUPT_LATCHED 0x0001
|
||||||
|
#define CM_RESOURCE_INTERRUPT_MESSAGE 0x0002
|
||||||
|
#define CM_RESOURCE_INTERRUPT_POLICY_INCLUDED 0x0004
|
||||||
|
|
||||||
//
|
//
|
||||||
// NtInitializeRegistry Flags
|
// NtInitializeRegistry Flags
|
||||||
|
@ -136,7 +138,10 @@ typedef enum _KEY_INFORMATION_CLASS
|
||||||
KeyFullInformation,
|
KeyFullInformation,
|
||||||
KeyNameInformation,
|
KeyNameInformation,
|
||||||
KeyCachedInformation,
|
KeyCachedInformation,
|
||||||
KeyFlagsInformation
|
KeyFlagsInformation,
|
||||||
|
KeyVirtualizationInformation,
|
||||||
|
KeyHandleTagsInformation,
|
||||||
|
MaxKeyInfoClass
|
||||||
} KEY_INFORMATION_CLASS;
|
} KEY_INFORMATION_CLASS;
|
||||||
|
|
||||||
typedef enum _KEY_VALUE_INFORMATION_CLASS
|
typedef enum _KEY_VALUE_INFORMATION_CLASS
|
||||||
|
@ -145,7 +150,8 @@ typedef enum _KEY_VALUE_INFORMATION_CLASS
|
||||||
KeyValueFullInformation,
|
KeyValueFullInformation,
|
||||||
KeyValuePartialInformation,
|
KeyValuePartialInformation,
|
||||||
KeyValueFullInformationAlign64,
|
KeyValueFullInformationAlign64,
|
||||||
KeyValuePartialInformationAlign64
|
KeyValuePartialInformationAlign64,
|
||||||
|
MaxKeyValueInfoClass
|
||||||
} KEY_VALUE_INFORMATION_CLASS;
|
} KEY_VALUE_INFORMATION_CLASS;
|
||||||
|
|
||||||
typedef enum _KEY_SET_INFORMATION_CLASS {
|
typedef enum _KEY_SET_INFORMATION_CLASS {
|
||||||
|
@ -216,11 +222,45 @@ typedef struct _KEY_WRITE_TIME_INFORMATION
|
||||||
LARGE_INTEGER LastWriteTime;
|
LARGE_INTEGER LastWriteTime;
|
||||||
} KEY_WRITE_TIME_INFORMATION, *PKEY_WRITE_TIME_INFORMATION;
|
} 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
|
typedef struct _KEY_USER_FLAGS_INFORMATION
|
||||||
{
|
{
|
||||||
ULONG UserFlags;
|
ULONG UserFlags;
|
||||||
} KEY_USER_FLAGS_INFORMATION, *PKEY_USER_FLAGS_INFORMATION;
|
} 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
|
typedef struct _KEY_FULL_INFORMATION
|
||||||
{
|
{
|
||||||
LARGE_INTEGER LastWriteTime;
|
LARGE_INTEGER LastWriteTime;
|
||||||
|
@ -268,6 +308,13 @@ typedef struct _KEY_VALUE_PARTIAL_INFORMATION
|
||||||
UCHAR Data[1];
|
UCHAR Data[1];
|
||||||
} KEY_VALUE_PARTIAL_INFORMATION, *PKEY_VALUE_PARTIAL_INFORMATION;
|
} 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
|
typedef struct _KEY_VALUE_BASIC_INFORMATION
|
||||||
{
|
{
|
||||||
ULONG TitleIndex;
|
ULONG TitleIndex;
|
||||||
|
|
|
@ -772,7 +772,7 @@ typedef struct _SYSTEM_PERFORMANCE_INFORMATION
|
||||||
ULONG TotalSystemCodePages;
|
ULONG TotalSystemCodePages;
|
||||||
ULONG NonPagedPoolLookasideHits;
|
ULONG NonPagedPoolLookasideHits;
|
||||||
ULONG PagedPoolLookasideHits;
|
ULONG PagedPoolLookasideHits;
|
||||||
ULONG Spare3Count;
|
ULONG AvailablePagedPoolPages;
|
||||||
ULONG ResidentSystemCachePage;
|
ULONG ResidentSystemCachePage;
|
||||||
ULONG ResidentPagedPoolPage;
|
ULONG ResidentPagedPoolPage;
|
||||||
ULONG ResidentSystemDriverPage;
|
ULONG ResidentSystemDriverPage;
|
||||||
|
@ -849,9 +849,10 @@ typedef struct _SYSTEM_PROCESS_INFORMATION
|
||||||
{
|
{
|
||||||
ULONG NextEntryOffset;
|
ULONG NextEntryOffset;
|
||||||
ULONG NumberOfThreads;
|
ULONG NumberOfThreads;
|
||||||
LARGE_INTEGER SpareLi1;
|
LARGE_INTEGER WorkingSetPrivateSize; //VISTA
|
||||||
LARGE_INTEGER SpareLi2;
|
ULONG HardFaultCount; //WIN7
|
||||||
LARGE_INTEGER SpareLi3;
|
ULONG NumberOfThreadsHighWatermark; //WIN7
|
||||||
|
ULONGLONG CycleTime; //WIN7
|
||||||
LARGE_INTEGER CreateTime;
|
LARGE_INTEGER CreateTime;
|
||||||
LARGE_INTEGER UserTime;
|
LARGE_INTEGER UserTime;
|
||||||
LARGE_INTEGER KernelTime;
|
LARGE_INTEGER KernelTime;
|
||||||
|
@ -868,8 +869,8 @@ typedef struct _SYSTEM_PROCESS_INFORMATION
|
||||||
// NOTE: *NOT* THE SAME AS VM_COUNTERS!
|
// NOTE: *NOT* THE SAME AS VM_COUNTERS!
|
||||||
//
|
//
|
||||||
SIZE_T PeakVirtualSize;
|
SIZE_T PeakVirtualSize;
|
||||||
ULONG VirtualSize;
|
SIZE_T VirtualSize;
|
||||||
SIZE_T PageFaultCount;
|
ULONG PageFaultCount;
|
||||||
SIZE_T PeakWorkingSetSize;
|
SIZE_T PeakWorkingSetSize;
|
||||||
SIZE_T WorkingSetSize;
|
SIZE_T WorkingSetSize;
|
||||||
SIZE_T QuotaPeakPagedPoolUsage;
|
SIZE_T QuotaPeakPagedPoolUsage;
|
||||||
|
@ -890,7 +891,7 @@ typedef struct _SYSTEM_PROCESS_INFORMATION
|
||||||
LARGE_INTEGER WriteTransferCount;
|
LARGE_INTEGER WriteTransferCount;
|
||||||
LARGE_INTEGER OtherTransferCount;
|
LARGE_INTEGER OtherTransferCount;
|
||||||
|
|
||||||
//SYSTEM_THREAD_INFORMATION TH[1];
|
SYSTEM_THREAD_INFORMATION TH[1];
|
||||||
} SYSTEM_PROCESS_INFORMATION, *PSYSTEM_PROCESS_INFORMATION;
|
} SYSTEM_PROCESS_INFORMATION, *PSYSTEM_PROCESS_INFORMATION;
|
||||||
|
|
||||||
// Class 6
|
// Class 6
|
||||||
|
@ -959,7 +960,7 @@ typedef struct _SYSTEM_POOL_ENTRY
|
||||||
|
|
||||||
typedef struct _SYSTEM_POOL_INFORMATION
|
typedef struct _SYSTEM_POOL_INFORMATION
|
||||||
{
|
{
|
||||||
ULONG TotalSize;
|
SIZE_T TotalSize;
|
||||||
PVOID FirstEntry;
|
PVOID FirstEntry;
|
||||||
USHORT EntryOverhead;
|
USHORT EntryOverhead;
|
||||||
BOOLEAN PoolTagPresent;
|
BOOLEAN PoolTagPresent;
|
||||||
|
@ -1072,13 +1073,13 @@ typedef struct _SYSTEM_VDM_INSTEMUL_INFO
|
||||||
// Class 21
|
// Class 21
|
||||||
typedef struct _SYSTEM_FILECACHE_INFORMATION
|
typedef struct _SYSTEM_FILECACHE_INFORMATION
|
||||||
{
|
{
|
||||||
ULONG CurrentSize;
|
SIZE_T CurrentSize;
|
||||||
ULONG PeakSize;
|
SIZE_T PeakSize;
|
||||||
ULONG PageFaultCount;
|
ULONG PageFaultCount;
|
||||||
ULONG MinimumWorkingSet;
|
SIZE_T MinimumWorkingSet;
|
||||||
ULONG MaximumWorkingSet;
|
SIZE_T MaximumWorkingSet;
|
||||||
ULONG CurrentSizeIncludingTransitionInPages;
|
SIZE_T CurrentSizeIncludingTransitionInPages;
|
||||||
ULONG PeakSizeIncludingTransitionInPages;
|
SIZE_T PeakSizeIncludingTransitionInPages;
|
||||||
ULONG TransitionRePurposeCount;
|
ULONG TransitionRePurposeCount;
|
||||||
ULONG Flags;
|
ULONG Flags;
|
||||||
} SYSTEM_FILECACHE_INFORMATION, *PSYSTEM_FILECACHE_INFORMATION;
|
} SYSTEM_FILECACHE_INFORMATION, *PSYSTEM_FILECACHE_INFORMATION;
|
||||||
|
@ -1098,6 +1099,7 @@ typedef struct _SYSTEM_POOLTAG
|
||||||
ULONG NonPagedFrees;
|
ULONG NonPagedFrees;
|
||||||
SIZE_T NonPagedUsed;
|
SIZE_T NonPagedUsed;
|
||||||
} SYSTEM_POOLTAG, *PSYSTEM_POOLTAG;
|
} SYSTEM_POOLTAG, *PSYSTEM_POOLTAG;
|
||||||
|
|
||||||
typedef struct _SYSTEM_POOLTAG_INFORMATION
|
typedef struct _SYSTEM_POOLTAG_INFORMATION
|
||||||
{
|
{
|
||||||
ULONG Count;
|
ULONG Count;
|
||||||
|
@ -1229,7 +1231,7 @@ typedef struct _SYSTEM_REGISTRY_QUOTA_INFORMATION
|
||||||
{
|
{
|
||||||
ULONG RegistryQuotaAllowed;
|
ULONG RegistryQuotaAllowed;
|
||||||
ULONG RegistryQuotaUsed;
|
ULONG RegistryQuotaUsed;
|
||||||
ULONG PagedPoolSize;
|
SIZE_T PagedPoolSize;
|
||||||
} SYSTEM_REGISTRY_QUOTA_INFORMATION, *PSYSTEM_REGISTRY_QUOTA_INFORMATION;
|
} SYSTEM_REGISTRY_QUOTA_INFORMATION, *PSYSTEM_REGISTRY_QUOTA_INFORMATION;
|
||||||
|
|
||||||
// Class 38
|
// Class 38
|
||||||
|
@ -1274,7 +1276,6 @@ typedef struct _SYSTEM_LEGACY_DRIVER_INFORMATION
|
||||||
{
|
{
|
||||||
PNP_VETO_TYPE VetoType;
|
PNP_VETO_TYPE VetoType;
|
||||||
UNICODE_STRING VetoDriver;
|
UNICODE_STRING VetoDriver;
|
||||||
// CHAR Buffer[0];
|
|
||||||
} SYSTEM_LEGACY_DRIVER_INFORMATION, *PSYSTEM_LEGACY_DRIVER_INFORMATION;
|
} SYSTEM_LEGACY_DRIVER_INFORMATION, *PSYSTEM_LEGACY_DRIVER_INFORMATION;
|
||||||
|
|
||||||
// Class 44
|
// Class 44
|
||||||
|
@ -1451,6 +1452,7 @@ typedef struct _SYSTEM_MEMORY_LIST_INFORMATION
|
||||||
SIZE_T BadPageCount;
|
SIZE_T BadPageCount;
|
||||||
SIZE_T PageCountByPriority[8];
|
SIZE_T PageCountByPriority[8];
|
||||||
SIZE_T RepurposedPagesByPriority[8];
|
SIZE_T RepurposedPagesByPriority[8];
|
||||||
|
SIZE_T ModifiedPageCountPageFile;
|
||||||
} SYSTEM_MEMORY_LIST_INFORMATION, *PSYSTEM_MEMORY_LIST_INFORMATION;
|
} SYSTEM_MEMORY_LIST_INFORMATION, *PSYSTEM_MEMORY_LIST_INFORMATION;
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -114,6 +114,10 @@ typedef struct _PEB_LDR_DATA
|
||||||
LIST_ENTRY InMemoryOrderModuleList;
|
LIST_ENTRY InMemoryOrderModuleList;
|
||||||
LIST_ENTRY InInitializationOrderModuleList;
|
LIST_ENTRY InInitializationOrderModuleList;
|
||||||
PVOID EntryInProgress;
|
PVOID EntryInProgress;
|
||||||
|
#if (NTDDI_VERSION >= NTDDI_WIN7)
|
||||||
|
UCHAR ShutdownInProgress;
|
||||||
|
PVOID ShutdownThreadId;
|
||||||
|
#endif
|
||||||
} PEB_LDR_DATA, *PPEB_LDR_DATA;
|
} PEB_LDR_DATA, *PPEB_LDR_DATA;
|
||||||
|
|
||||||
//
|
//
|
||||||
|
|
|
@ -146,7 +146,7 @@ typedef struct STRUCT(_PEB)
|
||||||
PTR(PVOID*) FlsCallback;
|
PTR(PVOID*) FlsCallback;
|
||||||
STRUCT(LIST_ENTRY) FlsListHead;
|
STRUCT(LIST_ENTRY) FlsListHead;
|
||||||
PTR(PVOID) FlsBitmap;
|
PTR(PVOID) FlsBitmap;
|
||||||
ULONG FlsBitmapBits[4];
|
ULONG FlsBitmapBits[FLS_MAXIMUM_AVAILABLE/(sizeof(ULONG)*8)];
|
||||||
ULONG FlsHighIndex;
|
ULONG FlsHighIndex;
|
||||||
#endif
|
#endif
|
||||||
#if (NTDDI_VERSION >= NTDDI_LONGHORN)
|
#if (NTDDI_VERSION >= NTDDI_LONGHORN)
|
||||||
|
@ -189,6 +189,7 @@ C_ASSERT(FIELD_OFFSET(STRUCT(PEB), FlsHighIndex) == 0x22C);
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#define GDI_BATCH_BUFFER_SIZE 0x136
|
||||||
//
|
//
|
||||||
// GDI Batch Descriptor
|
// GDI Batch Descriptor
|
||||||
//
|
//
|
||||||
|
@ -196,7 +197,7 @@ typedef struct STRUCT(_GDI_TEB_BATCH)
|
||||||
{
|
{
|
||||||
ULONG Offset;
|
ULONG Offset;
|
||||||
PTR(HANDLE) HDC;
|
PTR(HANDLE) HDC;
|
||||||
ULONG Buffer[0x136];
|
ULONG Buffer[GDI_BATCH_BUFFER_SIZE];
|
||||||
} STRUCT(GDI_TEB_BATCH), *STRUCT(PGDI_TEB_BATCH);
|
} STRUCT(GDI_TEB_BATCH), *STRUCT(PGDI_TEB_BATCH);
|
||||||
|
|
||||||
//
|
//
|
||||||
|
|
|
@ -764,6 +764,19 @@ typedef struct _KERNEL_USER_TIMES
|
||||||
LARGE_INTEGER UserTime;
|
LARGE_INTEGER UserTime;
|
||||||
} KERNEL_USER_TIMES, *PKERNEL_USER_TIMES;
|
} 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
|
typedef struct _PROCESS_SESSION_INFORMATION
|
||||||
{
|
{
|
||||||
ULONG SessionId;
|
ULONG SessionId;
|
||||||
|
|
|
@ -964,7 +964,7 @@ NTSTATUS
|
||||||
NTAPI
|
NTAPI
|
||||||
RtlWalkHeap(
|
RtlWalkHeap(
|
||||||
IN HANDLE HeapHandle,
|
IN HANDLE HeapHandle,
|
||||||
IN PVOID HeapEntry
|
IN OUT PRTL_HEAP_WALK_ENTRY HeapEntry
|
||||||
);
|
);
|
||||||
|
|
||||||
#define RtlGetProcessHeap() (NtCurrentPeb()->ProcessHeap)
|
#define RtlGetProcessHeap() (NtCurrentPeb()->ProcessHeap)
|
||||||
|
@ -1818,7 +1818,7 @@ RtlUnicodeToMultiByteN(
|
||||||
PCHAR MbString,
|
PCHAR MbString,
|
||||||
ULONG MbSize,
|
ULONG MbSize,
|
||||||
PULONG ResultSize,
|
PULONG ResultSize,
|
||||||
PWCHAR UnicodeString,
|
PCWCH UnicodeString,
|
||||||
ULONG UnicodeSize
|
ULONG UnicodeSize
|
||||||
);
|
);
|
||||||
|
|
||||||
|
@ -1997,6 +1997,16 @@ RtlFillMemoryUlong(
|
||||||
IN ULONG Fill
|
IN ULONG Fill
|
||||||
);
|
);
|
||||||
|
|
||||||
|
NTSYSAPI
|
||||||
|
VOID
|
||||||
|
NTAPI
|
||||||
|
RtlFillMemoryUlonglong(
|
||||||
|
OUT PVOID Destination,
|
||||||
|
IN SIZE_T Length,
|
||||||
|
IN ULONGLONG Pattern
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
NTSYSAPI
|
NTSYSAPI
|
||||||
SIZE_T
|
SIZE_T
|
||||||
NTAPI
|
NTAPI
|
||||||
|
@ -2080,6 +2090,25 @@ RtlPrefixString(
|
||||||
BOOLEAN CaseInsensitive
|
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
|
NTSYSAPI
|
||||||
BOOLEAN
|
BOOLEAN
|
||||||
NTAPI
|
NTAPI
|
||||||
|
@ -2321,6 +2350,25 @@ RtlInitializeContext(
|
||||||
IN PINITIAL_TEB InitialTeb
|
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
|
NTSYSAPI
|
||||||
BOOLEAN
|
BOOLEAN
|
||||||
NTAPI
|
NTAPI
|
||||||
|
@ -2545,6 +2593,19 @@ RtlGetFullPathName_U(
|
||||||
OUT PWSTR *ShortName
|
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
|
ULONG
|
||||||
NTAPI
|
NTAPI
|
||||||
RtlGetFullPathName_UstrEx(
|
RtlGetFullPathName_UstrEx(
|
||||||
|
@ -2586,9 +2647,9 @@ NTSYSAPI
|
||||||
NTSTATUS
|
NTSTATUS
|
||||||
NTAPI
|
NTAPI
|
||||||
RtlQueryEnvironmentVariable_U(
|
RtlQueryEnvironmentVariable_U(
|
||||||
PWSTR Environment,
|
IN OPTIONAL PWSTR Environment,
|
||||||
PUNICODE_STRING Name,
|
IN PUNICODE_STRING Name,
|
||||||
PUNICODE_STRING Value
|
OUT PUNICODE_STRING Value
|
||||||
);
|
);
|
||||||
|
|
||||||
VOID
|
VOID
|
||||||
|
@ -2604,6 +2665,14 @@ RtlSetCurrentDirectory_U(
|
||||||
IN PUNICODE_STRING name
|
IN PUNICODE_STRING name
|
||||||
);
|
);
|
||||||
|
|
||||||
|
NTSYSAPI
|
||||||
|
NTSTATUS
|
||||||
|
NTAPI
|
||||||
|
RtlSetCurrentEnvironment(
|
||||||
|
IN PVOID Environment,
|
||||||
|
OUT OPTIONAL PVOID *PreviousEnvironment
|
||||||
|
);
|
||||||
|
|
||||||
NTSYSAPI
|
NTSYSAPI
|
||||||
NTSTATUS
|
NTSTATUS
|
||||||
NTAPI
|
NTAPI
|
||||||
|
|
|
@ -36,18 +36,23 @@ Author:
|
||||||
//
|
//
|
||||||
#define RTL_USER_PROCESS_PARAMETERS_NORMALIZED 0x01
|
#define RTL_USER_PROCESS_PARAMETERS_NORMALIZED 0x01
|
||||||
#define RTL_USER_PROCESS_PARAMETERS_PROFILE_USER 0x02
|
#define RTL_USER_PROCESS_PARAMETERS_PROFILE_USER 0x02
|
||||||
#define RTL_USER_PROCESS_PARAMETERS_PROFILE_SERVER 0x04
|
#define RTL_USER_PROCESS_PARAMETERS_PROFILE_KERNEL 0x04
|
||||||
#define RTL_USER_PROCESS_PARAMETERS_PROFILE_KERNEL 0x08
|
#define RTL_USER_PROCESS_PARAMETERS_PROFILE_SERVER 0x08
|
||||||
#define RTL_USER_PROCESS_PARAMETERS_UNKNOWN 0x10
|
#define RTL_USER_PROCESS_PARAMETERS_UNKNOWN 0x10
|
||||||
#define RTL_USER_PROCESS_PARAMETERS_RESERVE_1MB 0x20
|
#define RTL_USER_PROCESS_PARAMETERS_RESERVE_1MB 0x20
|
||||||
#define RTL_USER_PROCESS_PARAMETERS_RESERVE_16MB 0x40
|
#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_DISABLE_HEAP_CHECKS 0x100
|
||||||
#define RTL_USER_PROCESS_PARAMETERS_PROCESS_OR_1 0x200
|
#define RTL_USER_PROCESS_PARAMETERS_PROCESS_OR_1 0x200
|
||||||
#define RTL_USER_PROCESS_PARAMETERS_PROCESS_OR_2 0x400
|
#define RTL_USER_PROCESS_PARAMETERS_PROCESS_OR_2 0x400
|
||||||
#define RTL_USER_PROCESS_PARAMETERS_PRIVATE_DLL_PATH 0x1000
|
#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_USER_PROCESS_PARAMETERS_NX 0x20000
|
||||||
|
|
||||||
|
#define RTL_MAX_DRIVE_LETTERS 32
|
||||||
|
#define RTL_DRIVE_LETTER_VALID (USHORT)0x0001
|
||||||
|
|
||||||
//
|
//
|
||||||
// Exception Flags
|
// Exception Flags
|
||||||
//
|
//
|
||||||
|
@ -903,42 +908,92 @@ typedef struct _RTL_HEAP_TAG_INFO
|
||||||
{
|
{
|
||||||
ULONG NumberOfAllocations;
|
ULONG NumberOfAllocations;
|
||||||
ULONG NumberOfFrees;
|
ULONG NumberOfFrees;
|
||||||
ULONG BytesAllocated;
|
SIZE_T BytesAllocated;
|
||||||
} RTL_HEAP_TAG_INFO, *PRTL_HEAP_TAG_INFO;
|
} RTL_HEAP_TAG_INFO, *PRTL_HEAP_TAG_INFO;
|
||||||
|
|
||||||
typedef struct _RTL_HEAP_USAGE_ENTRY
|
typedef struct _RTL_HEAP_USAGE_ENTRY
|
||||||
{
|
{
|
||||||
struct _RTL_HEAP_USAGE_ENTRY *Next;
|
struct _RTL_HEAP_USAGE_ENTRY *Next;
|
||||||
|
PVOID Address;
|
||||||
|
SIZE_T Size;
|
||||||
|
USHORT AllocatorBackTraceIndex;
|
||||||
|
USHORT TagIndex;
|
||||||
} RTL_HEAP_USAGE_ENTRY, *PRTL_HEAP_USAGE_ENTRY;
|
} RTL_HEAP_USAGE_ENTRY, *PRTL_HEAP_USAGE_ENTRY;
|
||||||
|
|
||||||
typedef struct _RTL_HEAP_USAGE
|
typedef struct _RTL_HEAP_USAGE
|
||||||
{
|
{
|
||||||
ULONG Length;
|
ULONG Length;
|
||||||
ULONG BytesAllocated;
|
SIZE_T BytesAllocated;
|
||||||
ULONG BytesCommitted;
|
SIZE_T BytesCommitted;
|
||||||
ULONG BytesReserved;
|
SIZE_T BytesReserved;
|
||||||
ULONG BytesReservedMaximum;
|
SIZE_T BytesReservedMaximum;
|
||||||
PRTL_HEAP_USAGE_ENTRY Entries;
|
PRTL_HEAP_USAGE_ENTRY Entries;
|
||||||
PRTL_HEAP_USAGE_ENTRY AddedEntries;
|
PRTL_HEAP_USAGE_ENTRY AddedEntries;
|
||||||
PRTL_HEAP_USAGE_ENTRY RemovedEntries;
|
PRTL_HEAP_USAGE_ENTRY RemovedEntries;
|
||||||
UCHAR Reserved[32];
|
ULONG_PTR Reserved[8];
|
||||||
} RTL_HEAP_USAGE, *PRTL_HEAP_USAGE;
|
} 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
|
typedef struct _RTL_HEAP_INFORMATION
|
||||||
{
|
{
|
||||||
PVOID BaseAddress;
|
PVOID BaseAddress;
|
||||||
ULONG Flags;
|
ULONG Flags;
|
||||||
USHORT EntryOverhead;
|
USHORT EntryOverhead;
|
||||||
USHORT CreatorBackTraceIndex;
|
USHORT CreatorBackTraceIndex;
|
||||||
ULONG BytesAllocated;
|
SIZE_T BytesAllocated;
|
||||||
ULONG BytesCommitted;
|
SIZE_T BytesCommitted;
|
||||||
ULONG NumberOfTags;
|
ULONG NumberOfTags;
|
||||||
ULONG NumberOfEntries;
|
ULONG NumberOfEntries;
|
||||||
ULONG NumberOfPseudoTags;
|
ULONG NumberOfPseudoTags;
|
||||||
ULONG PseudoTagGranularity;
|
ULONG PseudoTagGranularity;
|
||||||
ULONG Reserved[4];
|
ULONG Reserved[4];
|
||||||
PVOID Tags;
|
PRTL_HEAP_TAG Tags;
|
||||||
PVOID Entries;
|
PRTL_HEAP_ENTRY Entries;
|
||||||
} RTL_HEAP_INFORMATION, *PRTL_HEAP_INFORMATION;
|
} RTL_HEAP_INFORMATION, *PRTL_HEAP_INFORMATION;
|
||||||
|
|
||||||
typedef struct _RTL_PROCESS_HEAPS
|
typedef struct _RTL_PROCESS_HEAPS
|
||||||
|
@ -1196,6 +1251,8 @@ typedef struct _RANGE_LIST_ITERATOR
|
||||||
//
|
//
|
||||||
// RTL Resource
|
// RTL Resource
|
||||||
//
|
//
|
||||||
|
#define RTL_RESOURCE_FLAG_LONG_TERM ((ULONG)0x00000001)
|
||||||
|
|
||||||
typedef struct _RTL_RESOURCE
|
typedef struct _RTL_RESOURCE
|
||||||
{
|
{
|
||||||
RTL_CRITICAL_SECTION Lock;
|
RTL_CRITICAL_SECTION Lock;
|
||||||
|
@ -1205,8 +1262,8 @@ typedef struct _RTL_RESOURCE
|
||||||
ULONG ExclusiveWaiters;
|
ULONG ExclusiveWaiters;
|
||||||
LONG NumberActive;
|
LONG NumberActive;
|
||||||
HANDLE OwningThread;
|
HANDLE OwningThread;
|
||||||
ULONG TimeoutBoost;
|
ULONG Flags;
|
||||||
PVOID DebugInfo;
|
PRTL_RESOURCE_DEBUG DebugInfo;
|
||||||
} RTL_RESOURCE, *PRTL_RESOURCE;
|
} RTL_RESOURCE, *PRTL_RESOURCE;
|
||||||
|
|
||||||
//
|
//
|
||||||
|
@ -1241,7 +1298,13 @@ typedef struct _RTL_USER_PROCESS_PARAMETERS
|
||||||
UNICODE_STRING DesktopInfo;
|
UNICODE_STRING DesktopInfo;
|
||||||
UNICODE_STRING ShellInfo;
|
UNICODE_STRING ShellInfo;
|
||||||
UNICODE_STRING RuntimeData;
|
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;
|
} RTL_USER_PROCESS_PARAMETERS, *PRTL_USER_PROCESS_PARAMETERS;
|
||||||
|
|
||||||
typedef struct _RTL_USER_PROCESS_INFORMATION
|
typedef struct _RTL_USER_PROCESS_INFORMATION
|
||||||
|
|
|
@ -1369,7 +1369,7 @@ RtlUnicodeToMultiByteN(
|
||||||
_Out_writes_bytes_to_(MaxBytesInMultiByteString, *BytesInMultiByteString) PCHAR MultiByteString,
|
_Out_writes_bytes_to_(MaxBytesInMultiByteString, *BytesInMultiByteString) PCHAR MultiByteString,
|
||||||
_In_ ULONG MaxBytesInMultiByteString,
|
_In_ ULONG MaxBytesInMultiByteString,
|
||||||
_Out_opt_ PULONG BytesInMultiByteString,
|
_Out_opt_ PULONG BytesInMultiByteString,
|
||||||
_In_reads_bytes_(BytesInUnicodeString) PWCH UnicodeString,
|
_In_reads_bytes_(BytesInUnicodeString) PCWCH UnicodeString,
|
||||||
_In_ ULONG BytesInUnicodeString);
|
_In_ ULONG BytesInUnicodeString);
|
||||||
|
|
||||||
_IRQL_requires_max_(PASSIVE_LEVEL)
|
_IRQL_requires_max_(PASSIVE_LEVEL)
|
||||||
|
|
Loading…
Reference in a new issue