ReactOS 0.4.17-dev-684-ga6524ef
obtypes.h File Reference
#include <umtypes.h>
#include <extypes.h>
Include dependency graph for obtypes.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  _OB_DUMP_CONTROL
 
struct  _OBJECT_DIRECTORY_INFORMATION
 
struct  _OBJECT_BASIC_INFORMATION
 
struct  _OBJECT_TYPE_INFORMATION
 
struct  _OBJECT_TYPES_INFORMATION
 
struct  _OBJECT_HANDLE_FLAG_INFORMATION
 
struct  _OBJECT_CREATE_INFORMATION
 
struct  _OBJECT_TYPE_INITIALIZER
 
struct  _OBJECT_TYPE
 
struct  _OBJECT_DIRECTORY_ENTRY
 
struct  _OBJECT_DIRECTORY
 
struct  _OBJECT_HEADER_NAME_INFO
 
struct  _OBJECT_HANDLE_COUNT_ENTRY
 
struct  _OBJECT_HANDLE_COUNT_DATABASE
 
struct  _OBJECT_HEADER_HANDLE_INFO
 
struct  _OBJECT_HEADER_CREATOR_INFO
 
struct  _OBJECT_HEADER_QUOTA_INFO
 
struct  _OBJECT_HEADER
 
struct  _OBP_LOOKUP_CONTEXT
 
struct  _DEVICE_MAP
 
struct  _OBJECT_SYMBOLIC_LINK
 

Macros

#define OBJ_KERNEL_EXCLUSIVE   0x00010000L
 
#define OBJ_VALID_KERNEL_ATTRIBUTES
 
#define OB_FLAG_CREATE_INFO   0x01
 
#define OB_FLAG_KERNEL_MODE   0x02
 
#define OB_FLAG_CREATOR_INFO   0x04
 
#define OB_FLAG_EXCLUSIVE   0x08
 
#define OB_FLAG_PERMANENT   0x10
 
#define OB_FLAG_SECURITY   0x20
 
#define OB_FLAG_SINGLE_PROCESS   0x40
 
#define OB_FLAG_DEFER_DELETE   0x80
 
#define OB_FLAG_KERNEL_EXCLUSIVE   0x40000000
 
#define OBJECT_TO_OBJECT_HEADER(o)    CONTAINING_RECORD((o), OBJECT_HEADER, Body)
 
#define OBJECT_HEADER_TO_NAME_INFO(h)
 
#define OBJECT_HEADER_TO_HANDLE_INFO(h)
 
#define OBJECT_HEADER_TO_QUOTA_INFO(h)
 
#define OBJECT_HEADER_TO_CREATOR_INFO(h)
 
#define OBJECT_HEADER_TO_EXCLUSIVE_PROCESS(h)
 
#define DUPLICATE_SAME_ATTRIBUTES   0x00000004
 
#define NUMBER_HASH_BUCKETS   37
 
#define DOSDEVICE_DRIVE_UNKNOWN   0
 
#define DOSDEVICE_DRIVE_CALCULATE   1
 
#define DOSDEVICE_DRIVE_REMOVABLE   2
 
#define DOSDEVICE_DRIVE_FIXED   3
 
#define DOSDEVICE_DRIVE_REMOTE   4
 
#define DOSDEVICE_DRIVE_CDROM   5
 
#define DOSDEVICE_DRIVE_RAMDISK   6
 

Typedefs

typedef struct _OB_DUMP_CONTROL OB_DUMP_CONTROL
 
typedef struct _OB_DUMP_CONTROLPOB_DUMP_CONTROL
 
typedef enum _OB_OPEN_REASON OB_OPEN_REASON
 
typedef VOID(NTAPIOB_DUMP_METHOD) (_In_ PVOID Object, _In_opt_ POB_DUMP_CONTROL Control)
 
typedef NTSTATUS(NTAPIOB_OPEN_METHOD) (_In_ OB_OPEN_REASON Reason, _In_ KPROCESSOR_MODE AccessMode, _In_opt_ PEPROCESS Process, _In_ PVOID ObjectBody, _In_ PACCESS_MASK GrantedAccess, _In_ ULONG HandleCount)
 
