#ifndef _NTOBAPI_H
/**
* The OBJECT_NAME_INFORMATION structure contains various statistics and properties about an object type.
*/
typedef struct _OBJECT_TYPE_INFORMATION
{
UNICODE_STRING TypeName;
ULONG TotalNumberOfObjects;
ULONG TotalNumberOfHandles;
ULONG TotalPagedPoolUsage;
ULONG TotalNonPagedPoolUsage;
ULONG TotalNamePoolUsage;
ULONG TotalHandleTableUsage;
ULONG HighWaterNumberOfObjects;
ULONG HighWaterNumberOfHandles;
ULONG HighWaterPagedPoolUsage;
ULONG HighWaterNonPagedPoolUsage;
ULONG HighWaterNamePoolUsage;
ULONG HighWaterHandleTableUsage;
ULONG InvalidAttributes;
GENERIC_MAPPING GenericMapping;
ULONG ValidAccessMask;
BOOLEAN SecurityRequired;
BOOLEAN MaintainHandleCount;
UCHAR TypeIndex; // since WINBLUE
CHAR ReservedByte;
ULONG PoolType;
ULONG DefaultPagedPoolCharge;
ULONG DefaultNonPagedPoolCharge;
} OBJECT_TYPE_INFORMATION, *POBJECT_TYPE_INFORMATION;
View code on GitHub
This structure describes various information about a type of kernel objects. This structure is partially documented in Windows Driver Kit.
The string containing the name unique of the type, such as Process
or IoCompletion
.
The current number of objects of this type.
The current number of handles to objects of this type.
The total number of paged pool bytes used by objects of this type.
The total number of non-paged pool bytes used by objects of this type.
The total number of name pool bytes used by objects of this type.
The total number of handle table bytes used by objects of this type.
The maximum recorded number of objects of this type since boot.
The maximum recorded number of handles to objects of this type since boot.
The maximum recorded number of paged pool bytes used by objects of this type.
The maximum recorded number of non-paged pool bytes used by objects of this type.
The maximum recorded number of name pool bytes used by objects of this type.
The maximum recorded number of handle table bytes used by objects of this type.
A bit mask of object/handle attribute flags that are not applicable to objects this type. For the list of values, see OBJECT_ATTRIBUTES
.
A mapping between specific and generic access rights for this type.
A bit mask describing specific and standard access rights that are valid for objects of this type.
Whether unnamed objects of this type maintain security descriptors.
Whether the system should keep track of handles for this type.
The index of this type in the global list of kernel types. Note that the system only populates this value on Windows 8.1 and above. To infer the value on older OS versions, take the index under which the type appears in the result of ObjectTypesInformation
enumeration (made via NtQueryObject
) and add 2 to it.
This field in reserved for future use.
The type of memory pool used by this type.
The default number of paged pool bytes charged for objects of this type.
The default number of non-paged pool bytes charged for objects of this type.