ReactOS  0.4.14-dev-833-g5f692ed
obtypes.h
Go to the documentation of this file.
1 /******************************************************************************
2  * Object Manager Types *
3  ******************************************************************************/
4 
6 #define MAXIMUM_FILENAME_LENGTH 256
7 #define OBJ_NAME_PATH_SEPARATOR ((WCHAR)L'\\')
8 
9 #define OBJECT_TYPE_CREATE 0x0001
10 #define OBJECT_TYPE_ALL_ACCESS (STANDARD_RIGHTS_REQUIRED | 0x1)
11 
12 #define DIRECTORY_QUERY 0x0001
13 #define DIRECTORY_TRAVERSE 0x0002
14 #define DIRECTORY_CREATE_OBJECT 0x0004
15 #define DIRECTORY_CREATE_SUBDIRECTORY 0x0008
16 #define DIRECTORY_ALL_ACCESS (STANDARD_RIGHTS_REQUIRED | 0xF)
17 
18 #define SYMBOLIC_LINK_QUERY 0x0001
19 #define SYMBOLIC_LINK_ALL_ACCESS (STANDARD_RIGHTS_REQUIRED | 0x1)
20 
21 #define DUPLICATE_CLOSE_SOURCE 0x00000001
22 #define DUPLICATE_SAME_ACCESS 0x00000002
23 #define DUPLICATE_SAME_ATTRIBUTES 0x00000004
24 
25 #define OB_FLT_REGISTRATION_VERSION_0100 0x0100
26 #define OB_FLT_REGISTRATION_VERSION OB_FLT_REGISTRATION_VERSION_0100
27 
28 typedef ULONG OB_OPERATION;
29 
30 #define OB_OPERATION_HANDLE_CREATE 0x00000001
31 #define OB_OPERATION_HANDLE_DUPLICATE 0x00000002
32 
37 
44 
49 
51  _In_ OB_OPERATION Operation;
52  _ANONYMOUS_UNION union {
54  _ANONYMOUS_STRUCT struct {
64 
68 
72 
77 
79  _In_ OB_OPERATION Operation;
80  _ANONYMOUS_UNION union {
82  _ANONYMOUS_STRUCT struct {
93 
97 
100  _In_ PVOID RegistrationContext,
101  _Inout_ POB_PRE_OPERATION_INFORMATION OperationInformation);
102 
103 typedef VOID
105  _In_ PVOID RegistrationContext,
106  _In_ POB_POST_OPERATION_INFORMATION OperationInformation);
107 
110  _In_ OB_OPERATION Operations;
114 
122 
123 typedef struct _OBJECT_NAME_INFORMATION {
126 
127 /* Exported object types */
128 #ifdef _NTSYSTEM_
136 #else
157 extern POBJECT_TYPE *PsThreadType;
159 #endif
160 
162 $if (_NTIFS_)
163 typedef enum _OBJECT_INFORMATION_CLASS {
166 $endif (_NTIFS_)
167 $if (_NTIFS_) // we should remove these, but the kernel needs them :-/
168  /* Not for public use */
171  ObjectHandleFlagInformation = 4,
172  ObjectSessionInformation = 5,
173  MaxObjectInfoClass
174 $endif (_NTIFS_)
175 $if (_NTIFS_)
177 
178 $endif (_NTIFS_)
179 
struct _OB_OPERATION_REGISTRATION * POB_OPERATION_REGISTRATION
_In_ POB_POST_OPERATION_CALLBACK PostOperation
Definition: obtypes.h:112
#define __CREATE_NTOS_DATA_IMPORT_ALIAS(_Name)
$endif(_WDMDDK_) $if(_NTIFS_) typedef enum _OBJECT_INFORMATION_CLASS
Definition: obtypes.h:161
struct _OB_PRE_DUPLICATE_HANDLE_INFORMATION * POB_PRE_DUPLICATE_HANDLE_INFORMATION
_In_ USHORT OperationRegistrationCount
Definition: obtypes.h:117
_In_ NTSTATUS ReturnStatus
Definition: obtypes.h:90
_In_ PVOID Object
Definition: obtypes.h:87
_In_ ACCESS_MASK OriginalDesiredAccess
Definition: obtypes.h:40
struct _OB_POST_DUPLICATE_HANDLE_INFORMATION * POB_POST_DUPLICATE_HANDLE_INFORMATION
struct _OB_POST_OPERATION_INFORMATION * POB_POST_OPERATION_INFORMATION
#define _ANONYMOUS_UNION
Definition: ntbasedef.h:30
LONG NTSTATUS
Definition: precomp.h:26
OBJECT_INFORMATION_CLASS
Definition: obtypes.h:176
#define _NTIFS_
Definition: ifssupp.h:20
enum _OB_PREOP_CALLBACK_STATUS * POB_PREOP_CALLBACK_STATUS
#define _WDMDDK_
Definition: wdm.template.h:26
_In_ ACCESS_MASK GrantedAccess
Definition: obtypes.h:66
_In_ PVOID CallContext
Definition: obtypes.h:89
UNICODE_STRING Name
Definition: nt_native.h:1270
_In_ ACCESS_MASK GrantedAccess
Definition: obtypes.h:70
#define NTSYSAPI
Definition: ntoskrnl.h:14
union _OB_PRE_OPERATION_PARAMETERS OB_PRE_OPERATION_PARAMETERS
struct _OBJECT_NAME_INFORMATION * POBJECT_NAME_INFORMATION
_In_ UNICODE_STRING Altitude
Definition: obtypes.h:118
POBJECT_TYPE * SeTokenObjectType
Definition: token.c:34
VOID(NTAPI * POB_POST_OPERATION_CALLBACK)(_In_ PVOID RegistrationContext, _In_ POB_POST_OPERATION_INFORMATION OperationInformation)
Definition: obtypes.h:104
struct _OB_OPERATION_REGISTRATION OB_OPERATION_REGISTRATION
NTSTATUS(* NTAPI)(IN PFILE_FULL_EA_INFORMATION EaBuffer, IN ULONG EaLength, OUT PULONG ErrorOffset)
Definition: IoEaTest.cpp:117
POBJECT_TYPE * ExEventObjectType
Definition: event.c:22
struct _OB_POST_CREATE_HANDLE_INFORMATION OB_POST_CREATE_HANDLE_INFORMATION
$if(_WDMDDK_) typedef ULONG OB_OPERATION
Definition: ke.h:1
struct _OB_POST_OPERATION_INFORMATION OB_POST_OPERATION_INFORMATION
_In_ POB_PRE_OPERATION_CALLBACK PreOperation
Definition: obtypes.h:111
Definition: obtypes.h:73
union _OB_POST_OPERATION_PARAMETERS OB_POST_OPERATION_PARAMETERS
#define _Out_
Definition: no_sal2.h:323
_Inout_ OB_PRE_CREATE_HANDLE_INFORMATION CreateHandleInformation
Definition: obtypes.h:46
_In_ OB_OPERATION_REGISTRATION * OperationRegistration
Definition: obtypes.h:120
POBJECT_TYPE * ExSemaphoreObjectType
Definition: sem.c:22
struct _OB_POST_DUPLICATE_HANDLE_INFORMATION OB_POST_DUPLICATE_HANDLE_INFORMATION
POBJECT_TYPE * PsThreadType
Definition: thread.c:20
_In_ OB_OPERATION Operation
Definition: obtypes.h:79
struct _OB_PRE_CREATE_HANDLE_INFORMATION * POB_PRE_CREATE_HANDLE_INFORMATION
OB_PREOP_CALLBACK_STATUS(NTAPI * POB_PRE_OPERATION_CALLBACK)(_In_ PVOID RegistrationContext, _Inout_ POB_PRE_OPERATION_INFORMATION OperationInformation)
Definition: obtypes.h:99
_In_ ACCESS_MASK OriginalDesiredAccess
Definition: obtypes.h:35
_In_ POBJECT_TYPE ObjectType
Definition: obtypes.h:88
_In_ OB_POST_CREATE_HANDLE_INFORMATION CreateHandleInformation
Definition: obtypes.h:74
POBJECT_TYPE * TmTransactionManagerObjectType
struct _OB_POST_CREATE_HANDLE_INFORMATION * POB_POST_CREATE_HANDLE_INFORMATION
_In_ OB_OPERATION Operation
Definition: obtypes.h:51
_In_ POB_PRE_OPERATION_PARAMETERS Parameters
Definition: obtypes.h:62
_In_ POBJECT_TYPE ObjectType
Definition: obtypes.h:60
_In_ OB_OPERATION Operations
Definition: obtypes.h:110
POBJECT_TYPE * TmResourceManagerObjectType
enum _OB_PREOP_CALLBACK_STATUS OB_PREOP_CALLBACK_STATUS
#define _Inout_
Definition: no_sal2.h:244
_In_ ULONG KernelHandle
Definition: obtypes.h:83
_ANONYMOUS_UNION union _OB_PRE_OPERATION_INFORMATION::@3784 DUMMYUNIONNAME
_ANONYMOUS_STRUCT struct _OB_POST_OPERATION_INFORMATION::@3786::@3787 DUMMYSTRUCTNAME
#define VOID
Definition: acefi.h:82
struct _OB_CALLBACK_REGISTRATION OB_CALLBACK_REGISTRATION
_In_ OB_POST_DUPLICATE_HANDLE_INFORMATION DuplicateHandleInformation
Definition: obtypes.h:75
_In_ PVOID RegistrationContext
Definition: obtypes.h:119
struct _OB_PRE_OPERATION_INFORMATION * POB_PRE_OPERATION_INFORMATION
struct _OB_PRE_DUPLICATE_HANDLE_INFORMATION OB_PRE_DUPLICATE_HANDLE_INFORMATION
#define _ANONYMOUS_STRUCT
Definition: ntbasedef.h:56
POBJECT_TYPE * CmKeyObjectType
union _OB_POST_OPERATION_PARAMETERS * POB_POST_OPERATION_PARAMETERS
_Inout_ ACCESS_MASK DesiredAccess
Definition: obtypes.h:39
#define _In_
Definition: no_sal2.h:204
_In_ ULONG Flags
Definition: obtypes.h:81
_OB_PREOP_CALLBACK_STATUS
Definition: obtypes.h:94
_ANONYMOUS_UNION union _OB_POST_OPERATION_INFORMATION::@3786 DUMMYUNIONNAME
_Inout_ ACCESS_MASK DesiredAccess
Definition: obtypes.h:34
POBJECT_TYPE * TmTransactionObjectType
_In_ POBJECT_TYPE * ObjectType
Definition: obtypes.h:109
struct _OB_PRE_CREATE_HANDLE_INFORMATION OB_PRE_CREATE_HANDLE_INFORMATION
POBJECT_TYPE * IoFileObjectType
Definition: iomgr.c:36
unsigned short USHORT
Definition: pedump.c:61
Definition: obtypes.h:78
POBJECT_TYPE * TmEnlistmentObjectType
struct _OB_PRE_OPERATION_INFORMATION OB_PRE_OPERATION_INFORMATION
_Inout_ OB_PRE_DUPLICATE_HANDLE_INFORMATION DuplicateHandleInformation
Definition: obtypes.h:47
_In_ POB_POST_OPERATION_PARAMETERS Parameters
Definition: obtypes.h:91
unsigned int ULONG
Definition: retypes.h:1
struct _OB_CALLBACK_REGISTRATION * POB_CALLBACK_REGISTRATION
union _OB_PRE_OPERATION_PARAMETERS * POB_PRE_OPERATION_PARAMETERS
_In_ ULONG Reserved
Definition: obtypes.h:84
Definition: obtypes.h:69
Definition: obtypes.h:65
_OBJECT_INFORMATION_CLASS
Definition: DriverTester.h:53
POBJECT_TYPE * PsProcessType
Definition: process.c:20
struct _OBJECT_NAME_INFORMATION OBJECT_NAME_INFORMATION
ULONG ACCESS_MASK
Definition: nt_native.h:40
_ANONYMOUS_STRUCT struct _OB_PRE_OPERATION_INFORMATION::@3784::@3785 DUMMYSTRUCTNAME