typedef VOID(NTAPIOB_CLOSE_METHOD) (_In_opt_ PEPROCESS Process, _In_ PVOID Object, _In_ ACCESS_MASK GrantedAccess, _In_ ULONG_PTR ProcessHandleCount, _In_ ULONG_PTR SystemHandleCount)
 
typedef VOID(NTAPIOB_DELETE_METHOD) (_In_ PVOID Object)
 
typedef NTSTATUS(NTAPIOB_PARSE_METHOD) (_In_ PVOID ParseObject, _In_ PVOID ObjectType, _Inout_ PACCESS_STATE AccessState, _In_ KPROCESSOR_MODE AccessMode, _In_ ULONG Attributes, _Inout_ PUNICODE_STRING CompleteName, _Inout_ PUNICODE_STRING RemainingName, _Inout_opt_ PVOID Context, _In_opt_ PSECURITY_QUALITY_OF_SERVICE SecurityQos, _Out_ PVOID *Object)
 
typedef NTSTATUS(NTAPIOB_SECURITY_METHOD) (_In_ PVOID Object, _In_ SECURITY_OPERATION_CODE OperationType, _In_ PSECURITY_INFORMATION SecurityInformation, _In_ PSECURITY_DESCRIPTOR SecurityDescriptor, _Inout_ PULONG CapturedLength, _Inout_ PSECURITY_DESCRIPTOR *ObjectSecurityDescriptor, _In_ POOL_TYPE PoolType, _In_ PGENERIC_MAPPING GenericMapping, _In_ KPROCESSOR_MODE AccessMode)
 
typedef NTSTATUS(NTAPIOB_QUERYNAME_METHOD) (_In_ PVOID Object, _In_ BOOLEAN HasObjectName, _Out_ POBJECT_NAME_INFORMATION ObjectNameInfo, _In_ ULONG Length, _Out_ PULONG ReturnLength, _In_ KPROCESSOR_MODE AccessMode)
 
typedef BOOLEAN(NTAPIOB_OKAYTOCLOSE_METHOD) (_In_opt_ PEPROCESS Process, _In_ PVOID Object, _In_ HANDLE Handle, _In_ KPROCESSOR_MODE AccessMode)
 
typedef struct _OBJECT_DIRECTORY_INFORMATION OBJECT_DIRECTORY_INFORMATION
 
typedef struct _OBJECT_DIRECTORY_INFORMATIONPOBJECT_DIRECTORY_INFORMATION
 
typedef enum _OBJECT_INFORMATION_CLASS OBJECT_INFORMATION_CLASS
 
typedef struct _OBJECT_BASIC_INFORMATION OBJECT_BASIC_INFORMATION
 
typedef struct _OBJECT_BASIC_INFORMATIONPOBJECT_BASIC_INFORMATION
 
typedef struct _OBJECT_TYPE_INFORMATION OBJECT_TYPE_INFORMATION
 
typedef struct _OBJECT_TYPE_INFORMATIONPOBJECT_TYPE_INFORMATION
 
typedef struct _OBJECT_TYPES_INFORMATION OBJECT_TYPES_INFORMATION
 
typedef struct _OBJECT_TYPES_INFORMATIONPOBJECT_TYPES_INFORMATION
 
typedef struct _OBJECT_HANDLE_FLAG_INFORMATION OBJECT_HANDLE_FLAG_INFORMATION
 
typedef struct _OBJECT_HANDLE_FLAG_INFORMATIONPOBJECT_HANDLE_FLAG_INFORMATION
 
typedef struct _OBJECT_CREATE_INFORMATION OBJECT_CREATE_INFORMATION
 
typedef struct _OBJECT_CREATE_INFORMATIONPOBJECT_CREATE_INFORMATION
 
typedef struct _OBJECT_TYPE_INITIALIZER OBJECT_TYPE_INITIALIZER
 
