mirror of
https://github.com/reactos/reactos.git
synced 2025-02-25 01:39:30 +00:00
[KERNEL32]: Fix RemoveHandles, CloseAllProcessHandles...again.
svn path=/trunk/; revision=52814
This commit is contained in:
parent
90e2e1bad0
commit
89fc754845
1 changed files with 12 additions and 10 deletions
|
@ -300,11 +300,12 @@ WINAPI
|
|||
RemoveHandles(IN DWORD dwProcessId,
|
||||
IN DWORD dwThreadId)
|
||||
{
|
||||
PDBGSS_THREAD_DATA ThreadData, ThisData;
|
||||
PDBGSS_THREAD_DATA *ThreadData;
|
||||
PDBGSS_THREAD_DATA ThisData;
|
||||
|
||||
/* Loop all thread data events */
|
||||
ThreadData = DbgSsGetThreadData();
|
||||
for (ThisData = ThreadData; ThisData; ThisData = ThisData->Next)
|
||||
ThreadData = (PDBGSS_THREAD_DATA*)NtCurrentTeb()->DbgSsReserved;
|
||||
for (ThisData = *ThreadData; ThisData; ThisData = ThisData->Next)
|
||||
{
|
||||
/* Check if this one matches */
|
||||
if ((ThisData->HandleMarked) &&
|
||||
|
@ -315,7 +316,7 @@ RemoveHandles(IN DWORD dwProcessId,
|
|||
if (ThisData->ProcessHandle) CloseHandle(ThisData->ProcessHandle);
|
||||
|
||||
/* Unlink the thread data */
|
||||
ThreadData->Next = ThisData->Next;
|
||||
*ThreadData = ThisData->Next;
|
||||
|
||||
/* Free it*/
|
||||
RtlFreeHeap(RtlGetProcessHeap(), 0, ThisData);
|
||||
|
@ -323,7 +324,7 @@ RemoveHandles(IN DWORD dwProcessId,
|
|||
else
|
||||
{
|
||||
/* Move to the next one */
|
||||
ThreadData = ThisData;
|
||||
ThreadData = &ThisData->Next;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -332,11 +333,12 @@ VOID
|
|||
WINAPI
|
||||
CloseAllProcessHandles(IN DWORD dwProcessId)
|
||||
{
|
||||
PDBGSS_THREAD_DATA ThreadData, ThisData;
|
||||
PDBGSS_THREAD_DATA *ThreadData;
|
||||
PDBGSS_THREAD_DATA ThisData;
|
||||
|
||||
/* Loop all thread data events */
|
||||
ThreadData = DbgSsGetThreadData();
|
||||
for (ThisData = ThreadData; ThisData; ThisData = ThisData->Next)
|
||||
ThreadData = (PDBGSS_THREAD_DATA*)NtCurrentTeb()->DbgSsReserved;
|
||||
for (ThisData = *ThreadData; ThisData; ThisData = ThisData->Next)
|
||||
{
|
||||
/* Check if this one matches */
|
||||
if (ThisData->ProcessId == dwProcessId)
|
||||
|
@ -346,7 +348,7 @@ CloseAllProcessHandles(IN DWORD dwProcessId)
|
|||
if (ThisData->ProcessHandle) CloseHandle(ThisData->ProcessHandle);
|
||||
|
||||
/* Unlink the thread data */
|
||||
ThreadData->Next = ThisData->Next;
|
||||
*ThreadData = ThisData->Next;
|
||||
|
||||
/* Free it*/
|
||||
RtlFreeHeap(RtlGetProcessHeap(), 0, ThisData);
|
||||
|
@ -354,7 +356,7 @@ CloseAllProcessHandles(IN DWORD dwProcessId)
|
|||
else
|
||||
{
|
||||
/* Move to the next one */
|
||||
ThreadData = ThisData;
|
||||
ThreadData = &ThisData->Next;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue