ReactOS Fundraising Campaign 2012
 
€ 4,410 / € 30,000

Information | Donate

Home | Info | Community | Development | myReactOS | Contact Us

  1. Home
  2. Community
  3. Development
  4. myReactOS
  5. Fundraiser 2012

  1. Main Page
  2. Alphabetical List
  3. Data Structures
  4. Directories
  5. File List
  6. Data Fields
  7. Globals
  8. Related Pages

ReactOS Development > Doxygen

obtypes.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 doxygen 1.7.6.1

ReactOS is a registered trademark or a trademark of ReactOS Foundation in the United States and other countries.