typedef struct _OBJECT_TYPE_INITIALIZERPOBJECT_TYPE_INITIALIZER
 
typedef struct _OBJECT_TYPE OBJECT_TYPE
 
typedef struct _OBJECT_DIRECTORY_ENTRY OBJECT_DIRECTORY_ENTRY
 
typedef struct _OBJECT_DIRECTORY_ENTRYPOBJECT_DIRECTORY_ENTRY
 
typedef struct _OBJECT_DIRECTORY OBJECT_DIRECTORY
 
typedef struct _OBJECT_DIRECTORYPOBJECT_DIRECTORY
 
typedef struct _OBJECT_HEADER_NAME_INFO OBJECT_HEADER_NAME_INFO
 
typedef struct _OBJECT_HEADER_NAME_INFOPOBJECT_HEADER_NAME_INFO
 
typedef struct _OBJECT_HANDLE_COUNT_ENTRY OBJECT_HANDLE_COUNT_ENTRY
 
typedef struct _OBJECT_HANDLE_COUNT_ENTRYPOBJECT_HANDLE_COUNT_ENTRY
 
typedef struct _OBJECT_HANDLE_COUNT_DATABASE OBJECT_HANDLE_COUNT_DATABASE
 
typedef struct _OBJECT_HANDLE_COUNT_DATABASEPOBJECT_HANDLE_COUNT_DATABASE
 
typedef struct _OBJECT_HEADER_HANDLE_INFO OBJECT_HEADER_HANDLE_INFO
 
typedef struct _OBJECT_HEADER_HANDLE_INFOPOBJECT_HEADER_HANDLE_INFO
 
typedef struct _OBJECT_HEADER_CREATOR_INFO OBJECT_HEADER_CREATOR_INFO
 
typedef struct _OBJECT_HEADER_CREATOR_INFOPOBJECT_HEADER_CREATOR_INFO
 
typedef struct _OBJECT_HEADER_QUOTA_INFO OBJECT_HEADER_QUOTA_INFO
 
typedef struct _OBJECT_HEADER_QUOTA_INFOPOBJECT_HEADER_QUOTA_INFO
 
typedef struct _OBJECT_HEADER OBJECT_HEADER
 
typedef struct _OBJECT_HEADERPOBJECT_HEADER
 
typedef struct _OBP_LOOKUP_CONTEXT OBP_LOOKUP_CONTEXT
 
typedef struct _OBP_LOOKUP_CONTEXTPOBP_LOOKUP_CONTEXT
 
typedef struct _DEVICE_MAP DEVICE_MAP
 
typedef struct _DEVICE_MAPPDEVICE_MAP
 
typedef struct _OBJECT_SYMBOLIC_LINK OBJECT_SYMBOLIC_LINK
 
typedef struct _OBJECT_SYMBOLIC_LINKPOBJECT_SYMBOLIC_LINK
 

Enumerations

enum  _OB_OPEN_REASON {
  ObCreateHandle , ObOpenHandle , ObDuplicateHandle , ObInheritHandle ,
  ObMaxOpenReason
}
 
enum  _OBJECT_INFORMATION_CLASS {
  ObjectBasicInformation , ObjectNameInformation , ObjectTypeInformation , ObjectAllTypesInformation ,
  ObjectHandleInformation , ObjectBasicInformation = 0 , ObjectNameInformation , ObjectTypeInformation ,
  ObjectTypesInformation , ObjectHandleFlagInformation , ObjectSessionInformation , ObjectSessionObjectInformation ,
  ObjectSetRefTraceInformation , MaxObjectInfoClass , ObjectBasicInformation = 0 , ObjectTypeInformation = 2 ,
  ObjectBasicInformation , ObjectNameInformation , ObjectTypeInformation , ObjectTypesInformation ,
  ObjectHandleFlagInformation , ObjectSessionInformation , ObjectSessionObjectInformation
}
 

Variables

PDEVICE_MAP NTSYSAPI ObSystemDeviceMap
 

Macro Definition Documentation

