2 /******************************************************************************
3 * Object Manager Functions *
4 ******************************************************************************/
7 #if (NTDDI_VERSION >= NTDDI_WIN2K)
9 _IRQL_requires_max_(DISPATCH_LEVEL
)
15 #define ObDereferenceObject ObfDereferenceObject
17 _IRQL_requires_max_(APC_LEVEL
)
23 _Out_ PSECURITY_DESCRIPTOR
*SecurityDescriptor
,
24 _Out_ PBOOLEAN MemoryAllocated
);
26 _IRQL_requires_max_(DISPATCH_LEVEL
)
32 #define ObReferenceObject ObfReferenceObject
34 _IRQL_requires_max_(APC_LEVEL
)
38 ObReferenceObjectByHandle(
40 _In_ ACCESS_MASK DesiredAccess
,
41 _In_opt_ POBJECT_TYPE ObjectType
,
42 _In_ KPROCESSOR_MODE AccessMode
,
44 _Out_opt_ POBJECT_HANDLE_INFORMATION HandleInformation
);
46 _IRQL_requires_max_(DISPATCH_LEVEL
)
50 ObReferenceObjectByPointer(
52 _In_ ACCESS_MASK DesiredAccess
,
53 _In_opt_ POBJECT_TYPE ObjectType
,
54 _In_ KPROCESSOR_MODE AccessMode
);
56 _IRQL_requires_max_(APC_LEVEL
)
60 ObReleaseObjectSecurity(
61 _In_ PSECURITY_DESCRIPTOR SecurityDescriptor
,
62 _In_ BOOLEAN MemoryAllocated
);
71 _Inout_opt_ PACCESS_STATE PassedAccessState
,
72 _In_opt_ ACCESS_MASK DesiredAccess
,
73 _In_ ULONG ObjectPointerBias
,
74 _Out_opt_ PVOID
*NewObject
,
75 _Out_opt_ PHANDLE Handle
);
80 ObOpenObjectByPointer(
82 _In_ ULONG HandleAttributes
,
83 _In_opt_ PACCESS_STATE PassedAccessState
,
84 _In_ ACCESS_MASK DesiredAccess
,
85 _In_opt_ POBJECT_TYPE ObjectType
,
86 _In_ KPROCESSOR_MODE AccessMode
,
87 _Out_ PHANDLE Handle
);
92 ObMakeTemporaryObject(
100 _Out_writes_bytes_opt_(Length
) POBJECT_NAME_INFORMATION ObjectNameInfo
,
102 _Out_ PULONG ReturnLength
);
107 ObQueryObjectAuditingByHandle(
109 _Out_ PBOOLEAN GenerateOnClose
);
111 #endif /* (NTDDI_VERSION >= NTDDI_WIN2K) */
113 #if (NTDDI_VERSION >= NTDDI_VISTA)
118 ObDereferenceObjectDeferDelete(
132 #if (NTDDI_VERSION >= NTDDI_VISTASP1)
137 _In_ POB_CALLBACK_REGISTRATION CallbackRegistration
,
138 _Outptr_ PVOID
*RegistrationHandle
);
143 ObUnRegisterCallbacks(
144 _In_ PVOID RegistrationHandle
);
149 ObGetFilterVersion(VOID
);
151 #endif /* (NTDDI_VERSION >= NTDDI_VISTASP1) */
154 #if (NTDDI_VERSION >= NTDDI_WIN7)
156 _IRQL_requires_max_(APC_LEVEL
)
160 ObReferenceObjectByHandleWithTag(
162 _In_ ACCESS_MASK DesiredAccess
,
163 _In_opt_ POBJECT_TYPE ObjectType
,
164 _In_ KPROCESSOR_MODE AccessMode
,
167 _Out_opt_ POBJECT_HANDLE_INFORMATION HandleInformation
);
169 _IRQL_requires_max_(DISPATCH_LEVEL
)
173 ObfReferenceObjectWithTag(
177 _IRQL_requires_max_(DISPATCH_LEVEL
)
181 ObReferenceObjectByPointerWithTag(
183 _In_ ACCESS_MASK DesiredAccess
,
184 _In_opt_ POBJECT_TYPE ObjectType
,
185 _In_ KPROCESSOR_MODE AccessMode
,
188 _IRQL_requires_max_(DISPATCH_LEVEL
)
192 ObfDereferenceObjectWithTag(
199 ObDereferenceObjectDeferDeleteWithTag(
203 #define ObDereferenceObject ObfDereferenceObject
204 #define ObReferenceObject ObfReferenceObject
205 #define ObDereferenceObjectWithTag ObfDereferenceObjectWithTag
206 #define ObReferenceObjectWithTag ObfReferenceObjectWithTag
213 ObOpenObjectByPointerWithTag(
215 _In_ ULONG HandleAttributes
,
216 _In_opt_ PACCESS_STATE PassedAccessState
,
217 _In_ ACCESS_MASK DesiredAccess
,
218 _In_opt_ POBJECT_TYPE ObjectType
,
219 _In_ KPROCESSOR_MODE AccessMode
,
221 _Out_ PHANDLE Handle
);
226 ObGetObjectPointerCount(
231 #endif /* (NTDDI_VERSION >= NTDDI_WIN7) */