-/* $Id: ntobj.c,v 1.20 2004/07/17 03:06:01 ion Exp $
+/* $Id: ntobj.c,v 1.21 2004/07/17 12:08:21 ekohl Exp $
*
* COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS kernel
/**********************************************************************
* NAME EXPORTED
* NtQueryObject
- *
+ *
* DESCRIPTION
*
* ARGUMENTS
}
else
{
-#if defined(__GNUC__)
- BasicInfo->CreateTime.QuadPart = 0ULL;
-#else
- BasicInfo->CreateTime.QuadPart = 0;
-#endif
+ BasicInfo->CreateTime.QuadPart = (ULONGLONG)0;
}
Status = STATUS_SUCCESS;
}
/**********************************************************************
* NAME EXPORTED
* ObMakeTemporaryObject
- *
+ *
* DESCRIPTION
*
* ARGUMENTS
* @implemented
*/
VOID STDCALL
-ObMakeTemporaryObject (IN PVOID ObjectBody)
+ObMakeTemporaryObject(IN PVOID ObjectBody)
{
POBJECT_HEADER ObjectHeader;
/**********************************************************************
* NAME EXPORTED
* NtMakeTemporaryObject
- *
+ *
* DESCRIPTION
*
* ARGUMENTS
* REVISIONS
*/
NTSTATUS STDCALL
-NtMakeTemporaryObject (IN HANDLE Handle)
+NtMakeTemporaryObject(IN HANDLE Handle)
{
POBJECT_HEADER ObjectHeader;
PVOID Object;
0,
NULL,
(KPROCESSOR_MODE)KeGetPreviousMode(),
- & Object,
+ &Object,
NULL);
if (Status != STATUS_SUCCESS)
{
return STATUS_SUCCESS;
}
-/*
- * @unimplemented
+
+/**********************************************************************
+ * NAME EXPORTED
+ * NtMakePermanentObject
+ *
+ * DESCRIPTION
+ *
+ * ARGUMENTS
+ *
+ * RETURN VALUE
+ *
+ * REVISIONS
*/
-NTSTATUS
-STDCALL
-NtMakePermanentObject(
- IN HANDLE Object
- )
+NTSTATUS STDCALL
+NtMakePermanentObject(IN HANDLE Handle)
{
- UNIMPLEMENTED;
- return STATUS_NOT_IMPLEMENTED;
-}
+ POBJECT_HEADER ObjectHeader;
+ PVOID Object;
+ NTSTATUS Status;
+ Status = ObReferenceObjectByHandle(Handle,
+ 0,
+ NULL,
+ (KPROCESSOR_MODE)KeGetPreviousMode(),
+ &Object,
+ NULL);
+ if (Status != STATUS_SUCCESS)
+ {
+ return Status;
+ }
+
+ ObjectHeader = BODY_TO_HEADER(Object);
+ ObjectHeader->Permanent = TRUE;
+
+ ObDereferenceObject(Object);
+
+ return STATUS_SUCCESS;
+}
/* EOF */