◆ DOSDEVICE_DRIVE_CALCULATE

#define DOSDEVICE_DRIVE_CALCULATE   1

Definition at line 138 of file obtypes.h.

◆ DOSDEVICE_DRIVE_CDROM

#define DOSDEVICE_DRIVE_CDROM   5

Definition at line 142 of file obtypes.h.

◆ DOSDEVICE_DRIVE_FIXED

#define DOSDEVICE_DRIVE_FIXED   3

Definition at line 140 of file obtypes.h.

◆ DOSDEVICE_DRIVE_RAMDISK

#define DOSDEVICE_DRIVE_RAMDISK   6

Definition at line 143 of file obtypes.h.

◆ DOSDEVICE_DRIVE_REMOTE

#define DOSDEVICE_DRIVE_REMOTE   4

Definition at line 141 of file obtypes.h.

◆ DOSDEVICE_DRIVE_REMOVABLE

#define DOSDEVICE_DRIVE_REMOVABLE   2

Definition at line 139 of file obtypes.h.

◆ DOSDEVICE_DRIVE_UNKNOWN

#define DOSDEVICE_DRIVE_UNKNOWN   0

Definition at line 137 of file obtypes.h.

◆ DUPLICATE_SAME_ATTRIBUTES

#define DUPLICATE_SAME_ATTRIBUTES   0x00000004

Definition at line 127 of file obtypes.h.

◆ NUMBER_HASH_BUCKETS

#define NUMBER_HASH_BUCKETS   37

Definition at line 132 of file obtypes.h.

◆ OB_FLAG_CREATE_INFO

#define OB_FLAG_CREATE_INFO   0x01

Definition at line 83 of file obtypes.h.

◆ OB_FLAG_CREATOR_INFO

#define OB_FLAG_CREATOR_INFO   0x04

Definition at line 85 of file obtypes.h.

◆ OB_FLAG_DEFER_DELETE

#define OB_FLAG_DEFER_DELETE   0x80

Definition at line 90 of file obtypes.h.

◆ OB_FLAG_EXCLUSIVE

#define OB_FLAG_EXCLUSIVE   0x08

Definition at line 86 of file obtypes.h.

◆ OB_FLAG_KERNEL_EXCLUSIVE

#define OB_FLAG_KERNEL_EXCLUSIVE   0x40000000

Definition at line 95 of file obtypes.h.

◆ OB_FLAG_KERNEL_MODE

#define OB_FLAG_KERNEL_MODE   0x02

Definition at line 84 of file obtypes.h.

◆ OB_FLAG_PERMANENT

#define OB_FLAG_PERMANENT   0x10

Definition at line 87 of file obtypes.h.

◆ OB_FLAG_SECURITY

#define OB_FLAG_SECURITY   0x20

Definition at line 88 of file obtypes.h.

◆ OB_FLAG_SINGLE_PROCESS

#define OB_FLAG_SINGLE_PROCESS   0x40

Definition at line 89 of file obtypes.h.

◆ OBJ_KERNEL_EXCLUSIVE

#define OBJ_KERNEL_EXCLUSIVE   0x00010000L

Definition at line 77 of file obtypes.h.

◆ OBJ_VALID_KERNEL_ATTRIBUTES

#define OBJ_VALID_KERNEL_ATTRIBUTES
Value:
#define OBJ_KERNEL_EXCLUSIVE
Definition: obtypes.h:77
#define OBJ_VALID_ATTRIBUTES
Definition: winternl.h:233

Definition at line 78 of file obtypes.h.

◆ OBJECT_HEADER_TO_CREATOR_INFO

#define OBJECT_HEADER_TO_CREATOR_INFO (   h)
Value:
#define NULL
Definition: types.h:112
GLfloat GLfloat GLfloat GLfloat h
Definition: glext.h:7723
#define PCHAR
Definition: match.c:90
struct _OBJECT_HEADER_CREATOR_INFO * POBJECT_HEADER_CREATOR_INFO
#define OB_FLAG_CREATOR_INFO
Definition: obtypes.h:85
_Must_inspect_result_ _In_ ULONG Flags
Definition: wsk.h:170

