| 261 | } |
| 262 | |
| 263 | VOID DbgkpWakeTarget( |
| 264 | _In_ PDEBUG_EVENT DebugEvent |
| 265 | ) { |
| 266 | PETHREAD Thread; |
| 267 | |
| 268 | Thread = (PETHREAD)DebugEvent->Thread; |
| 269 | |
| 270 | if ((DebugEvent->Flags & DEBUG_EVENT_SUSPEND) != 0) { |
| 271 | PsResumeThread(Thread, nullptr); |
| 272 | } |
| 273 | |
| 274 | if (DebugEvent->Flags & DEBUG_EVENT_RELEASE) { |
| 275 | //ExReleaseRundownProtection(&Thread->RundownProtect); |
| 276 | } |
| 277 | |
| 278 | if ((DebugEvent->Flags & DEBUG_EVENT_NOWAIT) == 0) { |
| 279 | // ���ѵȴ��ı������߳� |
| 280 | KeSetEvent(&DebugEvent->ContinueEvent, 0, FALSE); |
| 281 | } |
| 282 | else { |
| 283 | DbgkpFreeDebugEvent(DebugEvent); |
| 284 | } |
| 285 | } |
| 286 | |
| 287 | VOID DbgkpMarkProcessPeb( |
| 288 | _In_ PEPROCESS Process |
no test coverage detected