ReactOS 0.4.17-dev-475-g46e69e6
ObTypes.hpp
Go to the documentation of this file.
1/*
2 * PROJECT: ReactOS kernel-mode tests
3 * LICENSE: MIT (https://spdx.org/licenses/MIT)
4 * PURPOSE: Header for C++ Ob template type definitions
5 * COPYRIGHT: Copyright 2026 Timo Kreuzer <timo.kreuzer@reactos.org>
6 */
7
8typedef NTSTATUS
12 _In_ PVOID ObjectBody,
15);
16
17typedef NTSTATUS
22 _In_ PVOID ObjectBody,
25);
26
27typedef NTSTATUS
30 _In_ SECURITY_OPERATION_CODE OperationType,
33 _Inout_ PULONG CapturedLength,
34 _Inout_ PSECURITY_DESCRIPTOR *ObjectSecurityDescriptor,
37);
38
39typedef NTSTATUS
42 _In_ SECURITY_OPERATION_CODE OperationType,
45 _Inout_ PULONG CapturedLength,
46 _Inout_ PSECURITY_DESCRIPTOR *ObjectSecurityDescriptor,
50);
51
53{
54 USHORT Length; // 0x00
74};
76{
77 USHORT Length; // 0x00
78 union
79 {
81 struct
82 {
89 };
90 };
106};
107
109{
110 USHORT Length; // 0x00
111 union
112 {
114 struct
115 {
123 };
124 };
141};
142
143template<unsigned NtDdiVersion> struct TOBJECT_TYPE_INITIALIZER;
148
150{
155 ULONG Index; // 0x90
161 ULONG Key; // 0x118
163};
164
166{
170 ULONG Index; // 0x28
178 ULONG Key; // 0x120
181};
182
184{
188 UCHAR Index; // 0x28
195 ULONG Key; // 0xb8
197};
198
199template<unsigned NtDdiVersion> struct TOBJECT_TYPE;
200template<> struct TOBJECT_TYPE<NTDDI_WS03> : public OBJECT_TYPE_WS03 {};
201template<> struct TOBJECT_TYPE<NTDDI_VISTA> : public OBJECT_TYPE_WS03 {};
202template<> struct TOBJECT_TYPE<NTDDI_VISTASP1> : public OBJECT_TYPE_VISTASP1 {};
203template<> struct TOBJECT_TYPE<NTDDI_WIN7> : public OBJECT_TYPE_WIN7 {};
NTSTATUS(NTAPI * OB_SECURITY_METHOD_WS03)(_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)
Definition: ObTypes.hpp:28
NTSTATUS(NTAPI * OB_SECURITY_METHOD_VISTA)(_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)
Definition: ObTypes.hpp:40
NTSTATUS(NTAPI * OB_OPEN_METHOD_WS03)(_In_ OB_OPEN_REASON Reason, _In_opt_ PEPROCESS Process, _In_ PVOID ObjectBody, _In_ ACCESS_MASK GrantedAccess, _In_ ULONG HandleCount)
Definition: ObTypes.hpp:9
NTSTATUS(NTAPI * OB_OPEN_METHOD_VISTA)(_In_ OB_OPEN_REASON Reason, _In_ KPROCESSOR_MODE AccessMode, _In_opt_ PEPROCESS Process, _In_ PVOID ObjectBody, _In_ PACCESS_MASK GrantedAccess, _In_ ULONG HandleCount)
Definition: ObTypes.hpp:18
static GENERIC_MAPPING GenericMapping
Definition: SeInheritance.c:11
#define NTSTATUS
Definition: precomp.h:19
ULONG ERESOURCE
Definition: env_spec_w32.h:594
_Must_inspect_result_ _In_ PFILE_OBJECT _In_ SECURITY_INFORMATION SecurityInformation
Definition: fltkernel.h:1340
_Must_inspect_result_ _In_ PLARGE_INTEGER _In_ PLARGE_INTEGER _In_ ULONG _In_ PFILE_OBJECT _In_ PVOID Process
Definition: fsrtlfuncs.h:223
PVOID PVOID PWCHAR PVOID USHORT PULONG Reason
Definition: env.c:47
DWORD * PSECURITY_INFORMATION
Definition: ms-dtyp.idl:311
VOID(NTAPI * OB_DUMP_METHOD)(_In_ PVOID Object, _In_opt_ POB_DUMP_CONTROL Control)
Definition: obtypes.h:186
NTSTATUS(NTAPI * OB_QUERYNAME_METHOD)(_In_ PVOID Object, _In_ BOOLEAN HasObjectName, _Out_ POBJECT_NAME_INFORMATION ObjectNameInfo, _In_ ULONG Length, _Out_ PULONG ReturnLength, _In_ KPROCESSOR_MODE AccessMode)
Definition: obtypes.h:241
BOOLEAN(NTAPI * OB_OKAYTOCLOSE_METHOD)(_In_opt_ PEPROCESS Process, _In_ PVOID Object, _In_ HANDLE Handle, _In_ KPROCESSOR_MODE AccessMode)
Definition: obtypes.h:251
NTSTATUS(NTAPI * OB_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)
Definition: obtypes.h:215
VOID(NTAPI * OB_DELETE_METHOD)(_In_ PVOID Object)
Definition: obtypes.h:210
VOID(NTAPI * OB_CLOSE_METHOD)(_In_opt_ PEPROCESS Process, _In_ PVOID Object, _In_ ACCESS_MASK GrantedAccess, _In_ ULONG ProcessHandleCount, _In_ ULONG SystemHandleCount)
Definition: obtypes.h:201
enum _OB_OPEN_REASON OB_OPEN_REASON
#define _Inout_
Definition: no_sal2.h:162
#define _In_
Definition: no_sal2.h:158
#define _In_opt_
Definition: no_sal2.h:212
ACCESS_MASK * PACCESS_MASK
Definition: nt_native.h:41
ULONG ACCESS_MASK
Definition: nt_native.h:40
unsigned short USHORT
Definition: pedump.c:61
#define NTDDI_VISTA
Definition: sdkddkver.h:103
#define NTDDI_WS03
Definition: sdkddkver.h:92
#define NTDDI_WIN7
Definition: sdkddkver.h:112
#define NTDDI_VISTASP1
Definition: sdkddkver.h:104
GENERIC_MAPPING GenericMapping
Definition: ObTypes.hpp:127
OB_SECURITY_METHOD_VISTA SecurityProcedure
Definition: ObTypes.hpp:138
OB_OPEN_METHOD_VISTA OpenProcedure
Definition: ObTypes.hpp:134
OB_OKAYTOCLOSE_METHOD OkayToCloseProcedure
Definition: ObTypes.hpp:140
OB_PARSE_METHOD ParseProcedure
Definition: ObTypes.hpp:137
OB_CLOSE_METHOD CloseProcedure
Definition: ObTypes.hpp:135
OB_QUERYNAME_METHOD QueryNameProcedure
Definition: ObTypes.hpp:139
OB_DELETE_METHOD DeleteProcedure
Definition: ObTypes.hpp:136
OB_OPEN_METHOD_VISTA OpenProcedure
Definition: ObTypes.hpp:99
OB_PARSE_METHOD ParseProcedure
Definition: ObTypes.hpp:102
OB_QUERYNAME_METHOD QueryNameProcedure
Definition: ObTypes.hpp:104
OB_SECURITY_METHOD_VISTA SecurityProcedure
Definition: ObTypes.hpp:103
OB_DELETE_METHOD DeleteProcedure
Definition: ObTypes.hpp:101
GENERIC_MAPPING GenericMapping
Definition: ObTypes.hpp:93
OB_DUMP_METHOD DumpProcedure
Definition: ObTypes.hpp:98
OB_CLOSE_METHOD CloseProcedure
Definition: ObTypes.hpp:100
OB_OKAYTOCLOSE_METHOD OkayToCloseProcedure
Definition: ObTypes.hpp:105
GENERIC_MAPPING GenericMapping
Definition: ObTypes.hpp:58
OB_QUERYNAME_METHOD QueryNameProcedure
Definition: ObTypes.hpp:72
OB_PARSE_METHOD ParseProcedure
Definition: ObTypes.hpp:70
OB_OPEN_METHOD_WS03 OpenProcedure
Definition: ObTypes.hpp:67
OB_SECURITY_METHOD_WS03 SecurityProcedure
Definition: ObTypes.hpp:71
OB_CLOSE_METHOD CloseProcedure
Definition: ObTypes.hpp:68
OB_DELETE_METHOD DeleteProcedure
Definition: ObTypes.hpp:69
OB_DUMP_METHOD DumpProcedure
Definition: ObTypes.hpp:66
OB_OKAYTOCLOSE_METHOD OkayToCloseProcedure
Definition: ObTypes.hpp:73
LIST_ENTRY TypeList
Definition: ObTypes.hpp:167
ULONG TotalNumberOfObjects
Definition: ObTypes.hpp:171
ULONG TotalNumberOfHandles
Definition: ObTypes.hpp:172
EX_PUSH_LOCK TypeLock
Definition: ObTypes.hpp:177
ULONG HighWaterNumberOfHandles
Definition: ObTypes.hpp:174
UNICODE_STRING Name
Definition: ObTypes.hpp:168
ULONG HighWaterNumberOfObjects
Definition: ObTypes.hpp:173
LIST_ENTRY CallbackList
Definition: ObTypes.hpp:180
OBJECT_TYPE_INITIALIZER_VISTASP1 TypeInfo
Definition: ObTypes.hpp:175
EX_PUSH_LOCK ObjectLocks[32]
Definition: ObTypes.hpp:179
ULONG HighWaterNumberOfObjects
Definition: ObTypes.hpp:191
LIST_ENTRY CallbackList
Definition: ObTypes.hpp:196
PVOID DefaultObject
Definition: ObTypes.hpp:187
ULONG HighWaterNumberOfHandles
Definition: ObTypes.hpp:192
ULONG TotalNumberOfObjects
Definition: ObTypes.hpp:189
LIST_ENTRY TypeList
Definition: ObTypes.hpp:185
OBJECT_TYPE_INITIALIZER_VISTASP1 TypeInfo
Definition: ObTypes.hpp:193
UNICODE_STRING Name
Definition: ObTypes.hpp:186
EX_PUSH_LOCK TypeLock
Definition: ObTypes.hpp:194
ULONG TotalNumberOfHandles
Definition: ObTypes.hpp:190
ULONG HighWaterNumberOfHandles
Definition: ObTypes.hpp:159
ERESOURCE Mutex
Definition: ObTypes.hpp:151
ULONG TotalNumberOfHandles
Definition: ObTypes.hpp:157
OBJECT_TYPE_INITIALIZER_WS03 TypeInfo
Definition: ObTypes.hpp:160
LIST_ENTRY TypeList
Definition: ObTypes.hpp:152
ERESOURCE ObjectLocks[4]
Definition: ObTypes.hpp:162
ULONG TotalNumberOfObjects
Definition: ObTypes.hpp:156
VOID * DefaultObject
Definition: ObTypes.hpp:154
UNICODE_STRING Name
Definition: ObTypes.hpp:153
ULONG HighWaterNumberOfObjects
Definition: ObTypes.hpp:158
Definition: typedefs.h:120
uint32_t * PULONG
Definition: typedefs.h:59
unsigned char UCHAR
Definition: typedefs.h:53
INT POOL_TYPE
Definition: typedefs.h:78
#define NTAPI
Definition: typedefs.h:36
uint32_t ULONG
Definition: typedefs.h:59
static ULONG HandleCount
Definition: uefidisk.c:67
_Must_inspect_result_ _In_ WDFCOLLECTION _In_ WDFOBJECT Object
_Must_inspect_result_ _In_ WDFDEVICE _In_ DEVICE_REGISTRY_PROPERTY _In_ _Strict_type_match_ POOL_TYPE PoolType
Definition: wdfdevice.h:3821
_In_ USHORT _In_ ULONG _In_ PSOCKADDR _In_ PSOCKADDR _Reserved_ ULONG _In_opt_ PVOID _In_opt_ const WSK_CLIENT_CONNECTION_DISPATCH _In_opt_ PEPROCESS _In_opt_ PETHREAD _In_opt_ PSECURITY_DESCRIPTOR SecurityDescriptor
Definition: wsk.h:191
CCHAR KPROCESSOR_MODE
Definition: ketypes.h:7
_In_ PEPROCESS _In_ KPROCESSOR_MODE AccessMode
Definition: mmfuncs.h:396
_In_ PSECURITY_SUBJECT_CONTEXT _In_ BOOLEAN _In_ ACCESS_MASK _In_ ACCESS_MASK _Outptr_opt_ PPRIVILEGE_SET _In_ PGENERIC_MAPPING _In_ KPROCESSOR_MODE _Out_ PACCESS_MASK GrantedAccess
Definition: sefuncs.h:20
SECURITY_OPERATION_CODE
Definition: setypes.h:170