diff --git a/xtoskrnl/ob/lifecycl.cc b/xtoskrnl/ob/lifecycl.cc index 1703e01..15af3e0 100644 --- a/xtoskrnl/ob/lifecycl.cc +++ b/xtoskrnl/ob/lifecycl.cc @@ -1285,6 +1285,10 @@ OB::LifeCycle::InitializeObjectLifeCycle(VOID) /* Clear tracking pointer */ RemoveObjectList = NULLPTR; + /* Create the kernel handle table and attach it to the current process */ + KernelHandleTable = OB::HandleTable::CreateHandleTable(NULLPTR); + PS::Process::GetCurrentProcess()->ObjectTable = KernelHandleTable; + /* Initialize deferred removal work item */ EX::WorkItem::InitializeWorkItem(&RemoveObjectWorkItem, ProcessDeferredDeletionQueue, NULLPTR); } diff --git a/xtoskrnl/ob/obmgr.cc b/xtoskrnl/ob/obmgr.cc index 4946d1f..9ff6720 100644 --- a/xtoskrnl/ob/obmgr.cc +++ b/xtoskrnl/ob/obmgr.cc @@ -78,9 +78,13 @@ OB::Manager::InitializeObjectManager(VOID) /* Initialize system lookaside list for BSP */ InitializeSystemLookasideList(); + /* Initialize handle table support */ + OB::HandleTable::InitializeHandleTable(); + /* Initialize device map support */ OB::DeviceMap::InitializeDeviceMap(); + /* Initialize object life cycle support */ OB::LifeCycle::InitializeObjectLifeCycle(); /* Initialize object type registry */