-/* $Id: tlist.c,v 1.2 2002/09/03 18:44:18 chorns Exp $
+/* $Id: tlist.c,v 1.3 2003/03/31 21:03:42 hyperion Exp $
*
* ReactOS Project
* TList
return TRUE;
}
-PSYSTEM_PROCESS_INFORMATION STDCALL
+PSYSTEM_PROCESSES STDCALL
GetProcessAndThreadsInfo (PULONG Size)
{
NTSTATUS Status = STATUS_SUCCESS;
- PSYSTEM_PROCESS_INFORMATION pInfo = NULL;
+ PSYSTEM_PROCESSES pInfo = NULL;
ULONG Length = PAGE_SIZE;
ULONG RequiredLength = 0;
int STDCALL
ProcessHasDescendants (
ULONG Pid,
- PSYSTEM_PROCESS_INFORMATION pInfo
+ PSYSTEM_PROCESSES pInfo
)
{
LONG Count = 0;
if (NULL == pInfo) return 0;
do {
- if (ALREADY_PROCESSED != pInfo->ParentProcessId)
+ if (ALREADY_PROCESSED != pInfo->InheritedFromProcessId)
{
- if ((Pid != pInfo->ProcessId) && (Pid == pInfo->ParentProcessId))
+ if ((Pid != pInfo->ProcessId) && (Pid == pInfo->InheritedFromProcessId))
{
++ Count;
}
}
- (PBYTE) pInfo += pInfo->RelativeOffset;
+ (PBYTE) pInfo += pInfo->NextEntryDelta;
- } while (0 != pInfo->RelativeOffset);
+ } while (0 != pInfo->NextEntryDelta);
return Count;
}
BOOL STDCALL
GetProcessInfo (
- PSYSTEM_PROCESS_INFORMATION pInfo,
+ PSYSTEM_PROCESSES pInfo,
LPWSTR * Module,
LPWSTR * Title
)
{
- *Module = (pInfo->Name.Length ? pInfo->Name.Buffer : L"System process");
+ *Module = (pInfo->ProcessName.Length ? pInfo->ProcessName.Buffer : L"System process");
*Title = L""; /* TODO: check if the process has any window */
return TRUE;
}
int STDCALL PrintProcessInfoDepth (
- PSYSTEM_PROCESS_INFORMATION pInfo,
+ PSYSTEM_PROCESSES pInfo,
LONG Depth
)
{
L"%s (%d, %d) %s\n",
Module,
pInfo->ProcessId,
- pInfo->ParentProcessId,
+ pInfo->InheritedFromProcessId,
Title
);
return EXIT_SUCCESS;
int STDCALL
PrintProcessAndDescendants (
- PSYSTEM_PROCESS_INFORMATION pInfo,
- PSYSTEM_PROCESS_INFORMATION pInfoBase,
+ PSYSTEM_PROCESSES pInfo,
+ PSYSTEM_PROCESSES pInfoBase,
LONG Depth
)
{
if (NULL == pInfo) return EXIT_FAILURE;
/* Print current pInfo process */
PrintProcessInfoDepth (pInfo, Depth ++);
- pInfo->ParentProcessId = ALREADY_PROCESSED;
+ pInfo->InheritedFromProcessId = ALREADY_PROCESSED;
/* Save current process' PID */
Pid = pInfo->ProcessId;
/* Scan and print possible children */
do {
- if (ALREADY_PROCESSED != pInfo->ParentProcessId)
+ if (ALREADY_PROCESSED != pInfo->InheritedFromProcessId)
{
- if (Pid == pInfo->ParentProcessId)
+ if (Pid == pInfo->InheritedFromProcessId)
{
if (ProcessHasDescendants (Pid, pInfoBase))
{
else
{
PrintProcessInfoDepth (pInfo, Depth);
- pInfo->ParentProcessId = ALREADY_PROCESSED;
+ pInfo->InheritedFromProcessId = ALREADY_PROCESSED;
}
}
}
- (PBYTE) pInfo += pInfo->RelativeOffset;
+ (PBYTE) pInfo += pInfo->NextEntryDelta;
- } while (0 != pInfo->RelativeOffset);
+ } while (0 != pInfo->NextEntryDelta);
return EXIT_SUCCESS;
}
int STDCALL PrintProcessList (BOOL DisplayTree)
{
- PSYSTEM_PROCESS_INFORMATION pInfo = NULL;
- PSYSTEM_PROCESS_INFORMATION pInfoBase = NULL;
+ PSYSTEM_PROCESSES pInfo = NULL;
+ PSYSTEM_PROCESSES pInfoBase = NULL;
LONG Length = 0;
LPWSTR Module = L"";
LPWSTR Title = L"";
pInfo->ProcessId,
Module,
Title,
- pInfo->ParentProcessId
+ pInfo->InheritedFromProcessId
);
}
else
{
- if (ALREADY_PROCESSED != pInfo->ParentProcessId)
+ if (ALREADY_PROCESSED != pInfo->InheritedFromProcessId)
{
PrintProcessAndDescendants (pInfo, pInfoBase, 0);
}
}
- (PBYTE) pInfo += pInfo->RelativeOffset;
+ (PBYTE) pInfo += pInfo->NextEntryDelta;
- } while (0 != pInfo->RelativeOffset);
+ } while (0 != pInfo->NextEntryDelta);
NtFreeVirtualMemory (
NtCurrentProcess(),
}
-int STDCALL PrintThreads (PSYSTEM_PROCESS_INFORMATION pInfo)
+int STDCALL PrintThreads (PSYSTEM_PROCESSES pInfo)
{
ULONG ThreadIndex = 0;
NTSTATUS Status = STATUS_SUCCESS;
& hThread,
THREAD_QUERY_INFORMATION,
& Oa,
- & pInfo->ThreadSysInfo[ThreadIndex].ClientId
+ & pInfo->Threads[ThreadIndex].ClientId
);
if (!NT_SUCCESS(Status))
{
/* Now print the collected information */
wprintf (L" %4d Win32StartAddr:0x%08x LastErr:0x%08x State:%s\n",
- pInfo->ThreadSysInfo[ThreadIndex].ClientId.UniqueThread,
+ pInfo->Threads[ThreadIndex].ClientId.UniqueThread,
Win32StartAddress,
0 /* FIXME: ((PTEB) tInfo.TebBaseAddress)->LastErrorValue */,
- ThreadStateName[pInfo->ThreadSysInfo[ThreadIndex].State]
+ ThreadStateName[pInfo->Threads[ThreadIndex].State]
);
}
return EXIT_SUCCESS;
return EXIT_SUCCESS;
}
-PSYSTEM_PROCESS_INFORMATION STDCALL
+PSYSTEM_PROCESSES STDCALL
GetProcessInfoPid (
- PSYSTEM_PROCESS_INFORMATION pInfoBase,
+ PSYSTEM_PROCESSES pInfoBase,
DWORD Pid
)
{
{
return pInfoBase;
}
- (PBYTE) pInfoBase += pInfoBase->RelativeOffset;
+ (PBYTE) pInfoBase += pInfoBase->NextEntryDelta;
- } while (0 != pInfoBase->RelativeOffset);
+ } while (0 != pInfoBase->NextEntryDelta);
return NULL;
}
ULONG ReturnLength = 0;
PROCESS_BASIC_INFORMATION PsBasic;
VM_COUNTERS PsVm;
- PSYSTEM_PROCESS_INFORMATION pInfo = NULL;
- PSYSTEM_PROCESS_INFORMATION pInfoBase = NULL;
+ PSYSTEM_PROCESSES pInfo = NULL;
+ PSYSTEM_PROCESSES pInfoBase = NULL;
LONG pInfoBaseLength = 0;
LPWSTR Module = L"";
LPWSTR Title = L"";