From 4c6659967e34eb168ba3fbfd702b2e599a8a54a8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Herm=C3=A8s=20B=C3=A9lusca-Ma=C3=AFto?= Date: Sat, 21 Sep 2013 19:52:44 +0000 Subject: [PATCH] [NTOS] - Stubplement ObDeleteCapturedInsertInfo, which was added in Win2k3 (and is present in Vista+) and in Win2k SP4, according to http://www.geoffchappell.com/studies/windows/km/ntoskrnl/history/names50sp4.htm . Its prototype come from http://hi.baidu.com/_achillis/item/422140888137cb834514cf08 (this is a chinese article explaining some of the changes in the Object Manager from Windows XP to 7). - Stubplement ObSetHandleAttributes, which was added in NT 5.1 (XP) (see http://www.geoffchappell.com/studies/windows/km/ntoskrnl/history/names51.htm); its prototype is given in http://processhacker.sourceforge.net/doc/ntfill_8h.html#a7f6e063aedf2354a7396b096830647d5 . Its second parameter, a pointer to a OBJECT_HANDLE_FLAG_INFORMATION structure, according to its definition in http://processhacker.sourceforge.net/doc/struct___o_b_j_e_c_t___h_a_n_d_l_e___f_l_a_g___i_n_f_o_r_m_a_t_i_o_n.html, appears to correspond to our OBJECT_HANDLE_ATTRIBUTE_INFORMATION structure defined in http://git.reactos.org/?p=reactos.git;a=blob;f=reactos/include/ndk/obtypes.h;hb=HEAD#l259 . Those functions are needed by Win2k3's win32k.sys . svn path=/trunk/; revision=60292 --- reactos/ntoskrnl/ntoskrnl.spec | 4 ++-- reactos/ntoskrnl/ob/obhandle.c | 30 ++++++++++++++++++++++++++++++ reactos/ntoskrnl/ob/oblife.c | 8 ++++++++ 3 files changed, 40 insertions(+), 2 deletions(-) diff --git a/reactos/ntoskrnl/ntoskrnl.spec b/reactos/ntoskrnl/ntoskrnl.spec index 5c279d623cd..4deabb933e7 100644 --- a/reactos/ntoskrnl/ntoskrnl.spec +++ b/reactos/ntoskrnl/ntoskrnl.spec @@ -899,7 +899,7 @@ @ stdcall ObCloseHandle(ptr long) @ stdcall ObCreateObject(long ptr ptr long ptr long long long ptr) @ stdcall ObCreateObjectType(ptr ptr ptr ptr) -;ObDeleteCapturedInsertInfo +@ stdcall ObDeleteCapturedInsertInfo(ptr) @ stdcall ObDereferenceObject(ptr) @ stdcall -arch=i386,arm ObDereferenceObjectDeferDelete(ptr) @ stdcall ObDereferenceSecurityDescriptor(ptr long) @@ -918,7 +918,7 @@ @ stdcall ObReferenceObjectByPointer(ptr long ptr long) @ stdcall ObReferenceSecurityDescriptor(ptr long) @ stdcall ObReleaseObjectSecurity(ptr long) -;ObSetHandleAttributes@12 +@ stdcall ObSetHandleAttributes(ptr ptr long) @ stdcall ObSetSecurityDescriptorInfo(ptr ptr ptr ptr long ptr) @ stdcall ObSetSecurityObjectByPointer(ptr long ptr) @ fastcall ObfDereferenceObject(ptr) diff --git a/reactos/ntoskrnl/ob/obhandle.c b/reactos/ntoskrnl/ob/obhandle.c index b6f091c98e3..37c79b6b510 100644 --- a/reactos/ntoskrnl/ob/obhandle.c +++ b/reactos/ntoskrnl/ob/obhandle.c @@ -3171,6 +3171,36 @@ ObInsertObject(IN PVOID Object, return RealStatus; } +/*++ +* @name ObSetHandleAttributes +* @implemented NT5.1 +* +* The ObSetHandleAttributes routine +* +* @param Handle +* . +* +* @param HandleFlags +* . +* +* @param PreviousMode +* . +* +* @return . +* +* @remarks None. +* +*--*/ +NTSTATUS +NTAPI +ObSetHandleAttributes(IN HANDLE Handle, + IN POBJECT_HANDLE_ATTRIBUTE_INFORMATION HandleFlags, + IN KPROCESSOR_MODE PreviousMode) +{ + UNIMPLEMENTED; + return STATUS_NOT_IMPLEMENTED; +} + /*++ * @name ObCloseHandle * @implemented NT5.1 diff --git a/reactos/ntoskrnl/ob/oblife.c b/reactos/ntoskrnl/ob/oblife.c index 636130bca2d..74a640b7bab 100644 --- a/reactos/ntoskrnl/ob/oblife.c +++ b/reactos/ntoskrnl/ob/oblife.c @@ -1269,6 +1269,14 @@ ObCreateObjectType(IN PUNICODE_STRING TypeName, return STATUS_INSUFFICIENT_RESOURCES; } +VOID +NTAPI +ObDeleteCapturedInsertInfo(IN PVOID Object) +{ + UNIMPLEMENTED; + return; +} + VOID NTAPI ObpDeleteObjectType(IN PVOID Object)