Implement NtMakePermanentObject().

svn path=/trunk/; revision=10175
This commit is contained in:
Eric Kohl 2004-07-17 12:08:21 +00:00
parent 14f18e7d6d
commit a3a123ab31

View file

@ -1,4 +1,4 @@
/* $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 * COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS kernel * PROJECT: ReactOS kernel
@ -71,7 +71,7 @@ NtSetInformationObject (IN HANDLE ObjectHandle,
/********************************************************************** /**********************************************************************
* NAME EXPORTED * NAME EXPORTED
* NtQueryObject * NtQueryObject
* *
* DESCRIPTION * DESCRIPTION
* *
* ARGUMENTS * ARGUMENTS
@ -135,11 +135,7 @@ NtQueryObject (IN HANDLE ObjectHandle,
} }
else else
{ {
#if defined(__GNUC__) BasicInfo->CreateTime.QuadPart = (ULONGLONG)0;
BasicInfo->CreateTime.QuadPart = 0ULL;
#else
BasicInfo->CreateTime.QuadPart = 0;
#endif
} }
Status = STATUS_SUCCESS; Status = STATUS_SUCCESS;
} }
@ -216,7 +212,7 @@ NtQueryObject (IN HANDLE ObjectHandle,
/********************************************************************** /**********************************************************************
* NAME EXPORTED * NAME EXPORTED
* ObMakeTemporaryObject * ObMakeTemporaryObject
* *
* DESCRIPTION * DESCRIPTION
* *
* ARGUMENTS * ARGUMENTS
@ -228,7 +224,7 @@ NtQueryObject (IN HANDLE ObjectHandle,
* @implemented * @implemented
*/ */
VOID STDCALL VOID STDCALL
ObMakeTemporaryObject (IN PVOID ObjectBody) ObMakeTemporaryObject(IN PVOID ObjectBody)
{ {
POBJECT_HEADER ObjectHeader; POBJECT_HEADER ObjectHeader;
@ -240,7 +236,7 @@ ObMakeTemporaryObject (IN PVOID ObjectBody)
/********************************************************************** /**********************************************************************
* NAME EXPORTED * NAME EXPORTED
* NtMakeTemporaryObject * NtMakeTemporaryObject
* *
* DESCRIPTION * DESCRIPTION
* *
* ARGUMENTS * ARGUMENTS
@ -250,7 +246,7 @@ ObMakeTemporaryObject (IN PVOID ObjectBody)
* REVISIONS * REVISIONS
*/ */
NTSTATUS STDCALL NTSTATUS STDCALL
NtMakeTemporaryObject (IN HANDLE Handle) NtMakeTemporaryObject(IN HANDLE Handle)
{ {
POBJECT_HEADER ObjectHeader; POBJECT_HEADER ObjectHeader;
PVOID Object; PVOID Object;
@ -260,7 +256,7 @@ NtMakeTemporaryObject (IN HANDLE Handle)
0, 0,
NULL, NULL,
(KPROCESSOR_MODE)KeGetPreviousMode(), (KPROCESSOR_MODE)KeGetPreviousMode(),
& Object, &Object,
NULL); NULL);
if (Status != STATUS_SUCCESS) if (Status != STATUS_SUCCESS)
{ {
@ -275,18 +271,43 @@ NtMakeTemporaryObject (IN HANDLE Handle)
return STATUS_SUCCESS; return STATUS_SUCCESS;
} }
/*
* @unimplemented /**********************************************************************
* NAME EXPORTED
* NtMakePermanentObject
*
* DESCRIPTION
*
* ARGUMENTS
*
* RETURN VALUE
*
* REVISIONS
*/ */
NTSTATUS NTSTATUS STDCALL
STDCALL NtMakePermanentObject(IN HANDLE Handle)
NtMakePermanentObject(
IN HANDLE Object
)
{ {
UNIMPLEMENTED; POBJECT_HEADER ObjectHeader;
return STATUS_NOT_IMPLEMENTED; 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 */ /* EOF */