From a4c366b659d787f8cbf7c8e1f25dc75534e192b3 Mon Sep 17 00:00:00 2001 From: Alex Ionescu Date: Fri, 6 Oct 2006 06:36:35 +0000 Subject: [PATCH] - Add internal EX_CALLBACK Object to NDK. (Callback blocks are a new NT 5.2 kernel mechanism much like RunOncs blocks in Vista user-mode). They're managed by rundown protection and fast-referencing through interlocked calls to push/pop/sychrnonize system callbacks. - Add ObOpenObjectByName to NDK, since this API is not documented in official headers. svn path=/trunk/; revision=24422 --- reactos/include/ndk/extypes.h | 18 ++++++++++++++++++ reactos/include/ndk/obfuncs.h | 12 ++++++++++++ 2 files changed, 30 insertions(+) diff --git a/reactos/include/ndk/extypes.h b/reactos/include/ndk/extypes.h index 302a44d5855..4ca7a30886d 100644 --- a/reactos/include/ndk/extypes.h +++ b/reactos/include/ndk/extypes.h @@ -485,6 +485,24 @@ typedef struct _CALLBACK_OBJECT ULONG AllowMultipleCallbacks; } CALLBACK_OBJECT , *PCALLBACK_OBJECT; +// +// Internal Callback Object +// +typedef struct _EX_CALLBACK_ROUTINE_BLOCK +{ + EX_RUNDOWN_REF RundownProtect; + PVOID Function; + PVOID Context; +} EX_CALLBACK_ROUTINE_BLOCK, *PEX_CALLBACK_ROUTINE_BLOCK; + +// +// Internal Callback Handle +// +typedef struct _EX_CALLBACK +{ + EX_FAST_REF RoutineBlock; +} EX_CALLBACK, *PEX_CALLBACK; + // // Profile Object // diff --git a/reactos/include/ndk/obfuncs.h b/reactos/include/ndk/obfuncs.h index ad54633e9c4..f8c4ad9ed8f 100644 --- a/reactos/include/ndk/obfuncs.h +++ b/reactos/include/ndk/obfuncs.h @@ -68,6 +68,18 @@ ObGetObjectPointerCount( IN PVOID Object ); +NTSTATUS +NTAPI +ObOpenObjectByName( + IN POBJECT_ATTRIBUTES ObjectAttributes, + IN POBJECT_TYPE ObjectType, + IN KPROCESSOR_MODE AccessMode, + IN PACCESS_STATE PassedAccessState, + IN ACCESS_MASK DesiredAccess, + IN OUT PVOID ParseContext, + OUT PHANDLE Handle +); + NTKERNELAPI NTSTATUS NTAPI