Home | Info | Community | Development | myReactOS | Contact Us
ReactOS Development > Doxygenobtypes.h
Go to the documentation of this file.
00001 /****************************************************************************** 00002 * Object Manager Types * 00003 ******************************************************************************/ 00004 00005 $if (_WDMDDK_) 00006 #define MAXIMUM_FILENAME_LENGTH 256 00007 #define OBJ_NAME_PATH_SEPARATOR ((WCHAR)L'\\') 00008 00009 #define OBJECT_TYPE_CREATE 0x0001 00010 #define OBJECT_TYPE_ALL_ACCESS (STANDARD_RIGHTS_REQUIRED | 0x1) 00011 00012 #define DIRECTORY_QUERY 0x0001 00013 #define DIRECTORY_TRAVERSE 0x0002 00014 #define DIRECTORY_CREATE_OBJECT 0x0004 00015 #define DIRECTORY_CREATE_SUBDIRECTORY 0x0008 00016 #define DIRECTORY_ALL_ACCESS (STANDARD_RIGHTS_REQUIRED | 0xF) 00017 00018 #define SYMBOLIC_LINK_QUERY 0x0001 00019 #define SYMBOLIC_LINK_ALL_ACCESS (STANDARD_RIGHTS_REQUIRED | 0x1) 00020 00021 #define DUPLICATE_CLOSE_SOURCE 0x00000001 00022 #define DUPLICATE_SAME_ACCESS 0x00000002 00023 #define DUPLICATE_SAME_ATTRIBUTES 0x00000004 00024 00025 #define OB_FLT_REGISTRATION_VERSION_0100 0x0100 00026 #define OB_FLT_REGISTRATION_VERSION OB_FLT_REGISTRATION_VERSION_0100 00027 00028 typedef ULONG OB_OPERATION; 00029 00030 #define OB_OPERATION_HANDLE_CREATE 0x00000001 00031 #define OB_OPERATION_HANDLE_DUPLICATE 0x00000002 00032 00033 typedef struct _OB_PRE_CREATE_HANDLE_INFORMATION { 00034 _Inout_ ACCESS_MASK DesiredAccess; 00035 _In_ ACCESS_MASK OriginalDesiredAccess; 00036 } OB_PRE_CREATE_HANDLE_INFORMATION, *POB_PRE_CREATE_HANDLE_INFORMATION; 00037 00038 typedef struct _OB_PRE_DUPLICATE_HANDLE_INFORMATION { 00039 _Inout_ ACCESS_MASK DesiredAccess; 00040 _In_ ACCESS_MASK OriginalDesiredAccess; 00041 _In_ PVOID SourceProcess; 00042 _In_ PVOID TargetProcess; 00043 } OB_PRE_DUPLICATE_HANDLE_INFORMATION, *POB_PRE_DUPLICATE_HANDLE_INFORMATION; 00044 00045 typedef union _OB_PRE_OPERATION_PARAMETERS { 00046 _Inout_ OB_PRE_CREATE_HANDLE_INFORMATION CreateHandleInformation; 00047 _Inout_ OB_PRE_DUPLICATE_HANDLE_INFORMATION DuplicateHandleInformation; 00048 } OB_PRE_OPERATION_PARAMETERS, *POB_PRE_OPERATION_PARAMETERS; 00049 00050 typedef struct _OB_PRE_OPERATION_INFORMATION { 00051 _In_ OB_OPERATION Operation; 00052 _ANONYMOUS_UNION union { 00053 _In_ ULONG Flags; 00054 _ANONYMOUS_STRUCT struct { 00055 _In_ ULONG KernelHandle:1; 00056 _In_ ULONG Reserved:31; 00057 } DUMMYSTRUCTNAME; 00058 } DUMMYUNIONNAME; 00059 _In_ PVOID Object; 00060 _In_ POBJECT_TYPE ObjectType; 00061 _Out_ PVOID CallContext; 00062 _In_ POB_PRE_OPERATION_PARAMETERS Parameters; 00063 } OB_PRE_OPERATION_INFORMATION, *POB_PRE_OPERATION_INFORMATION; 00064 00065 typedef struct _OB_POST_CREATE_HANDLE_INFORMATION { 00066 _In_ ACCESS_MASK GrantedAccess; 00067 } OB_POST_CREATE_HANDLE_INFORMATION, *POB_POST_CREATE_HANDLE_INFORMATION; 00068 00069 typedef struct _OB_POST_DUPLICATE_HANDLE_INFORMATION { 00070 _In_ ACCESS_MASK GrantedAccess; 00071 } OB_POST_DUPLICATE_HANDLE_INFORMATION, *POB_POST_DUPLICATE_HANDLE_INFORMATION; 00072 00073 typedef union _OB_POST_OPERATION_PARAMETERS { 00074 _In_ OB_POST_CREATE_HANDLE_INFORMATION CreateHandleInformation; 00075 _In_ OB_POST_DUPLICATE_HANDLE_INFORMATION DuplicateHandleInformation; 00076 } OB_POST_OPERATION_PARAMETERS, *POB_POST_OPERATION_PARAMETERS; 00077 00078 typedef struct _OB_POST_OPERATION_INFORMATION { 00079 _In_ OB_OPERATION Operation; 00080 _ANONYMOUS_UNION union { 00081 _In_ ULONG Flags; 00082 _ANONYMOUS_STRUCT struct { 00083 _In_ ULONG KernelHandle:1; 00084 _In_ ULONG Reserved:31; 00085 } DUMMYSTRUCTNAME; 00086 } DUMMYUNIONNAME; 00087 _In_ PVOID Object; 00088 _In_ POBJECT_TYPE ObjectType; 00089 _In_ PVOID CallContext; 00090 _In_ NTSTATUS ReturnStatus; 00091 _In_ POB_POST_OPERATION_PARAMETERS Parameters; 00092 } OB_POST_OPERATION_INFORMATION,*POB_POST_OPERATION_INFORMATION; 00093 00094 typedef enum _OB_PREOP_CALLBACK_STATUS { 00095 OB_PREOP_SUCCESS 00096 } OB_PREOP_CALLBACK_STATUS, *POB_PREOP_CALLBACK_STATUS; 00097 00098 typedef OB_PREOP_CALLBACK_STATUS 00099 (NTAPI *POB_PRE_OPERATION_CALLBACK)( 00100 _In_ PVOID RegistrationContext, 00101 _Inout_ POB_PRE_OPERATION_INFORMATION OperationInformation); 00102 00103 typedef VOID 00104 (NTAPI *POB_POST_OPERATION_CALLBACK)( 00105 _In_ PVOID RegistrationContext, 00106 _In_ POB_POST_OPERATION_INFORMATION OperationInformation); 00107 00108 typedef struct _OB_OPERATION_REGISTRATION { 00109 _In_ POBJECT_TYPE *ObjectType; 00110 _In_ OB_OPERATION Operations; 00111 _In_ POB_PRE_OPERATION_CALLBACK PreOperation; 00112 _In_ POB_POST_OPERATION_CALLBACK PostOperation; 00113 } OB_OPERATION_REGISTRATION, *POB_OPERATION_REGISTRATION; 00114 00115 typedef struct _OB_CALLBACK_REGISTRATION { 00116 _In_ USHORT Version; 00117 _In_ USHORT OperationRegistrationCount; 00118 _In_ UNICODE_STRING Altitude; 00119 _In_ PVOID RegistrationContext; 00120 _In_ OB_OPERATION_REGISTRATION *OperationRegistration; 00121 } OB_CALLBACK_REGISTRATION, *POB_CALLBACK_REGISTRATION; 00122 00123 typedef struct _OBJECT_NAME_INFORMATION { 00124 UNICODE_STRING Name; 00125 } OBJECT_NAME_INFORMATION, *POBJECT_NAME_INFORMATION; 00126 00127 /* Exported object types */ 00128 extern POBJECT_TYPE NTSYSAPI CmKeyObjectType; 00129 extern POBJECT_TYPE NTSYSAPI ExEventObjectType; 00130 extern POBJECT_TYPE NTSYSAPI ExSemaphoreObjectType; 00131 extern POBJECT_TYPE NTSYSAPI IoFileObjectType; 00132 extern POBJECT_TYPE NTSYSAPI PsThreadType; 00133 extern POBJECT_TYPE NTSYSAPI SeTokenObjectType; 00134 extern POBJECT_TYPE NTSYSAPI PsProcessType; 00135 00136 $endif (_WDMDDK_) 00137 $if (_NTIFS_) 00138 typedef enum _OBJECT_INFORMATION_CLASS { 00139 ObjectBasicInformation = 0, 00140 ObjectTypeInformation = 2, 00141 $endif (_NTIFS_) 00142 $if (_NTIFS_) // we should remove these, but the kernel needs them :-/ 00143 /* Not for public use */ 00144 ObjectNameInformation = 1, 00145 ObjectTypesInformation = 3, 00146 ObjectHandleFlagInformation = 4, 00147 ObjectSessionInformation = 5, 00148 MaxObjectInfoClass 00149 $endif (_NTIFS_) 00150 $if (_NTIFS_) 00151 } OBJECT_INFORMATION_CLASS; 00152 00153 $endif (_NTIFS_) 00154 Generated on Sun May 27 2012 04:30:57 for ReactOS by
1.7.6.1
|