Process Explorer from Sysinternals displays all the handles held by a process, with fields such as the object's name, type, address and the handle value. For example:
ETW's NT Kernel Logger trace session has events for handle operations with the syntax:
class ObHandleEvent : ObTrace
{
uint32 Handle;
uint32 Object;
string ObjectName;
uint16 ObjectType;
};
My question is this: ObjectType in ETW is a 16-bit integer. How to map the integer ObjectType value to the corresponding object type name (as displayed in Process Explorer)?
I think the kernel object types are the ones you are after. Check out in a Kernel debugger or livekd with the command
Then you can dump the object header with
The Index field should relate to the corresponding ETW event. I am not sure if this index is constant between windows versions but I think not.
Process Hacker (the better process explorer) formats the object type with this method:
That should give you some pointers where to look next.