Definition at line 112 of file obtypes.h.

◆ OBJECT_HEADER_TO_EXCLUSIVE_PROCESS

#define OBJECT_HEADER_TO_EXCLUSIVE_PROCESS (   h)
Value:
((!((h)->Flags & OB_FLAG_EXCLUSIVE)) ? \
(h)->QuotaInfoOffset))->ExclusiveProcess))
#define OB_FLAG_EXCLUSIVE
Definition: obtypes.h:86

Definition at line 117 of file obtypes.h.

◆ OBJECT_HEADER_TO_HANDLE_INFO

#define OBJECT_HEADER_TO_HANDLE_INFO (   h)
Value:
((POBJECT_HEADER_HANDLE_INFO)(!(h)->HandleInfoOffset ? \
NULL: ((PCHAR)(h) - (h)->HandleInfoOffset)))
struct _OBJECT_HEADER_HANDLE_INFO * POBJECT_HEADER_HANDLE_INFO

Definition at line 104 of file obtypes.h.

◆ OBJECT_HEADER_TO_NAME_INFO

#define OBJECT_HEADER_TO_NAME_INFO (   h)
Value:
((POBJECT_HEADER_NAME_INFO)(!(h)->NameInfoOffset ? \
NULL: ((PCHAR)(h) - (h)->NameInfoOffset)))
struct _OBJECT_HEADER_NAME_INFO * POBJECT_HEADER_NAME_INFO

Definition at line 100 of file obtypes.h.

◆ OBJECT_HEADER_TO_QUOTA_INFO

#define OBJECT_HEADER_TO_QUOTA_INFO (   h)
Value:
((POBJECT_HEADER_QUOTA_INFO)(!(h)->QuotaInfoOffset ? \
NULL: ((PCHAR)(h) - (h)->QuotaInfoOffset)))
struct _OBJECT_HEADER_QUOTA_INFO * POBJECT_HEADER_QUOTA_INFO

Definition at line 108 of file obtypes.h.

◆ OBJECT_TO_OBJECT_HEADER

#define OBJECT_TO_OBJECT_HEADER (   o)     CONTAINING_RECORD((o), OBJECT_HEADER, Body)

Definition at line 97 of file obtypes.h.

Typedef Documentation

◆ DEVICE_MAP

◆ OB_CLOSE_METHOD

Definition at line 187 of file obtypes.h.

◆ OB_DELETE_METHOD

typedef VOID(NTAPI * OB_DELETE_METHOD) (_In_ PVOID Object)

Definition at line 196 of file obtypes.h.

◆ OB_DUMP_CONTROL

◆ OB_DUMP_METHOD

typedef VOID(NTAPI * OB_DUMP_METHOD) (_In_ PVOID Object, _In_opt_ POB_DUMP_CONTROL Control)

Definition at line 171 of file obtypes.h.

◆ OB_OKAYTOCLOSE_METHOD

Definition at line 238 of file obtypes.h.

◆ OB_OPEN_METHOD

◆ OB_OPEN_REASON

◆ OB_PARSE_METHOD

◆ OB_QUERYNAME_METHOD

Definition at line 228 of file obtypes.h.

◆ OB_SECURITY_METHOD

◆ OBJECT_BASIC_INFORMATION

◆ OBJECT_CREATE_INFORMATION

◆ OBJECT_DIRECTORY

◆ OBJECT_DIRECTORY_ENTRY

◆ OBJECT_DIRECTORY_INFORMATION

◆ OBJECT_HANDLE_COUNT_DATABASE

◆ OBJECT_HANDLE_COUNT_ENTRY

◆ OBJECT_HANDLE_FLAG_INFORMATION

◆ OBJECT_HEADER

◆ OBJECT_HEADER_CREATOR_INFO

◆ OBJECT_HEADER_HANDLE_INFO

◆ OBJECT_HEADER_NAME_INFO

◆ OBJECT_HEADER_QUOTA_INFO

