Author: fireball
Date: Fri Dec 16 15:45:09 2011
New Revision: 54662
URL:
http://svn.reactos.org/svn/reactos?rev=54662&view=rev
Log:
[REFORMATTING]
- Reindent the dbgbuffer.c code to the ReactOS Standard Indentation.
Modified:
trunk/reactos/lib/rtl/dbgbuffer.c
Modified: trunk/reactos/lib/rtl/dbgbuffer.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/lib/rtl/dbgbuffer.c?rev=54…
==============================================================================
--- trunk/reactos/lib/rtl/dbgbuffer.c [iso-8859-1] (original)
+++ trunk/reactos/lib/rtl/dbgbuffer.c [iso-8859-1] Fri Dec 16 15:45:09 2011
@@ -1,8 +1,8 @@
/* COPYRIGHT: See COPYING in the top level directory
- * PROJECT: ReactOS system libraries
- * FILE: lib/rtl/dbgbuffer.c
- * PROGRAMER: James Tabor
- */
+* PROJECT: ReactOS system libraries
+* FILE: lib/rtl/dbgbuffer.c
+* PROGRAMER: James Tabor
+*/
/* INCLUDES *****************************************************************/
@@ -14,388 +14,392 @@
/* FUNCTIONS *****************************************************************/
/*
- * @unimplemented
- */
-PRTL_DEBUG_INFORMATION NTAPI
+* @unimplemented
+*/
+PRTL_DEBUG_INFORMATION
+NTAPI
RtlCreateQueryDebugBuffer(IN ULONG Size,
IN BOOLEAN EventPair)
{
- NTSTATUS Status;
- PRTL_DEBUG_INFORMATION Buf = NULL;
- SIZE_T ViewSize = 100 * PAGE_SIZE;
-
- Status = NtAllocateVirtualMemory( NtCurrentProcess(),
- (PVOID*)&Buf,
+ NTSTATUS Status;
+ PRTL_DEBUG_INFORMATION Buf = NULL;
+ SIZE_T ViewSize = 100 * PAGE_SIZE;
+
+ Status = NtAllocateVirtualMemory(NtCurrentProcess(),
+ (PVOID*)&Buf,
0,
&ViewSize,
MEM_COMMIT,
PAGE_READWRITE);
- if (!NT_SUCCESS(Status))
- {
- return NULL;
- }
-
- Buf->ViewBaseClient = Buf;
- Buf->ViewSize = (ULONG)ViewSize;
-
- DPRINT("RtlCQDB: BA: %p BS: 0x%lx\n", Buf->ViewBaseClient,
Buf->ViewSize);
-
- return Buf;
+ if (!NT_SUCCESS(Status)) return NULL;
+
+ Buf->ViewBaseClient = Buf;
+ Buf->ViewSize = (ULONG)ViewSize;
+
+ DPRINT("RtlCQDB: BA: %p BS: 0x%lx\n", Buf->ViewBaseClient,
Buf->ViewSize);
+
+ return Buf;
}
/*
- * @unimplemented
- */
-NTSTATUS NTAPI
+* @unimplemented
+*/
+NTSTATUS
+NTAPI
RtlDestroyQueryDebugBuffer(IN PRTL_DEBUG_INFORMATION Buf)
{
- NTSTATUS Status = STATUS_SUCCESS;
-
- if (NULL != Buf)
- {
- Status = NtFreeVirtualMemory( NtCurrentProcess(),
- (PVOID)Buf,
- (PSIZE_T)&Buf->ViewSize, /* FIXME: not
portable! */
- MEM_RELEASE);
- }
- if (!NT_SUCCESS(Status))
- {
+ NTSTATUS Status = STATUS_SUCCESS;
+
+ if (NULL != Buf)
+ {
+ Status = NtFreeVirtualMemory(NtCurrentProcess(),
+ (PVOID)Buf,
+ (PSIZE_T)&Buf->ViewSize, /* FIXME: not
portable! */
+ MEM_RELEASE);
+ }
+ if (!NT_SUCCESS(Status))
+ {
DPRINT1("RtlDQDB: Failed to free VM!\n");
- }
- return Status;
+ }
+ return Status;
}
/*
- * Based on lib/epsapi/enum/modules.c by KJK::Hyperion.
- *
- */
-NTSTATUS NTAPI
+* Based on lib/epsapi/enum/modules.c by KJK::Hyperion.
+*
+*/
+NTSTATUS
+NTAPI
RtlpQueryRemoteProcessModules(HANDLE ProcessHandle,
IN PRTL_PROCESS_MODULES Modules OPTIONAL,
IN ULONG Size OPTIONAL,
OUT PULONG ReturnedSize)
{
- PROCESS_BASIC_INFORMATION pbiInfo;
- PPEB_LDR_DATA ppldLdrData;
- LDR_DATA_TABLE_ENTRY lmModule;
- PLIST_ENTRY pleListHead;
- PLIST_ENTRY pleCurEntry;
-
- PRTL_PROCESS_MODULE_INFORMATION ModulePtr = NULL;
- NTSTATUS Status = STATUS_SUCCESS;
- ULONG UsedSize = sizeof(ULONG);
- ANSI_STRING AnsiString;
- PCHAR p;
-
- DPRINT("RtlpQueryRemoteProcessModules Start\n");
-
- /* query the process basic information (includes the PEB address) */
- Status = NtQueryInformationProcess ( ProcessHandle,
+ PROCESS_BASIC_INFORMATION pbiInfo;
+ PPEB_LDR_DATA ppldLdrData;
+ LDR_DATA_TABLE_ENTRY lmModule;
+ PLIST_ENTRY pleListHead;
+ PLIST_ENTRY pleCurEntry;
+
+ PRTL_PROCESS_MODULE_INFORMATION ModulePtr = NULL;
+ NTSTATUS Status = STATUS_SUCCESS;
+ ULONG UsedSize = sizeof(ULONG);
+ ANSI_STRING AnsiString;
+ PCHAR p;
+
+ DPRINT("RtlpQueryRemoteProcessModules Start\n");
+
+ /* query the process basic information (includes the PEB address) */
+ Status = NtQueryInformationProcess(ProcessHandle,
ProcessBasicInformation,
&pbiInfo,
sizeof(PROCESS_BASIC_INFORMATION),
NULL);
- if (!NT_SUCCESS(Status))
- {
- /* failure */
- DPRINT("NtQueryInformationProcess 1 0x%lx \n", Status);
- return Status;
- }
-
- if (Modules == NULL || Size == 0)
- {
- Status = STATUS_INFO_LENGTH_MISMATCH;
- }
- else
- {
- Modules->NumberOfModules = 0;
- ModulePtr = &Modules->Modules[0];
- Status = STATUS_SUCCESS;
- }
-
- /* get the address of the PE Loader data */
- Status = NtReadVirtualMemory ( ProcessHandle,
- &(pbiInfo.PebBaseAddress->Ldr),
- &ppldLdrData,
- sizeof(ppldLdrData),
- NULL );
-
- if (!NT_SUCCESS(Status))
- {
- /* failure */
- DPRINT("NtReadVirtualMemory 1 0x%lx \n", Status);
- return Status;
- }
-
-
- /* head of the module list: the last element in the list will point to this */
- pleListHead = &ppldLdrData->InLoadOrderModuleList;
-
- /* get the address of the first element in the list */
- Status = NtReadVirtualMemory ( ProcessHandle,
- &(ppldLdrData->InLoadOrderModuleList.Flink),
- &pleCurEntry,
+ if (!NT_SUCCESS(Status))
+ {
+ /* failure */
+ DPRINT("NtQueryInformationProcess 1 0x%lx \n", Status);
+ return Status;
+ }
+
+ if (Modules == NULL || Size == 0)
+ {
+ Status = STATUS_INFO_LENGTH_MISMATCH;
+ }
+ else
+ {
+ Modules->NumberOfModules = 0;
+ ModulePtr = &Modules->Modules[0];
+ Status = STATUS_SUCCESS;
+ }
+
+ /* get the address of the PE Loader data */
+ Status = NtReadVirtualMemory(ProcessHandle,
+ &(pbiInfo.PebBaseAddress->Ldr),
+ &ppldLdrData,
+ sizeof(ppldLdrData),
+ NULL);
+
+ if (!NT_SUCCESS(Status))
+ {
+ /* failure */
+ DPRINT("NtReadVirtualMemory 1 0x%lx \n", Status);
+ return Status;
+ }
+
+
+ /* head of the module list: the last element in the list will point to this */
+ pleListHead = &ppldLdrData->InLoadOrderModuleList;
+
+ /* get the address of the first element in the list */
+ Status = NtReadVirtualMemory(ProcessHandle,
+ &(ppldLdrData->InLoadOrderModuleList.Flink),
+ &pleCurEntry,
sizeof(pleCurEntry),
- NULL );
-
- if (!NT_SUCCESS(Status))
- {
+ NULL);
+
+ if (!NT_SUCCESS(Status))
+ {
/* failure */
DPRINT("NtReadVirtualMemory 2 0x%lx \n", Status);
return Status;
- }
-
- while(pleCurEntry != pleListHead)
- {
-
- UNICODE_STRING Unicode;
- WCHAR Buffer[256 * sizeof(WCHAR)];
-
- /* read the current module */
- Status = NtReadVirtualMemory ( ProcessHandle,
- CONTAINING_RECORD(pleCurEntry, LDR_DATA_TABLE_ENTRY, InLoadOrderLinks),
- &lmModule,
- sizeof(LDR_DATA_TABLE_ENTRY),
- NULL );
-
- /* Import module name from remote Process user space. */
- Unicode.Length = lmModule.FullDllName.Length;
- Unicode.MaximumLength = lmModule.FullDllName.MaximumLength;
- Unicode.Buffer = Buffer;
-
- Status = NtReadVirtualMemory ( ProcessHandle,
- lmModule.FullDllName.Buffer,
- Unicode.Buffer,
- Unicode.Length,
- NULL );
-
- if (!NT_SUCCESS(Status))
- {
- /* failure */
- DPRINT( "NtReadVirtualMemory 3 0x%lx \n", Status);
- return Status;
- }
-
- DPRINT(" Module %wZ\n", &Unicode);
-
- if (UsedSize > Size)
+ }
+
+ while(pleCurEntry != pleListHead)
+ {
+ UNICODE_STRING Unicode;
+ WCHAR Buffer[256 * sizeof(WCHAR)];
+
+ /* read the current module */
+ Status = NtReadVirtualMemory(ProcessHandle,
+ CONTAINING_RECORD(pleCurEntry, LDR_DATA_TABLE_ENTRY,
InLoadOrderLinks),
+ &lmModule,
+ sizeof(LDR_DATA_TABLE_ENTRY),
+ NULL);
+
+ /* Import module name from remote Process user space. */
+ Unicode.Length = lmModule.FullDllName.Length;
+ Unicode.MaximumLength = lmModule.FullDllName.MaximumLength;
+ Unicode.Buffer = Buffer;
+
+ Status = NtReadVirtualMemory(ProcessHandle,
+ lmModule.FullDllName.Buffer,
+ Unicode.Buffer,
+ Unicode.Length,
+ NULL);
+
+ if (!NT_SUCCESS(Status))
{
- Status = STATUS_INFO_LENGTH_MISMATCH;
+ /* failure */
+ DPRINT( "NtReadVirtualMemory 3 0x%lx \n", Status);
+ return Status;
}
- else if (Modules != NULL)
+
+ DPRINT(" Module %wZ\n", &Unicode);
+
+ if (UsedSize > Size)
{
- ModulePtr->Section = 0;
- ModulePtr->MappedBase = NULL; // FIXME: ??
- ModulePtr->ImageBase = lmModule.DllBase;
- ModulePtr->ImageSize = lmModule.SizeOfImage;
- ModulePtr->Flags = lmModule.Flags;
- ModulePtr->LoadOrderIndex = 0; // FIXME: ??
- ModulePtr->InitOrderIndex = 0; // FIXME: ??
- ModulePtr->LoadCount = lmModule.LoadCount;
-
- AnsiString.Length = 0;
- AnsiString.MaximumLength = 256;
- AnsiString.Buffer = ModulePtr->FullPathName;
- RtlUnicodeStringToAnsiString(&AnsiString,
- &Unicode,
- FALSE);
-
- p = strrchr(ModulePtr->FullPathName, '\\');
- if (p != NULL)
- ModulePtr->OffsetToFileName = (USHORT)(p - ModulePtr->FullPathName +
1);
- else
- ModulePtr->OffsetToFileName = 0;
-
- ModulePtr++;
- Modules->NumberOfModules++;
+ Status = STATUS_INFO_LENGTH_MISMATCH;
}
- UsedSize += sizeof(RTL_PROCESS_MODULE_INFORMATION);
-
- /* address of the next module in the list */
- pleCurEntry = lmModule.InLoadOrderLinks.Flink;
- }
-
- if (ReturnedSize != 0)
- *ReturnedSize = UsedSize;
-
- DPRINT("RtlpQueryRemoteProcessModules End\n");
+ else if (Modules != NULL)
+ {
+ ModulePtr->Section = 0;
+ ModulePtr->MappedBase = NULL; // FIXME: ??
+ ModulePtr->ImageBase = lmModule.DllBase;
+ ModulePtr->ImageSize = lmModule.SizeOfImage;
+ ModulePtr->Flags = lmModule.Flags;
+ ModulePtr->LoadOrderIndex = 0; // FIXME: ??
+ ModulePtr->InitOrderIndex = 0; // FIXME: ??
+ ModulePtr->LoadCount = lmModule.LoadCount;
+
+ AnsiString.Length = 0;
+ AnsiString.MaximumLength = 256;
+ AnsiString.Buffer = ModulePtr->FullPathName;
+ RtlUnicodeStringToAnsiString(&AnsiString,
+ &Unicode,
+ FALSE);
+
+ p = strrchr(ModulePtr->FullPathName, '\\');
+ if (p != NULL)
+ ModulePtr->OffsetToFileName = (USHORT)(p - ModulePtr->FullPathName
+ 1);
+ else
+ ModulePtr->OffsetToFileName = 0;
+
+ ModulePtr++;
+ Modules->NumberOfModules++;
+ }
+ UsedSize += sizeof(RTL_PROCESS_MODULE_INFORMATION);
+
+ /* address of the next module in the list */
+ pleCurEntry = lmModule.InLoadOrderLinks.Flink;
+ }
+
+ if (ReturnedSize != 0)
+ *ReturnedSize = UsedSize;
+
+ DPRINT("RtlpQueryRemoteProcessModules End\n");
/* success */
- return (STATUS_SUCCESS);
+ return (STATUS_SUCCESS);
}
/*
- * @unimplemented
- */
-NTSTATUS NTAPI
+* @unimplemented
+*/
+NTSTATUS
+NTAPI
RtlQueryProcessDebugInformation(IN ULONG ProcessId,
IN ULONG DebugInfoMask,
IN OUT PRTL_DEBUG_INFORMATION Buf)
{
- NTSTATUS Status = STATUS_SUCCESS;
- ULONG Pid = (ULONG)(ULONG_PTR) NtCurrentTeb()->ClientId.UniqueProcess;
-
- Buf->Flags = DebugInfoMask;
- Buf->OffsetFree = sizeof(RTL_DEBUG_INFORMATION);
-
- DPRINT("QueryProcessDebugInformation Start\n");
-
-/*
- Currently ROS can not read-only from kenrel space, and doesn't
- check for boundaries inside kernel space that are page protected
- from every one but the kernel. aka page 0 - 2
- */
-if (ProcessId <= 1)
- {
- Status = STATUS_ACCESS_VIOLATION;
- }
-else
-if (Pid == ProcessId)
- {
- if (DebugInfoMask & RTL_DEBUG_QUERY_MODULES)
- {
- PRTL_PROCESS_MODULES Mp;
- ULONG ReturnSize = 0;
- ULONG MSize;
-
- Mp = (PRTL_PROCESS_MODULES)(Buf + Buf->OffsetFree);
-
- /* I like this better than the do & while loop. */
- Status = LdrQueryProcessModuleInformation( NULL,
- 0 ,
- &ReturnSize);
- Status = LdrQueryProcessModuleInformation( Mp,
- ReturnSize ,
- &ReturnSize);
- if (!NT_SUCCESS(Status))
- {
- return Status;
- }
-
- MSize = Mp->NumberOfModules * (sizeof(RTL_PROCESS_MODULES) + 8);
- Buf->Modules = Mp;
- Buf->OffsetFree = Buf->OffsetFree + MSize;
- }
-
- if (DebugInfoMask & RTL_DEBUG_QUERY_HEAPS)
- {
- PRTL_PROCESS_HEAPS Hp;
- ULONG HSize;
-
- Hp = (PRTL_PROCESS_HEAPS)(Buf + Buf->OffsetFree);
- HSize = sizeof(RTL_PROCESS_HEAPS);
- if (DebugInfoMask & RTL_DEBUG_QUERY_HEAP_TAGS)
- {
- }
- if (DebugInfoMask & RTL_DEBUG_QUERY_HEAP_BLOCKS)
- {
- }
- Buf->Heaps = Hp;
- Buf->OffsetFree = Buf->OffsetFree + HSize;
-
- }
-
- if (DebugInfoMask & RTL_DEBUG_QUERY_LOCKS)
- {
- PRTL_PROCESS_LOCKS Lp;
- ULONG LSize;
-
- Lp = (PRTL_PROCESS_LOCKS)(Buf + Buf->OffsetFree);
- LSize = sizeof(RTL_PROCESS_LOCKS);
- Buf->Locks = Lp;
- Buf->OffsetFree = Buf->OffsetFree + LSize;
- }
-
- DPRINT("QueryProcessDebugInformation end \n");
- DPRINT("QueryDebugInfo : 0x%lx\n", Buf->OffsetFree);
+ NTSTATUS Status = STATUS_SUCCESS;
+ ULONG Pid = (ULONG)(ULONG_PTR) NtCurrentTeb()->ClientId.UniqueProcess;
+
+ Buf->Flags = DebugInfoMask;
+ Buf->OffsetFree = sizeof(RTL_DEBUG_INFORMATION);
+
+ DPRINT("QueryProcessDebugInformation Start\n");
+
+ /*
+ Currently ROS can not read-only from kenrel space, and doesn't
+ check for boundaries inside kernel space that are page protected
+ from every one but the kernel. aka page 0 - 2
+ */
+ if (ProcessId <= 1)
+ {
+ Status = STATUS_ACCESS_VIOLATION;
+ }
+ else
+ if (Pid == ProcessId)
+ {
+ if (DebugInfoMask & RTL_DEBUG_QUERY_MODULES)
+ {
+ PRTL_PROCESS_MODULES Mp;
+ ULONG ReturnSize = 0;
+ ULONG MSize;
+
+ Mp = (PRTL_PROCESS_MODULES)(Buf + Buf->OffsetFree);
+
+ /* I like this better than the do & while loop. */
+ Status = LdrQueryProcessModuleInformation(NULL,
+ 0,
+ &ReturnSize);
+ Status = LdrQueryProcessModuleInformation(Mp,
+ ReturnSize ,
+ &ReturnSize);
+ if (!NT_SUCCESS(Status))
+ {
+ return Status;
+ }
+
+ MSize = Mp->NumberOfModules * (sizeof(RTL_PROCESS_MODULES) + 8);
+ Buf->Modules = Mp;
+ Buf->OffsetFree = Buf->OffsetFree + MSize;
+ }
+
+ if (DebugInfoMask & RTL_DEBUG_QUERY_HEAPS)
+ {
+ PRTL_PROCESS_HEAPS Hp;
+ ULONG HSize;
+
+ Hp = (PRTL_PROCESS_HEAPS)(Buf + Buf->OffsetFree);
+ HSize = sizeof(RTL_PROCESS_HEAPS);
+ if (DebugInfoMask & RTL_DEBUG_QUERY_HEAP_TAGS)
+ {
+ // TODO
+ }
+ if (DebugInfoMask & RTL_DEBUG_QUERY_HEAP_BLOCKS)
+ {
+ // TODO
+ }
+ Buf->Heaps = Hp;
+ Buf->OffsetFree = Buf->OffsetFree + HSize;
+
+ }
+
+ if (DebugInfoMask & RTL_DEBUG_QUERY_LOCKS)
+ {
+ PRTL_PROCESS_LOCKS Lp;
+ ULONG LSize;
+
+ Lp = (PRTL_PROCESS_LOCKS)(Buf + Buf->OffsetFree);
+ LSize = sizeof(RTL_PROCESS_LOCKS);
+ Buf->Locks = Lp;
+ Buf->OffsetFree = Buf->OffsetFree + LSize;
+ }
+
+ DPRINT("QueryProcessDebugInformation end \n");
+ DPRINT("QueryDebugInfo : 0x%lx\n", Buf->OffsetFree);
+ }
+ else
+ {
+ HANDLE hProcess;
+ CLIENT_ID ClientId;
+ OBJECT_ATTRIBUTES ObjectAttributes;
+
+ Buf->TargetProcessHandle = NtCurrentProcess();
+
+ ClientId.UniqueThread = 0;
+ ClientId.UniqueProcess = (HANDLE)(ULONG_PTR)ProcessId;
+ InitializeObjectAttributes(&ObjectAttributes,
+ NULL,
+ 0,
+ NULL,
+ NULL);
+
+ Status = NtOpenProcess(&hProcess,
+ (PROCESS_ALL_ACCESS),
+ &ObjectAttributes,
+ &ClientId );
+ if (!NT_SUCCESS(Status))
+ {
+ return Status;
+ }
+
+ if (DebugInfoMask & RTL_DEBUG_QUERY_MODULES)
+ {
+ PRTL_PROCESS_MODULES Mp;
+ ULONG ReturnSize = 0;
+ ULONG MSize;
+
+ Mp = (PRTL_PROCESS_MODULES)(Buf + Buf->OffsetFree);
+
+ Status = RtlpQueryRemoteProcessModules(hProcess,
+ NULL,
+ 0,
+ &ReturnSize);
+
+ Status = RtlpQueryRemoteProcessModules(hProcess,
+ Mp,
+ ReturnSize ,
+ &ReturnSize);
+ if (!NT_SUCCESS(Status))
+ {
+ return Status;
+ }
+
+ MSize = Mp->NumberOfModules * (sizeof(RTL_PROCESS_MODULES) + 8);
+ Buf->Modules = Mp;
+ Buf->OffsetFree = Buf->OffsetFree + MSize;
+ }
+
+ if (DebugInfoMask & RTL_DEBUG_QUERY_HEAPS)
+ {
+ PRTL_PROCESS_HEAPS Hp;
+ ULONG HSize;
+
+ Hp = (PRTL_PROCESS_HEAPS)(Buf + Buf->OffsetFree);
+ HSize = sizeof(RTL_PROCESS_HEAPS);
+ if (DebugInfoMask & RTL_DEBUG_QUERY_HEAP_TAGS)
+ {
+ // TODO
+ }
+ if (DebugInfoMask & RTL_DEBUG_QUERY_HEAP_BLOCKS)
+ {
+ // TODO
+ }
+ Buf->Heaps = Hp;
+ Buf->OffsetFree = Buf->OffsetFree + HSize;
+
+ }
+
+ if (DebugInfoMask & RTL_DEBUG_QUERY_LOCKS)
+ {
+ PRTL_PROCESS_LOCKS Lp;
+ ULONG LSize;
+
+ Lp = (PRTL_PROCESS_LOCKS)(Buf + Buf->OffsetFree);
+ LSize = sizeof(RTL_PROCESS_LOCKS);
+ Buf->Locks = Lp;
+ Buf->OffsetFree = Buf->OffsetFree + LSize;
+ }
+
+ DPRINT("QueryProcessDebugInformation end \n");
+ DPRINT("QueryDebugInfo : 0x%lx\n", Buf->OffsetFree);
+ }
+
+ return Status;
}
-else
-{
- HANDLE hProcess;
- CLIENT_ID ClientId;
- OBJECT_ATTRIBUTES ObjectAttributes;
-
- Buf->TargetProcessHandle = NtCurrentProcess();
-
- ClientId.UniqueThread = 0;
- ClientId.UniqueProcess = (HANDLE)(ULONG_PTR)ProcessId;
- InitializeObjectAttributes(&ObjectAttributes,
- NULL,
- 0,
- NULL,
- NULL);
-
- Status = NtOpenProcess( &hProcess,
- (PROCESS_ALL_ACCESS),
- &ObjectAttributes,
- &ClientId );
- if (!NT_SUCCESS(Status))
- {
- return Status;
- }
-
- if (DebugInfoMask & RTL_DEBUG_QUERY_MODULES)
- {
- PRTL_PROCESS_MODULES Mp;
- ULONG ReturnSize = 0;
- ULONG MSize;
-
- Mp = (PRTL_PROCESS_MODULES)(Buf + Buf->OffsetFree);
-
- Status = RtlpQueryRemoteProcessModules( hProcess,
- NULL,
- 0,
- &ReturnSize);
-
- Status = RtlpQueryRemoteProcessModules( hProcess,
- Mp,
- ReturnSize ,
- &ReturnSize);
- if (!NT_SUCCESS(Status))
- {
- return Status;
- }
-
- MSize = Mp->NumberOfModules * (sizeof(RTL_PROCESS_MODULES) + 8);
- Buf->Modules = Mp;
- Buf->OffsetFree = Buf->OffsetFree + MSize;
- }
-
- if (DebugInfoMask & RTL_DEBUG_QUERY_HEAPS)
- {
- PRTL_PROCESS_HEAPS Hp;
- ULONG HSize;
-
- Hp = (PRTL_PROCESS_HEAPS)(Buf + Buf->OffsetFree);
- HSize = sizeof(RTL_PROCESS_HEAPS);
- if (DebugInfoMask & RTL_DEBUG_QUERY_HEAP_TAGS)
- {
- }
- if (DebugInfoMask & RTL_DEBUG_QUERY_HEAP_BLOCKS)
- {
- }
- Buf->Heaps = Hp;
- Buf->OffsetFree = Buf->OffsetFree + HSize;
-
- }
-
- if (DebugInfoMask & RTL_DEBUG_QUERY_LOCKS)
- {
- PRTL_PROCESS_LOCKS Lp;
- ULONG LSize;
-
- Lp = (PRTL_PROCESS_LOCKS)(Buf + Buf->OffsetFree);
- LSize = sizeof(RTL_PROCESS_LOCKS);
- Buf->Locks = Lp;
- Buf->OffsetFree = Buf->OffsetFree + LSize;
- }
-
- DPRINT("QueryProcessDebugInformation end \n");
- DPRINT("QueryDebugInfo : 0x%lx\n", Buf->OffsetFree);
-}
- return Status;
-
-}
/* EOL */