Corrected unknown parameter

Added ObOpenObjectByPointer() stub

svn path=/trunk/; revision=1582
This commit is contained in:
Eric Kohl 2001-01-29 00:32:13 +00:00
parent 7bfcc9b94c
commit 1416a36841
5 changed files with 51 additions and 28 deletions

View file

@ -1,5 +1,10 @@
/* OBJECT MANAGER ************************************************************/
PVOID STDCALL ObCreateObject(PHANDLE Handle,
ACCESS_MASK DesiredAccess,
POBJECT_ATTRIBUTES ObjectAttributes,
POBJECT_TYPE Type);
/*
* FUNCTION: Decrements the object's reference count and performs retention
* checks
@ -8,13 +13,23 @@
*/
VOID STDCALL ObDereferenceObject(PVOID Object);
NTSTATUS STDCALL ObOpenObjectByName(POBJECT_ATTRIBUTES ObjectAttributes,
POBJECT_TYPE ObjectType,
ULONG Unknown3, /* ?? */
KPROCESSOR_MODE AccessMode,
ACCESS_MASK DesiredAccess,
PACCESS_STATE PassedAccessState,
PHANDLE Handle);
VOID STDCALL ObMakeTemporaryObject(PVOID ObjectBody);
NTSTATUS STDCALL ObOpenObjectByName(IN POBJECT_ATTRIBUTES ObjectAttributes,
IN POBJECT_TYPE ObjectType,
IN PVOID ParseContext,
IN KPROCESSOR_MODE AccessMode,
IN ACCESS_MASK DesiredAccess,
IN PACCESS_STATE PassedAccessState,
OUT PHANDLE Handle);
NTSTATUS STDCALL ObOpenObjectByPointer(IN PVOID Object,
IN ULONG HandleAttributes,
IN PACCESS_STATE PassedAccessState,
IN ACCESS_MASK DesiredAccess,
IN POBJECT_TYPE ObjectType,
IN KPROCESSOR_MODE AccessMode,
OUT PHANDLE Handle);
/*
* FUNCTION: Performs access validation on an object handle and if access
@ -60,9 +75,3 @@ NTSTATUS STDCALL ObReferenceObjectByName(PUNICODE_STRING ObjectPath,
PVOID ParseContext,
PVOID* ObjectPtr);
PVOID STDCALL ObCreateObject(PHANDLE Handle,
ACCESS_MASK DesiredAccess,
POBJECT_ATTRIBUTES ObjectAttributes,
POBJECT_TYPE Type);
VOID STDCALL ObMakeTemporaryObject(PVOID ObjectBody);

View file

@ -1,4 +1,4 @@
; $Id: ntoskrnl.def,v 1.95 2001/01/20 18:33:31 ekohl Exp $
; $Id: ntoskrnl.def,v 1.96 2001/01/29 00:32:13 ekohl Exp $
;
; reactos/ntoskrnl/ntoskrnl.def
;
@ -349,7 +349,7 @@ KeInitializeDeviceQueue@4
KeInitializeDpc@12
KeInitializeEvent@12
KeInitializeInterrupt@44
;KeInitializeMutant
;KeInitializeMutant@8
KeInitializeMutex@8
;KeInitializeQueue
KeInitializeSemaphore@12
@ -556,7 +556,7 @@ ObDereferenceObject@4
;ObInsertObject@24
ObMakeTemporaryObject@4
ObOpenObjectByName@28
;ObOpenObjectByPointer@28
ObOpenObjectByPointer@28
;ObQueryNameString@16
;ObQueryObjectAuditingByHandle@8
ObReferenceObjectByHandle@24

View file

@ -1,4 +1,4 @@
; $Id: ntoskrnl.edf,v 1.82 2001/01/20 18:33:31 ekohl Exp $
; $Id: ntoskrnl.edf,v 1.83 2001/01/29 00:32:13 ekohl Exp $
;
; reactos/ntoskrnl/ntoskrnl.def
;
@ -556,7 +556,7 @@ ObDereferenceObject=ObDereferenceObject@4
;ObInsertObject=ObInsertObject@24
ObMakeTemporaryObject=ObMakeTemporaryObject@4
ObOpenObjectByName=ObOpenObjectByName@28
;ObOpenObjectByPointer=ObOpenObjectByPointer@28
ObOpenObjectByPointer=ObOpenObjectByPointer@28
;ObQueryNameString=ObQueryNameString@16
;ObQueryObjectAuditingByHandle=ObQueryObjectAuditingByHandle@8
ObReferenceObjectByHandle=ObReferenceObjectByHandle@24

View file

@ -1,4 +1,4 @@
/* $Id: handle.c,v 1.25 2000/10/22 16:36:53 ekohl Exp $
/* $Id: handle.c,v 1.26 2001/01/29 00:31:24 ekohl Exp $
*
* COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS kernel
@ -186,7 +186,7 @@ VOID ObCloseAllHandles(PEPROCESS Process)
for (i = 0; i < HANDLE_BLOCK_ENTRIES; i++)
{
ObjectBody = current->handles[i].ObjectBody;
ObjectBody = current->handles[i].ObjectBody;
if (ObjectBody != NULL)
{
@ -343,7 +343,7 @@ PVOID ObDeleteHandle(PEPROCESS Process, HANDLE Handle)
ObjectBody = Rep->ObjectBody;
DPRINT("ObjectBody %x\n", ObjectBody);
if (ObjectBody != NULL)
{
{
Header = BODY_TO_HEADER(ObjectBody);
BODY_TO_HEADER(ObjectBody)->HandleCount--;
ObReferenceObjectByPointer(ObjectBody,
@ -351,7 +351,7 @@ PVOID ObDeleteHandle(PEPROCESS Process, HANDLE Handle)
NULL,
UserMode);
Rep->ObjectBody = NULL;
KeReleaseSpinLock(&HandleTable->ListLock, oldIrql);
if ((Header->ObjectType != NULL) &&
@ -362,7 +362,7 @@ PVOID ObDeleteHandle(PEPROCESS Process, HANDLE Handle)
}
else
{
KeReleaseSpinLock(&HandleTable->ListLock, oldIrql);
KeReleaseSpinLock(&HandleTable->ListLock, oldIrql);
}
DPRINT("Finished ObDeleteHandle()\n");
@ -410,11 +410,11 @@ NTSTATUS ObCreateHandle(PEPROCESS Process,
{
HANDLE_BLOCK* blk = CONTAINING_RECORD(current,HANDLE_BLOCK,entry);
DPRINT("Current %x\n",current);
DPRINT("Current %x\n",current);
for (i=0;i<HANDLE_BLOCK_ENTRIES;i++)
{
DPRINT("Considering slot %d containing %x\n",i,blk->handles[i]);
DPRINT("Considering slot %d containing %x\n",i,blk->handles[i]);
if (blk->handles[i].ObjectBody==NULL)
{
blk->handles[i].ObjectBody = ObjectBody;
@ -442,7 +442,7 @@ NTSTATUS ObCreateHandle(PEPROCESS Process,
new_blk->handles[0].GrantedAccess = GrantedAccess;
new_blk->handles[0].Inherit = Inherit;
*HandleReturn = (HANDLE)(handle << 2);
return(STATUS_SUCCESS);
return(STATUS_SUCCESS);
}
@ -543,7 +543,7 @@ NTSTATUS STDCALL ObReferenceObjectByHandle(HANDLE Handle,
{
CHECKPOINT;
return(STATUS_OBJECT_TYPE_MISMATCH);
}
}
if (ObjectHeader->ObjectType == PsProcessType)
{

View file

@ -1,4 +1,4 @@
/* $Id: object.c,v 1.30 2001/01/20 18:33:05 ekohl Exp $
/* $Id: object.c,v 1.31 2001/01/29 00:31:24 ekohl Exp $
*
* COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS kernel
@ -330,6 +330,20 @@ NTSTATUS STDCALL ObReferenceObjectByPointer(PVOID ObjectBody,
return(STATUS_SUCCESS);
}
NTSTATUS STDCALL
ObOpenObjectByPointer(IN POBJECT Object,
IN ULONG HandleAttributes,
IN PACCESS_STATE PassedAccessState,
IN ACCESS_MASK DesiredAccess,
IN POBJECT_TYPE ObjectType,
IN KPROCESSOR_MODE AccessMode,
OUT PHANDLE Handle)
{
UNIMPLEMENTED;
return STATUS_NOT_IMPLEMENTED;
}
NTSTATUS ObPerformRetentionChecks(POBJECT_HEADER Header)
{
// DPRINT("ObPerformRetentionChecks(Header %x), RefCount %d, HandleCount %d\n",