◆ OBJECT_INFORMATION_CLASS

◆ OBJECT_SYMBOLIC_LINK

◆ OBJECT_TYPE

◆ OBJECT_TYPE_INFORMATION

◆ OBJECT_TYPE_INITIALIZER

◆ OBJECT_TYPES_INFORMATION

◆ OBP_LOOKUP_CONTEXT

◆ PDEVICE_MAP

◆ POB_DUMP_CONTROL

◆ POBJECT_BASIC_INFORMATION

◆ POBJECT_CREATE_INFORMATION

◆ POBJECT_DIRECTORY

◆ POBJECT_DIRECTORY_ENTRY

◆ POBJECT_DIRECTORY_INFORMATION

◆ POBJECT_HANDLE_COUNT_DATABASE

◆ POBJECT_HANDLE_COUNT_ENTRY

◆ POBJECT_HANDLE_FLAG_INFORMATION

◆ POBJECT_HEADER

◆ POBJECT_HEADER_CREATOR_INFO

◆ POBJECT_HEADER_HANDLE_INFO

◆ POBJECT_HEADER_NAME_INFO

◆ POBJECT_HEADER_QUOTA_INFO

◆ POBJECT_SYMBOLIC_LINK

◆ POBJECT_TYPE_INFORMATION

◆ POBJECT_TYPE_INITIALIZER

◆ POBJECT_TYPES_INFORMATION

◆ POBP_LOOKUP_CONTEXT

Enumeration Type Documentation

◆ _OB_OPEN_REASON

Enumerator
ObCreateHandle 
ObOpenHandle 
ObDuplicateHandle 
ObInheritHandle 
ObMaxOpenReason 

Definition at line 159 of file obtypes.h.

160{
@ ObOpenHandle
Definition: obtypes.h:162
@ ObCreateHandle
Definition: obtypes.h:161
@ ObMaxOpenReason
Definition: obtypes.h:165
@ ObInheritHandle
Definition: obtypes.h:164
@ ObDuplicateHandle
Definition: obtypes.h:163
enum _OB_OPEN_REASON OB_OPEN_REASON

◆ _OBJECT_INFORMATION_CLASS

Enumerator
ObjectBasicInformation 
ObjectNameInformation 
ObjectTypeInformation 
ObjectAllTypesInformation 
ObjectHandleInformation 
ObjectBasicInformation 
ObjectNameInformation 
ObjectTypeInformation 
ObjectTypesInformation 
ObjectHandleFlagInformation 
ObjectSessionInformation 
ObjectSessionObjectInformation 
ObjectSetRefTraceInformation 
MaxObjectInfoClass 
ObjectBasicInformation 
ObjectTypeInformation 
ObjectBasicInformation 
ObjectNameInformation 
ObjectTypeInformation 
ObjectTypesInformation 
ObjectHandleFlagInformation 
ObjectSessionInformation 
ObjectSessionObjectInformation 

Definition at line 261 of file obtypes.h.

262{
268#if (NTDDI_VERSION >= NTDDI_WS03)
270#endif
271#if (NTDDI_VERSION >= NTDDI_WIN10_RS2)
273#endif
274#if (NTDDI_VERSION >= NTDDI_WIN11_SE)
276#endif
enum _OBJECT_INFORMATION_CLASS OBJECT_INFORMATION_CLASS
@ MaxObjectInfoClass
Definition: obtypes.h:277
@ ObjectSetRefTraceInformation
Definition: obtypes.h:275
@ ObjectSessionInformation
Definition: obtypes.h:269
@ ObjectTypeInformation
Definition: obtypes.h:265
@ ObjectHandleFlagInformation
Definition: obtypes.h:267
@ ObjectBasicInformation
Definition: obtypes.h:263
@ ObjectNameInformation
Definition: obtypes.h:264
@ ObjectTypesInformation
Definition: obtypes.h:266
@ ObjectSessionObjectInformation
Definition: obtypes.h:272

Variable Documentation

◆ ObSystemDeviceMap