mirror of
https://github.com/reactos/reactos.git
synced 2025-08-07 09:12:56 +00:00
- Update NDK with proper (when possible) RTL structure names that were previously "under review".
- Update relevant source files to new names. svn path=/trunk/; revision=19375
This commit is contained in:
parent
9acc2d9d19
commit
ada897443b
9 changed files with 140 additions and 131 deletions
|
@ -12,7 +12,6 @@
|
||||||
|
|
||||||
/* DEPENDENCIES **************************************************************/
|
/* DEPENDENCIES **************************************************************/
|
||||||
#include <cfg.h>
|
#include <cfg.h>
|
||||||
/* FIXME: this needs be implemented in the w32api ddk */
|
|
||||||
#if defined(_MSC_VER) && !defined(NTOS_MODE_USER)
|
#if defined(_MSC_VER) && !defined(NTOS_MODE_USER)
|
||||||
#include <ntimage.h>
|
#include <ntimage.h>
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -26,7 +26,7 @@ List:
|
||||||
- Object Directory + implementation doesn't match NT (Alex) [obtypes.h]
|
- Object Directory + implementation doesn't match NT (Alex) [obtypes.h]
|
||||||
|
|
||||||
Priority 3:
|
Priority 3:
|
||||||
- Some RTL Structures need review (Alex) [rtltypes.h]
|
- FIXED: Some RTL Structures need review (Alex) [rtltypes.h]
|
||||||
- Pushlock support is needed to fix EPROCESS (Alex) [pstypes.h]
|
- Pushlock support is needed to fix EPROCESS (Alex) [pstypes.h]
|
||||||
- MADDRESS_SPACE must be converted into the NT Type (Alex) [pstypes.h, mmtypes.h]
|
- MADDRESS_SPACE must be converted into the NT Type (Alex) [pstypes.h, mmtypes.h]
|
||||||
|
|
||||||
|
|
|
@ -1703,7 +1703,7 @@ RtlGetCompressionWorkSpaceSize(
|
||||||
* Debug Info Functions
|
* Debug Info Functions
|
||||||
*/
|
*/
|
||||||
NTSYSAPI
|
NTSYSAPI
|
||||||
PDEBUG_BUFFER
|
PRTL_DEBUG_BUFFER
|
||||||
NTAPI
|
NTAPI
|
||||||
RtlCreateQueryDebugBuffer(
|
RtlCreateQueryDebugBuffer(
|
||||||
IN ULONG Size,
|
IN ULONG Size,
|
||||||
|
@ -1713,7 +1713,7 @@ RtlCreateQueryDebugBuffer(
|
||||||
NTSYSAPI
|
NTSYSAPI
|
||||||
NTSTATUS
|
NTSTATUS
|
||||||
NTAPI
|
NTAPI
|
||||||
RtlDestroyQueryDebugBuffer(IN PDEBUG_BUFFER DebugBuffer);
|
RtlDestroyQueryDebugBuffer(IN PRTL_DEBUG_BUFFER DebugBuffer);
|
||||||
|
|
||||||
NTSYSAPI
|
NTSYSAPI
|
||||||
NTSTATUS
|
NTSTATUS
|
||||||
|
@ -1721,7 +1721,7 @@ NTAPI
|
||||||
RtlQueryProcessDebugInformation(
|
RtlQueryProcessDebugInformation(
|
||||||
IN ULONG ProcessId,
|
IN ULONG ProcessId,
|
||||||
IN ULONG DebugInfoClassMask,
|
IN ULONG DebugInfoClassMask,
|
||||||
IN OUT PDEBUG_BUFFER DebugBuffer
|
IN OUT PRTL_DEBUG_BUFFER DebugBuffer
|
||||||
);
|
);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
|
@ -34,7 +34,7 @@
|
||||||
#define EXCEPTION_UNWINDING 0x02
|
#define EXCEPTION_UNWINDING 0x02
|
||||||
#define EXCEPTION_EXIT_UNWIND 0x04
|
#define EXCEPTION_EXIT_UNWIND 0x04
|
||||||
#define EXCEPTION_STACK_INVALID 0x8
|
#define EXCEPTION_STACK_INVALID 0x8
|
||||||
#define EXCEPTION_NESTED_CALL 0x10
|
#define EXCEPTION_NESTED_CALL 0x10F
|
||||||
#define EXCEPTION_TARGET_UNWIND 0x20
|
#define EXCEPTION_TARGET_UNWIND 0x20
|
||||||
#define EXCEPTION_COLLIDED_UNWIND 0x20
|
#define EXCEPTION_COLLIDED_UNWIND 0x20
|
||||||
|
|
||||||
|
@ -228,13 +228,13 @@ RemoveTailList(
|
||||||
((L1)->LowPart == (L2)->LowPart))
|
((L1)->LowPart == (L2)->LowPart))
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* FIXME: Rename these */
|
/* RTL Debug Queries */
|
||||||
#define PDI_MODULES 0x01 /* The loaded modules of the process */
|
#define RTL_DEBUG_QUERY_MODULES 0x01
|
||||||
#define PDI_BACKTRACE 0x02 /* The heap stack back traces */
|
#define RTL_DEBUG_QUERY_BACKTRACES 0x02
|
||||||
#define PDI_HEAPS 0x04 /* The heaps of the process */
|
#define RTL_DEBUG_QUERY_HEAPS 0x04
|
||||||
#define PDI_HEAP_TAGS 0x08 /* The heap tags */
|
#define RTL_DEBUG_QUERY_HEAP_TAGS 0x08
|
||||||
#define PDI_HEAP_BLOCKS 0x10 /* The heap blocks */
|
#define RTL_DEBUG_QUERY_HEAP_BLOCKS 0x10
|
||||||
#define PDI_LOCKS 0x20 /* The locks created by the process */
|
#define RTL_DEBUG_QUERY_LOCKS 0x20
|
||||||
|
|
||||||
/* RTL Handle Flags */
|
/* RTL Handle Flags */
|
||||||
#define RTL_HANDLE_VALID 0x1
|
#define RTL_HANDLE_VALID 0x1
|
||||||
|
@ -267,7 +267,7 @@ typedef enum _RTL_GENERIC_COMPARE_RESULTS
|
||||||
} RTL_GENERIC_COMPARE_RESULTS;
|
} RTL_GENERIC_COMPARE_RESULTS;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
typedef enum
|
typedef enum _RTL_PATH_TYPE
|
||||||
{
|
{
|
||||||
INVALID_PATH = 0,
|
INVALID_PATH = 0,
|
||||||
UNC_PATH, /* "//foo" */
|
UNC_PATH, /* "//foo" */
|
||||||
|
@ -277,7 +277,7 @@ typedef enum
|
||||||
RELATIVE_PATH, /* "foo" */
|
RELATIVE_PATH, /* "foo" */
|
||||||
DEVICE_PATH, /* "//./foo" */
|
DEVICE_PATH, /* "//./foo" */
|
||||||
UNC_DOT_PATH /* "//." */
|
UNC_DOT_PATH /* "//." */
|
||||||
} DOS_PATHNAME_TYPE;
|
} RTL_PATH_TYPE;
|
||||||
|
|
||||||
/* FUNCTION TYPES ************************************************************/
|
/* FUNCTION TYPES ************************************************************/
|
||||||
#ifndef NTOS_MODE_USER
|
#ifndef NTOS_MODE_USER
|
||||||
|
@ -549,28 +549,7 @@ typedef struct _ACE
|
||||||
ACCESS_MASK AccessMask;
|
ACCESS_MASK AccessMask;
|
||||||
} ACE, *PACE;
|
} ACE, *PACE;
|
||||||
|
|
||||||
/* FIXME: Review definitions and give these guys a better name */
|
typedef struct _RTL_PROCESS_MODULE_INFORMATION
|
||||||
typedef struct _DEBUG_BUFFER
|
|
||||||
{
|
|
||||||
HANDLE SectionHandle;
|
|
||||||
PVOID SectionBase;
|
|
||||||
PVOID RemoteSectionBase;
|
|
||||||
ULONG SectionBaseDelta;
|
|
||||||
HANDLE EventPairHandle;
|
|
||||||
ULONG Unknown[2];
|
|
||||||
HANDLE RemoteThreadHandle;
|
|
||||||
ULONG InfoClassMask;
|
|
||||||
ULONG SizeOfInfo;
|
|
||||||
ULONG AllocatedSize;
|
|
||||||
ULONG SectionSize;
|
|
||||||
PVOID ModuleInformation;
|
|
||||||
PVOID BackTraceInformation;
|
|
||||||
PVOID HeapInformation;
|
|
||||||
PVOID LockInformation;
|
|
||||||
PVOID Reserved[8];
|
|
||||||
} DEBUG_BUFFER, *PDEBUG_BUFFER;
|
|
||||||
|
|
||||||
typedef struct _DEBUG_MODULE_INFORMATION
|
|
||||||
{
|
{
|
||||||
ULONG Reserved[2];
|
ULONG Reserved[2];
|
||||||
PVOID Base;
|
PVOID Base;
|
||||||
|
@ -581,9 +560,15 @@ typedef struct _DEBUG_MODULE_INFORMATION
|
||||||
USHORT LoadCount;
|
USHORT LoadCount;
|
||||||
USHORT ModuleNameOffset;
|
USHORT ModuleNameOffset;
|
||||||
CHAR ImageName[256];
|
CHAR ImageName[256];
|
||||||
} DEBUG_MODULE_INFORMATION, *PDEBUG_MODULE_INFORMATION;
|
} RTL_PROCESS_MODULE_INFORMATION, *PRTL_PROCESS_MODULE_INFORMATION;
|
||||||
|
|
||||||
typedef struct _DEBUG_HEAP_INFORMATION
|
typedef struct _RTL_PROCESS_MODULES
|
||||||
|
{
|
||||||
|
ULONG ModuleCount;
|
||||||
|
RTL_PROCESS_MODULE_INFORMATION ModuleEntry[1];
|
||||||
|
} RTL_PROCESS_MODULES, *PRTL_PROCESS_MODULES;
|
||||||
|
|
||||||
|
typedef struct _RTL_PROCESS_HEAP_INFORMATION
|
||||||
{
|
{
|
||||||
PVOID Base;
|
PVOID Base;
|
||||||
ULONG Flags;
|
ULONG Flags;
|
||||||
|
@ -596,9 +581,15 @@ typedef struct _DEBUG_HEAP_INFORMATION
|
||||||
ULONG Reserved[7];
|
ULONG Reserved[7];
|
||||||
PVOID Tags;
|
PVOID Tags;
|
||||||
PVOID Blocks;
|
PVOID Blocks;
|
||||||
} DEBUG_HEAP_INFORMATION, *PDEBUG_HEAP_INFORMATION;
|
} RTL_PROCESS_HEAP_INFORMATION, *PRTL_PROCESS_HEAP_INFORMATION;
|
||||||
|
|
||||||
typedef struct _DEBUG_LOCK_INFORMATION
|
typedef struct _RTL_PROCESS_HEAPS
|
||||||
|
{
|
||||||
|
ULONG HeapCount;
|
||||||
|
RTL_PROCESS_HEAP_INFORMATION HeapEntry[1];
|
||||||
|
} RTL_PROCESS_HEAPS, *PRTL_PROCESS_HEAPS;
|
||||||
|
|
||||||
|
typedef struct _RTL_PROCESS_LOCK_INFORMATION
|
||||||
{
|
{
|
||||||
PVOID Address;
|
PVOID Address;
|
||||||
USHORT Type;
|
USHORT Type;
|
||||||
|
@ -610,7 +601,45 @@ typedef struct _DEBUG_LOCK_INFORMATION
|
||||||
ULONG RecursionCount;
|
ULONG RecursionCount;
|
||||||
ULONG NumberOfSharedWaiters;
|
ULONG NumberOfSharedWaiters;
|
||||||
ULONG NumberOfExclusiveWaiters;
|
ULONG NumberOfExclusiveWaiters;
|
||||||
} DEBUG_LOCK_INFORMATION, *PDEBUG_LOCK_INFORMATION;
|
} RTL_PROCESS_LOCK_INFORMATION, *PRTL_PROCESS_LOCK_INFORMATION;
|
||||||
|
|
||||||
|
typedef struct _RTL_PROCESS_LOCKS
|
||||||
|
{
|
||||||
|
ULONG LockCount;
|
||||||
|
RTL_PROCESS_LOCK_INFORMATION LockEntry[1];
|
||||||
|
} RTL_PROCESS_LOCKS, *PRTL_PROCESS_LOCKS;
|
||||||
|
|
||||||
|
typedef struct _RTL_PROCESS_BACKTRACE_INFORMATION
|
||||||
|
{
|
||||||
|
/* FIXME */
|
||||||
|
ULONG Unknown;
|
||||||
|
} RTL_PROCESS_BACKTRACE_INFORMATION, *PRTL_PROCESS_BACKTRACE_INFORMATION;
|
||||||
|
|
||||||
|
typedef struct _RTL_PROCESS_BACKTRACES
|
||||||
|
{
|
||||||
|
ULONG BackTraceCount;
|
||||||
|
RTL_PROCESS_BACKTRACE_INFORMATION BackTraceEntry[1];
|
||||||
|
} RTL_PROCESS_BACKTRACES, *PRTL_PROCESS_BACKTRACES;
|
||||||
|
|
||||||
|
typedef struct _RTL_DEBUG_BUFFER
|
||||||
|
{
|
||||||
|
HANDLE SectionHandle;
|
||||||
|
PVOID SectionBase;
|
||||||
|
PVOID RemoteSectionBase;
|
||||||
|
ULONG SectionBaseDelta;
|
||||||
|
HANDLE EventPairHandle;
|
||||||
|
ULONG Unknown[2];
|
||||||
|
HANDLE RemoteThreadHandle;
|
||||||
|
ULONG InfoClassMask;
|
||||||
|
ULONG SizeOfInfo;
|
||||||
|
ULONG AllocatedSize;
|
||||||
|
ULONG SectionSize;
|
||||||
|
PRTL_PROCESS_MODULES ModuleInformation;
|
||||||
|
PRTL_PROCESS_BACKTRACES BackTraceInformation;
|
||||||
|
PRTL_PROCESS_HEAPS HeapInformation;
|
||||||
|
PRTL_PROCESS_LOCKS LockInformation;
|
||||||
|
PVOID Reserved[8];
|
||||||
|
} RTL_DEBUG_BUFFER, *PRTL_DEBUG_BUFFER;
|
||||||
|
|
||||||
typedef struct _RTL_HANDLE_TABLE_ENTRY
|
typedef struct _RTL_HANDLE_TABLE_ENTRY
|
||||||
{
|
{
|
||||||
|
@ -629,25 +658,6 @@ typedef struct _RTL_HANDLE_TABLE
|
||||||
PRTL_HANDLE_TABLE_ENTRY MaxReservedHandles;
|
PRTL_HANDLE_TABLE_ENTRY MaxReservedHandles;
|
||||||
} RTL_HANDLE_TABLE, *PRTL_HANDLE_TABLE;
|
} RTL_HANDLE_TABLE, *PRTL_HANDLE_TABLE;
|
||||||
|
|
||||||
typedef struct _LOCK_INFORMATION
|
|
||||||
{
|
|
||||||
ULONG LockCount;
|
|
||||||
DEBUG_LOCK_INFORMATION LockEntry[1];
|
|
||||||
} LOCK_INFORMATION, *PLOCK_INFORMATION;
|
|
||||||
|
|
||||||
typedef struct _HEAP_INFORMATION
|
|
||||||
{
|
|
||||||
ULONG HeapCount;
|
|
||||||
DEBUG_HEAP_INFORMATION HeapEntry[1];
|
|
||||||
} HEAP_INFORMATION, *PHEAP_INFORMATION;
|
|
||||||
|
|
||||||
typedef struct _MODULE_INFORMATION
|
|
||||||
{
|
|
||||||
ULONG ModuleCount;
|
|
||||||
DEBUG_MODULE_INFORMATION ModuleEntry[1];
|
|
||||||
} MODULE_INFORMATION, *PMODULE_INFORMATION;
|
|
||||||
/* END REVIEW AREA */
|
|
||||||
|
|
||||||
typedef struct _EXCEPTION_REGISTRATION_RECORD
|
typedef struct _EXCEPTION_REGISTRATION_RECORD
|
||||||
{
|
{
|
||||||
struct _EXCEPTION_REGISTRATION_RECORD *Next;
|
struct _EXCEPTION_REGISTRATION_RECORD *Next;
|
||||||
|
@ -729,8 +739,8 @@ typedef struct _RTL_RESOURCE
|
||||||
ULONG ExclusiveWaiters;
|
ULONG ExclusiveWaiters;
|
||||||
LONG NumberActive;
|
LONG NumberActive;
|
||||||
HANDLE OwningThread;
|
HANDLE OwningThread;
|
||||||
ULONG TimeoutBoost; /* ?? */
|
ULONG TimeoutBoost;
|
||||||
PVOID DebugInfo; /* ?? */
|
PVOID DebugInfo;
|
||||||
} RTL_RESOURCE, *PRTL_RESOURCE;
|
} RTL_RESOURCE, *PRTL_RESOURCE;
|
||||||
|
|
||||||
typedef struct _RTL_MESSAGE_RESOURCE_ENTRY
|
typedef struct _RTL_MESSAGE_RESOURCE_ENTRY
|
||||||
|
@ -757,7 +767,7 @@ typedef struct _NLS_FILE_HEADER
|
||||||
{
|
{
|
||||||
USHORT HeaderSize;
|
USHORT HeaderSize;
|
||||||
USHORT CodePage;
|
USHORT CodePage;
|
||||||
USHORT MaximumCharacterSize; /* SBCS = 1, DBCS = 2 */
|
USHORT MaximumCharacterSize;
|
||||||
USHORT DefaultChar;
|
USHORT DefaultChar;
|
||||||
USHORT UniDefaultChar;
|
USHORT UniDefaultChar;
|
||||||
USHORT TransDefaultChar;
|
USHORT TransDefaultChar;
|
||||||
|
|
|
@ -212,7 +212,7 @@ LdrQueryImageFileExecutionOptions(
|
||||||
NTSTATUS
|
NTSTATUS
|
||||||
NTAPI
|
NTAPI
|
||||||
LdrQueryProcessModuleInformation(
|
LdrQueryProcessModuleInformation(
|
||||||
IN PMODULE_INFORMATION ModuleInformation OPTIONAL,
|
IN PRTL_PROCESS_MODULES ModuleInformation OPTIONAL,
|
||||||
IN ULONG Size OPTIONAL,
|
IN ULONG Size OPTIONAL,
|
||||||
OUT PULONG ReturnedSize
|
OUT PULONG ReturnedSize
|
||||||
);
|
);
|
||||||
|
|
|
@ -92,8 +92,8 @@ typedef struct _TH32SNAPSHOT
|
||||||
/* INTERNAL FUNCTIONS *********************************************************/
|
/* INTERNAL FUNCTIONS *********************************************************/
|
||||||
|
|
||||||
static VOID
|
static VOID
|
||||||
TH32FreeAllocatedResources(PDEBUG_BUFFER HeapDebug,
|
TH32FreeAllocatedResources(PRTL_DEBUG_BUFFER HeapDebug,
|
||||||
PDEBUG_BUFFER ModuleDebug,
|
PRTL_DEBUG_BUFFER ModuleDebug,
|
||||||
PVOID ProcThrdInfo,
|
PVOID ProcThrdInfo,
|
||||||
ULONG ProcThrdInfoSize)
|
ULONG ProcThrdInfoSize)
|
||||||
{
|
{
|
||||||
|
@ -118,8 +118,8 @@ TH32FreeAllocatedResources(PDEBUG_BUFFER HeapDebug,
|
||||||
static NTSTATUS
|
static NTSTATUS
|
||||||
TH32CreateSnapshot(DWORD dwFlags,
|
TH32CreateSnapshot(DWORD dwFlags,
|
||||||
DWORD th32ProcessID,
|
DWORD th32ProcessID,
|
||||||
PDEBUG_BUFFER *HeapDebug,
|
PRTL_DEBUG_BUFFER *HeapDebug,
|
||||||
PDEBUG_BUFFER *ModuleDebug,
|
PRTL_DEBUG_BUFFER *ModuleDebug,
|
||||||
PVOID *ProcThrdInfo,
|
PVOID *ProcThrdInfo,
|
||||||
ULONG *ProcThrdInfoSize)
|
ULONG *ProcThrdInfoSize)
|
||||||
{
|
{
|
||||||
|
@ -139,7 +139,7 @@ TH32CreateSnapshot(DWORD dwFlags,
|
||||||
if(*HeapDebug != NULL)
|
if(*HeapDebug != NULL)
|
||||||
{
|
{
|
||||||
Status = RtlQueryProcessDebugInformation(th32ProcessID,
|
Status = RtlQueryProcessDebugInformation(th32ProcessID,
|
||||||
PDI_HEAPS,
|
RTL_DEBUG_QUERY_HEAPS,
|
||||||
*HeapDebug);
|
*HeapDebug);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
@ -156,7 +156,7 @@ TH32CreateSnapshot(DWORD dwFlags,
|
||||||
if(*ModuleDebug != NULL)
|
if(*ModuleDebug != NULL)
|
||||||
{
|
{
|
||||||
Status = RtlQueryProcessDebugInformation(th32ProcessID,
|
Status = RtlQueryProcessDebugInformation(th32ProcessID,
|
||||||
PDI_MODULES,
|
RTL_DEBUG_QUERY_MODULES,
|
||||||
*ModuleDebug);
|
*ModuleDebug);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
@ -221,8 +221,8 @@ TH32CreateSnapshot(DWORD dwFlags,
|
||||||
static NTSTATUS
|
static NTSTATUS
|
||||||
TH32CreateSnapshotSectionInitialize(DWORD dwFlags,
|
TH32CreateSnapshotSectionInitialize(DWORD dwFlags,
|
||||||
DWORD th32ProcessID,
|
DWORD th32ProcessID,
|
||||||
PDEBUG_BUFFER HeapDebug,
|
PRTL_DEBUG_BUFFER HeapDebug,
|
||||||
PDEBUG_BUFFER ModuleDebug,
|
PRTL_DEBUG_BUFFER ModuleDebug,
|
||||||
PVOID ProcThrdInfo,
|
PVOID ProcThrdInfo,
|
||||||
HANDLE *SectionHandle)
|
HANDLE *SectionHandle)
|
||||||
{
|
{
|
||||||
|
@ -239,8 +239,8 @@ TH32CreateSnapshotSectionInitialize(DWORD dwFlags,
|
||||||
ULONG ViewSize, i;
|
ULONG ViewSize, i;
|
||||||
ULONG nProcesses = 0, nThreads = 0, nHeaps = 0, nModules = 0;
|
ULONG nProcesses = 0, nThreads = 0, nHeaps = 0, nModules = 0;
|
||||||
ULONG RequiredSnapshotSize = sizeof(TH32SNAPSHOT);
|
ULONG RequiredSnapshotSize = sizeof(TH32SNAPSHOT);
|
||||||
PHEAP_INFORMATION hi = NULL;
|
PRTL_PROCESS_HEAPS hi = NULL;
|
||||||
PMODULE_INFORMATION mi = NULL;
|
PRTL_PROCESS_MODULES mi = NULL;
|
||||||
NTSTATUS Status = STATUS_SUCCESS;
|
NTSTATUS Status = STATUS_SUCCESS;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -248,7 +248,7 @@ TH32CreateSnapshotSectionInitialize(DWORD dwFlags,
|
||||||
*/
|
*/
|
||||||
if(dwFlags & TH32CS_SNAPHEAPLIST)
|
if(dwFlags & TH32CS_SNAPHEAPLIST)
|
||||||
{
|
{
|
||||||
hi = (PHEAP_INFORMATION)HeapDebug->HeapInformation;
|
hi = (PRTL_PROCESS_HEAPS)HeapDebug->HeapInformation;
|
||||||
nHeaps = hi->HeapCount;
|
nHeaps = hi->HeapCount;
|
||||||
RequiredSnapshotSize += nHeaps * sizeof(HEAPLIST32);
|
RequiredSnapshotSize += nHeaps * sizeof(HEAPLIST32);
|
||||||
}
|
}
|
||||||
|
@ -258,7 +258,7 @@ TH32CreateSnapshotSectionInitialize(DWORD dwFlags,
|
||||||
*/
|
*/
|
||||||
if(dwFlags & TH32CS_SNAPMODULE)
|
if(dwFlags & TH32CS_SNAPMODULE)
|
||||||
{
|
{
|
||||||
mi = (PMODULE_INFORMATION)ModuleDebug->ModuleInformation;
|
mi = (PRTL_PROCESS_MODULES)ModuleDebug->ModuleInformation;
|
||||||
nModules = mi->ModuleCount;
|
nModules = mi->ModuleCount;
|
||||||
RequiredSnapshotSize += nModules * sizeof(MODULEENTRY32W);
|
RequiredSnapshotSize += nModules * sizeof(MODULEENTRY32W);
|
||||||
}
|
}
|
||||||
|
@ -1113,7 +1113,7 @@ HANDLE
|
||||||
STDCALL
|
STDCALL
|
||||||
CreateToolhelp32Snapshot(DWORD dwFlags, DWORD th32ProcessID)
|
CreateToolhelp32Snapshot(DWORD dwFlags, DWORD th32ProcessID)
|
||||||
{
|
{
|
||||||
PDEBUG_BUFFER HeapDebug, ModuleDebug;
|
PRTL_DEBUG_BUFFER HeapDebug, ModuleDebug;
|
||||||
PVOID ProcThrdInfo;
|
PVOID ProcThrdInfo;
|
||||||
ULONG ProcThrdInfoSize;
|
ULONG ProcThrdInfoSize;
|
||||||
NTSTATUS Status;
|
NTSTATUS Status;
|
||||||
|
|
|
@ -2643,14 +2643,14 @@ LdrShutdownThread (VOID)
|
||||||
* @implemented
|
* @implemented
|
||||||
*/
|
*/
|
||||||
NTSTATUS NTAPI
|
NTSTATUS NTAPI
|
||||||
LdrQueryProcessModuleInformation(IN PMODULE_INFORMATION ModuleInformation OPTIONAL,
|
LdrQueryProcessModuleInformation(IN PRTL_PROCESS_MODULES ModuleInformation OPTIONAL,
|
||||||
IN ULONG Size OPTIONAL,
|
IN ULONG Size OPTIONAL,
|
||||||
OUT PULONG ReturnedSize)
|
OUT PULONG ReturnedSize)
|
||||||
{
|
{
|
||||||
PLIST_ENTRY ModuleListHead;
|
PLIST_ENTRY ModuleListHead;
|
||||||
PLIST_ENTRY Entry;
|
PLIST_ENTRY Entry;
|
||||||
PLDR_DATA_TABLE_ENTRY Module;
|
PLDR_DATA_TABLE_ENTRY Module;
|
||||||
PDEBUG_MODULE_INFORMATION ModulePtr = NULL;
|
PRTL_PROCESS_MODULE_INFORMATION ModulePtr = NULL;
|
||||||
NTSTATUS Status = STATUS_SUCCESS;
|
NTSTATUS Status = STATUS_SUCCESS;
|
||||||
ULONG UsedSize = sizeof(ULONG);
|
ULONG UsedSize = sizeof(ULONG);
|
||||||
ANSI_STRING AnsiString;
|
ANSI_STRING AnsiString;
|
||||||
|
@ -2710,7 +2710,7 @@ LdrQueryProcessModuleInformation(IN PMODULE_INFORMATION ModuleInformation OPTION
|
||||||
ModulePtr++;
|
ModulePtr++;
|
||||||
ModuleInformation->ModuleCount++;
|
ModuleInformation->ModuleCount++;
|
||||||
}
|
}
|
||||||
UsedSize += sizeof(DEBUG_MODULE_INFORMATION);
|
UsedSize += sizeof(RTL_PROCESS_MODULE_INFORMATION);
|
||||||
|
|
||||||
Entry = Entry->Flink;
|
Entry = Entry->Flink;
|
||||||
}
|
}
|
||||||
|
|
|
@ -16,12 +16,12 @@
|
||||||
/*
|
/*
|
||||||
* @unimplemented
|
* @unimplemented
|
||||||
*/
|
*/
|
||||||
PDEBUG_BUFFER NTAPI
|
PRTL_DEBUG_BUFFER NTAPI
|
||||||
RtlCreateQueryDebugBuffer(IN ULONG Size,
|
RtlCreateQueryDebugBuffer(IN ULONG Size,
|
||||||
IN BOOLEAN EventPair)
|
IN BOOLEAN EventPair)
|
||||||
{
|
{
|
||||||
NTSTATUS Status;
|
NTSTATUS Status;
|
||||||
PDEBUG_BUFFER Buf = NULL;
|
PRTL_DEBUG_BUFFER Buf = NULL;
|
||||||
ULONG SectionSize = 100 * PAGE_SIZE;
|
ULONG SectionSize = 100 * PAGE_SIZE;
|
||||||
|
|
||||||
Status = NtAllocateVirtualMemory( NtCurrentProcess(),
|
Status = NtAllocateVirtualMemory( NtCurrentProcess(),
|
||||||
|
@ -47,7 +47,7 @@ RtlCreateQueryDebugBuffer(IN ULONG Size,
|
||||||
* @unimplemented
|
* @unimplemented
|
||||||
*/
|
*/
|
||||||
NTSTATUS NTAPI
|
NTSTATUS NTAPI
|
||||||
RtlDestroyQueryDebugBuffer(IN PDEBUG_BUFFER Buf)
|
RtlDestroyQueryDebugBuffer(IN PRTL_DEBUG_BUFFER Buf)
|
||||||
{
|
{
|
||||||
NTSTATUS Status = STATUS_SUCCESS;
|
NTSTATUS Status = STATUS_SUCCESS;
|
||||||
|
|
||||||
|
@ -71,7 +71,7 @@ RtlDestroyQueryDebugBuffer(IN PDEBUG_BUFFER Buf)
|
||||||
*/
|
*/
|
||||||
NTSTATUS NTAPI
|
NTSTATUS NTAPI
|
||||||
RtlpQueryRemoteProcessModules(HANDLE ProcessHandle,
|
RtlpQueryRemoteProcessModules(HANDLE ProcessHandle,
|
||||||
IN PMODULE_INFORMATION ModuleInformation OPTIONAL,
|
IN PRTL_PROCESS_MODULES ModuleInformation OPTIONAL,
|
||||||
IN ULONG Size OPTIONAL,
|
IN ULONG Size OPTIONAL,
|
||||||
OUT PULONG ReturnedSize)
|
OUT PULONG ReturnedSize)
|
||||||
{
|
{
|
||||||
|
@ -81,7 +81,7 @@ RtlpQueryRemoteProcessModules(HANDLE ProcessHandle,
|
||||||
PLIST_ENTRY pleListHead;
|
PLIST_ENTRY pleListHead;
|
||||||
PLIST_ENTRY pleCurEntry;
|
PLIST_ENTRY pleCurEntry;
|
||||||
|
|
||||||
PDEBUG_MODULE_INFORMATION ModulePtr = NULL;
|
PRTL_PROCESS_MODULE_INFORMATION ModulePtr = NULL;
|
||||||
NTSTATUS Status = STATUS_SUCCESS;
|
NTSTATUS Status = STATUS_SUCCESS;
|
||||||
ULONG UsedSize = sizeof(ULONG);
|
ULONG UsedSize = sizeof(ULONG);
|
||||||
ANSI_STRING AnsiString;
|
ANSI_STRING AnsiString;
|
||||||
|
@ -209,7 +209,7 @@ RtlpQueryRemoteProcessModules(HANDLE ProcessHandle,
|
||||||
ModulePtr++;
|
ModulePtr++;
|
||||||
ModuleInformation->ModuleCount++;
|
ModuleInformation->ModuleCount++;
|
||||||
}
|
}
|
||||||
UsedSize += sizeof(DEBUG_MODULE_INFORMATION);
|
UsedSize += sizeof(RTL_PROCESS_MODULE_INFORMATION);
|
||||||
|
|
||||||
/* address of the next module in the list */
|
/* address of the next module in the list */
|
||||||
pleCurEntry = lmModule.InLoadOrderModuleList.Flink;
|
pleCurEntry = lmModule.InLoadOrderModuleList.Flink;
|
||||||
|
@ -230,13 +230,13 @@ RtlpQueryRemoteProcessModules(HANDLE ProcessHandle,
|
||||||
NTSTATUS NTAPI
|
NTSTATUS NTAPI
|
||||||
RtlQueryProcessDebugInformation(IN ULONG ProcessId,
|
RtlQueryProcessDebugInformation(IN ULONG ProcessId,
|
||||||
IN ULONG DebugInfoMask,
|
IN ULONG DebugInfoMask,
|
||||||
IN OUT PDEBUG_BUFFER Buf)
|
IN OUT PRTL_DEBUG_BUFFER Buf)
|
||||||
{
|
{
|
||||||
NTSTATUS Status = STATUS_SUCCESS;
|
NTSTATUS Status = STATUS_SUCCESS;
|
||||||
ULONG Pid = (ULONG) NtCurrentTeb()->Cid.UniqueProcess;
|
ULONG Pid = (ULONG) NtCurrentTeb()->Cid.UniqueProcess;
|
||||||
|
|
||||||
Buf->InfoClassMask = DebugInfoMask;
|
Buf->InfoClassMask = DebugInfoMask;
|
||||||
Buf->SizeOfInfo = sizeof(DEBUG_BUFFER);
|
Buf->SizeOfInfo = sizeof(RTL_DEBUG_BUFFER);
|
||||||
|
|
||||||
DPRINT("QueryProcessDebugInformation Start\n");
|
DPRINT("QueryProcessDebugInformation Start\n");
|
||||||
|
|
||||||
|
@ -252,13 +252,13 @@ if (ProcessId <= 1)
|
||||||
else
|
else
|
||||||
if (Pid == ProcessId)
|
if (Pid == ProcessId)
|
||||||
{
|
{
|
||||||
if (DebugInfoMask & PDI_MODULES)
|
if (DebugInfoMask & RTL_DEBUG_QUERY_MODULES)
|
||||||
{
|
{
|
||||||
PMODULE_INFORMATION Mp;
|
PRTL_PROCESS_MODULES Mp;
|
||||||
ULONG ReturnSize = 0;
|
ULONG ReturnSize = 0;
|
||||||
ULONG MSize;
|
ULONG MSize;
|
||||||
|
|
||||||
Mp = (PMODULE_INFORMATION)(Buf + Buf->SizeOfInfo);
|
Mp = (PRTL_PROCESS_MODULES)(Buf + Buf->SizeOfInfo);
|
||||||
|
|
||||||
/* I like this better than the do & while loop. */
|
/* I like this better than the do & while loop. */
|
||||||
Status = LdrQueryProcessModuleInformation( NULL,
|
Status = LdrQueryProcessModuleInformation( NULL,
|
||||||
|
@ -272,22 +272,22 @@ if (Pid == ProcessId)
|
||||||
return Status;
|
return Status;
|
||||||
}
|
}
|
||||||
|
|
||||||
MSize = Mp->ModuleCount * (sizeof(MODULE_INFORMATION) + 8);
|
MSize = Mp->ModuleCount * (sizeof(RTL_PROCESS_MODULES) + 8);
|
||||||
Buf->ModuleInformation = Mp;
|
Buf->ModuleInformation = Mp;
|
||||||
Buf->SizeOfInfo = Buf->SizeOfInfo + MSize;
|
Buf->SizeOfInfo = Buf->SizeOfInfo + MSize;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (DebugInfoMask & PDI_HEAPS)
|
if (DebugInfoMask & RTL_DEBUG_QUERY_HEAPS)
|
||||||
{
|
{
|
||||||
PHEAP_INFORMATION Hp;
|
PRTL_PROCESS_HEAPS Hp;
|
||||||
ULONG HSize;
|
ULONG HSize;
|
||||||
|
|
||||||
Hp = (PHEAP_INFORMATION)(Buf + Buf->SizeOfInfo);
|
Hp = (PRTL_PROCESS_HEAPS)(Buf + Buf->SizeOfInfo);
|
||||||
HSize = sizeof(HEAP_INFORMATION);
|
HSize = sizeof(RTL_PROCESS_HEAPS);
|
||||||
if (DebugInfoMask & PDI_HEAP_TAGS)
|
if (DebugInfoMask & RTL_DEBUG_QUERY_HEAP_TAGS)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
if (DebugInfoMask & PDI_HEAP_BLOCKS)
|
if (DebugInfoMask & RTL_DEBUG_QUERY_HEAP_BLOCKS)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
Buf->HeapInformation = Hp;
|
Buf->HeapInformation = Hp;
|
||||||
|
@ -295,13 +295,13 @@ if (Pid == ProcessId)
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (DebugInfoMask & PDI_LOCKS)
|
if (DebugInfoMask & RTL_DEBUG_QUERY_LOCKS)
|
||||||
{
|
{
|
||||||
PLOCK_INFORMATION Lp;
|
PRTL_PROCESS_LOCKS Lp;
|
||||||
ULONG LSize;
|
ULONG LSize;
|
||||||
|
|
||||||
Lp = (PLOCK_INFORMATION)(Buf + Buf->SizeOfInfo);
|
Lp = (PRTL_PROCESS_LOCKS)(Buf + Buf->SizeOfInfo);
|
||||||
LSize = sizeof(LOCK_INFORMATION);
|
LSize = sizeof(RTL_PROCESS_LOCKS);
|
||||||
Buf->LockInformation = Lp;
|
Buf->LockInformation = Lp;
|
||||||
Buf->SizeOfInfo = Buf->SizeOfInfo + LSize;
|
Buf->SizeOfInfo = Buf->SizeOfInfo + LSize;
|
||||||
}
|
}
|
||||||
|
@ -334,13 +334,13 @@ else
|
||||||
return Status;
|
return Status;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (DebugInfoMask & PDI_MODULES)
|
if (DebugInfoMask & RTL_DEBUG_QUERY_MODULES)
|
||||||
{
|
{
|
||||||
PMODULE_INFORMATION Mp;
|
PRTL_PROCESS_MODULES Mp;
|
||||||
ULONG ReturnSize = 0;
|
ULONG ReturnSize = 0;
|
||||||
ULONG MSize;
|
ULONG MSize;
|
||||||
|
|
||||||
Mp = (PMODULE_INFORMATION)(Buf + Buf->SizeOfInfo);
|
Mp = (PRTL_PROCESS_MODULES)(Buf + Buf->SizeOfInfo);
|
||||||
|
|
||||||
Status = RtlpQueryRemoteProcessModules( hProcess,
|
Status = RtlpQueryRemoteProcessModules( hProcess,
|
||||||
NULL,
|
NULL,
|
||||||
|
@ -356,22 +356,22 @@ else
|
||||||
return Status;
|
return Status;
|
||||||
}
|
}
|
||||||
|
|
||||||
MSize = Mp->ModuleCount * (sizeof(MODULE_INFORMATION) + 8);
|
MSize = Mp->ModuleCount * (sizeof(RTL_PROCESS_MODULES) + 8);
|
||||||
Buf->ModuleInformation = Mp;
|
Buf->ModuleInformation = Mp;
|
||||||
Buf->SizeOfInfo = Buf->SizeOfInfo + MSize;
|
Buf->SizeOfInfo = Buf->SizeOfInfo + MSize;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (DebugInfoMask & PDI_HEAPS)
|
if (DebugInfoMask & RTL_DEBUG_QUERY_HEAPS)
|
||||||
{
|
{
|
||||||
PHEAP_INFORMATION Hp;
|
PRTL_PROCESS_HEAPS Hp;
|
||||||
ULONG HSize;
|
ULONG HSize;
|
||||||
|
|
||||||
Hp = (PHEAP_INFORMATION)(Buf + Buf->SizeOfInfo);
|
Hp = (PRTL_PROCESS_HEAPS)(Buf + Buf->SizeOfInfo);
|
||||||
HSize = sizeof(HEAP_INFORMATION);
|
HSize = sizeof(RTL_PROCESS_HEAPS);
|
||||||
if (DebugInfoMask & PDI_HEAP_TAGS)
|
if (DebugInfoMask & RTL_DEBUG_QUERY_HEAP_TAGS)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
if (DebugInfoMask & PDI_HEAP_BLOCKS)
|
if (DebugInfoMask & RTL_DEBUG_QUERY_HEAP_BLOCKS)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
Buf->HeapInformation = Hp;
|
Buf->HeapInformation = Hp;
|
||||||
|
@ -379,13 +379,13 @@ else
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (DebugInfoMask & PDI_LOCKS)
|
if (DebugInfoMask & RTL_DEBUG_QUERY_LOCKS)
|
||||||
{
|
{
|
||||||
PLOCK_INFORMATION Lp;
|
PRTL_PROCESS_LOCKS Lp;
|
||||||
ULONG LSize;
|
ULONG LSize;
|
||||||
|
|
||||||
Lp = (PLOCK_INFORMATION)(Buf + Buf->SizeOfInfo);
|
Lp = (PRTL_PROCESS_LOCKS)(Buf + Buf->SizeOfInfo);
|
||||||
LSize = sizeof(LOCK_INFORMATION);
|
LSize = sizeof(RTL_PROCESS_LOCKS);
|
||||||
Buf->LockInformation = Lp;
|
Buf->LockInformation = Lp;
|
||||||
Buf->SizeOfInfo = Buf->SizeOfInfo + LSize;
|
Buf->SizeOfInfo = Buf->SizeOfInfo + LSize;
|
||||||
}
|
}
|
||||||
|
|
|
@ -498,7 +498,7 @@ static ULONG get_full_path_helper(
|
||||||
ULONG size)
|
ULONG size)
|
||||||
{
|
{
|
||||||
ULONG reqsize = 0, mark = 0, dep = 0, deplen;
|
ULONG reqsize = 0, mark = 0, dep = 0, deplen;
|
||||||
DOS_PATHNAME_TYPE type;
|
RTL_PATH_TYPE type;
|
||||||
LPWSTR ins_str = NULL;
|
LPWSTR ins_str = NULL;
|
||||||
LPCWSTR ptr;
|
LPCWSTR ptr;
|
||||||
const UNICODE_STRING* cd;
|
const UNICODE_STRING* cd;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue