diff --git a/sdk/xtdk/xtbase.h b/sdk/xtdk/xtbase.h index 2598f0bb7..259dcfc47 100644 --- a/sdk/xtdk/xtbase.h +++ b/sdk/xtdk/xtbase.h @@ -99,14 +99,20 @@ typedef struct _M128 /* Dispatcher object header structure definition */ typedef struct _DISPATCHER_HEADER { - UCHAR Type; union { - UCHAR Absolute; - UCHAR NpxIrql; + struct + { + UCHAR Type; + UCHAR Absolute; + UCHAR Size; + union { + UCHAR Inserted; + BOOLEAN DebugActive; + }; + }; + VOLATILE LONG Lock; }; - UCHAR Inserted; - BOOLEAN DebugActive; LONG SignalState; LIST_ENTRY WaitListHead; } DISPATCHER_HEADER, *PDISPATCHER_HEADER; diff --git a/xtoskrnl/ke/kprocess.cc b/xtoskrnl/ke/kprocess.cc index 8b16e7cc6..131aaac5d 100644 --- a/xtoskrnl/ke/kprocess.cc +++ b/xtoskrnl/ke/kprocess.cc @@ -127,6 +127,8 @@ KE::KProcess::InitializeProcess(IN OUT PKPROCESS Process, IN BOOLEAN Alignment) { /* Initialize process dispatcher header */ + Process->Header.SignalState = 0; + Process->Header.Size = sizeof(KPROCESS) / sizeof(LONG); Process->Header.Type = ProcessObject; /* Initialize process wait list */