Each kernel object is assigned a unique 64-bit ID, which is never reused. An ID of
0is never allocated, and is used as a sentinel value.
A kernel object ID of
0is reserved as a sentinel value that will never point to a real kernel object. It is used to mark things like the
ownerof a kernel object being the kernel itself.
The next available
KernelObjectId. It is shared between all the CPUs, and so is incremented atomically.
This trait should be implemented by all types that implement kernel objects, and allows common code to be generic over all kernel objects. Kernel objects are generally handled as
Tis the type implementing
KernelObject, and so interior mutability should be used for data that needs to be mutable within the kernel object.