Closed StrikerX3 closed 6 years ago
The kernel object manager is implemented in commit ecd3293. This includes all of the exported Ob functions and several Nt functions that deal with already implemented kernel objects (threads, events, semaphores, timers, and such). This brings the count of fully implemented kernel functions up to 218, or almost 65% of them. There are several Nt functions that deal with device I/O (Io functions) as well as the object manager. These obviously depend on the I/O subsystem being implemented.
Do what the title says. ;)
The Object Manager defines and manages objects that represent devices (including disks, volumes and files), synchronization objects such as events, semaphores, mutexes and timers, and system objects such as threads, processes, APCs and DPCs. Objects are accessed by their
HANDLE
on user space, and either handles or pointers by the kernel. There are two reference-counting mechanisms, one for handles and one for pointers.The Object Manager has very close relations with many other subsystems, such as the I/O system (functions prefixed with Io). Keep in mind that we want to provide secure access to the host file system for both the hard disk and the DVD-ROM drive.