DbgkpWakeTarget

NTSTATUS __stdcall DbgkpWakeTarget(
        PVOID *DebugObjectHandle,
        UINT64 DesiredAccess,
        OBJECT_ATTRIBUTES *ObjectAttributes,
        UINT64 Flags){
  int v4; 
  struct _EX_RUNDOWN_REF *v6; 
  NTSTATUS result; 
  v4 = *((_DWORD *)DebugObjectHandle + 19);
  v6 = (struct _EX_RUNDOWN_REF *)DebugObjectHandle[8];
  if( (v4 & 0x20) != 0 )
  {
    PsResumeThread((__int64)DebugObjectHandle[8], 0i64);
    v4 = *((_DWORD *)DebugObjectHandle + 19);
  }
  if( (v4 & 8) != 0 )
  {
    ExReleaseRundownProtection(v6 + 159);
    v4 = *((_DWORD *)DebugObjectHandle + 19);
  }
  if( (v4 & 2) == 0 )
    return KeSetEvent((PRKEVENT)(DebugObjectHandle + 2), 0);
  DbgkpFreeDebugEvent(DebugObjectHandle);
  return result;
}

Referenced by:

DbgkClearProcessDebugObject
DbgkpCloseObject
DbgkpSetProcessDebugObject
NtDebugContinue