- Export ExSemaphoreObjectType.

svn path=/trunk/; revision=12345
This commit is contained in:
Filip Navara 2004-12-26 17:48:19 +00:00
parent cbfd8c1020
commit 11d39be5b5
3 changed files with 31 additions and 30 deletions

View file

@ -29,7 +29,7 @@ static KSPIN_LOCK DispatcherDatabaseLock;
#define KeDispatcherObjectWakeAll(hdr) KeDispatcherObjectWakeOneOrAll(hdr, TRUE) #define KeDispatcherObjectWakeAll(hdr) KeDispatcherObjectWakeOneOrAll(hdr, TRUE)
extern POBJECT_TYPE EXPORTED ExMutantObjectType; extern POBJECT_TYPE EXPORTED ExMutantObjectType;
extern POBJECT_TYPE EXPORTED ExSemaphoreType; extern POBJECT_TYPE EXPORTED ExSemaphoreObjectType;
extern POBJECT_TYPE EXPORTED ExTimerType; extern POBJECT_TYPE EXPORTED ExTimerType;
/* FUNCTIONS *****************************************************************/ /* FUNCTIONS *****************************************************************/
@ -453,7 +453,7 @@ KiIsObjectWaitable(PVOID Object)
if (Header->ObjectType == ExEventObjectType || if (Header->ObjectType == ExEventObjectType ||
Header->ObjectType == ExIoCompletionType || Header->ObjectType == ExIoCompletionType ||
Header->ObjectType == ExMutantObjectType || Header->ObjectType == ExMutantObjectType ||
Header->ObjectType == ExSemaphoreType || Header->ObjectType == ExSemaphoreObjectType ||
Header->ObjectType == ExTimerType || Header->ObjectType == ExTimerType ||
Header->ObjectType == PsProcessType || Header->ObjectType == PsProcessType ||
Header->ObjectType == PsThreadType || Header->ObjectType == PsThreadType ||

View file

@ -1,4 +1,4 @@
/* $Id: ntsem.c,v 1.23 2004/10/24 16:49:49 weiden Exp $ /* $Id: ntsem.c,v 1.24 2004/12/26 17:48:19 navaraf Exp $
* *
* COPYRIGHT: See COPYING in the top level directory * COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS kernel * PROJECT: ReactOS kernel
@ -17,7 +17,7 @@
/* GLOBALS ******************************************************************/ /* GLOBALS ******************************************************************/
POBJECT_TYPE ExSemaphoreType; POBJECT_TYPE ExSemaphoreObjectType;
static GENERIC_MAPPING ExSemaphoreMapping = { static GENERIC_MAPPING ExSemaphoreMapping = {
STANDARD_RIGHTS_READ | SEMAPHORE_QUERY_STATE, STANDARD_RIGHTS_READ | SEMAPHORE_QUERY_STATE,
@ -47,30 +47,30 @@ NtpCreateSemaphore(PVOID ObjectBody,
VOID INIT_FUNCTION VOID INIT_FUNCTION
NtInitializeSemaphoreImplementation(VOID) NtInitializeSemaphoreImplementation(VOID)
{ {
ExSemaphoreType = ExAllocatePool(NonPagedPool, sizeof(OBJECT_TYPE)); ExSemaphoreObjectType = ExAllocatePool(NonPagedPool, sizeof(OBJECT_TYPE));
RtlCreateUnicodeString(&ExSemaphoreType->TypeName, L"Semaphore"); RtlCreateUnicodeString(&ExSemaphoreObjectType->TypeName, L"Semaphore");
ExSemaphoreType->Tag = TAG('S', 'E', 'M', 'T'); ExSemaphoreObjectType->Tag = TAG('S', 'E', 'M', 'T');
ExSemaphoreType->MaxObjects = ULONG_MAX; ExSemaphoreObjectType->MaxObjects = ULONG_MAX;
ExSemaphoreType->MaxHandles = ULONG_MAX; ExSemaphoreObjectType->MaxHandles = ULONG_MAX;
ExSemaphoreType->TotalObjects = 0; ExSemaphoreObjectType->TotalObjects = 0;
ExSemaphoreType->TotalHandles = 0; ExSemaphoreObjectType->TotalHandles = 0;
ExSemaphoreType->PagedPoolCharge = 0; ExSemaphoreObjectType->PagedPoolCharge = 0;
ExSemaphoreType->NonpagedPoolCharge = sizeof(KSEMAPHORE); ExSemaphoreObjectType->NonpagedPoolCharge = sizeof(KSEMAPHORE);
ExSemaphoreType->Mapping = &ExSemaphoreMapping; ExSemaphoreObjectType->Mapping = &ExSemaphoreMapping;
ExSemaphoreType->Dump = NULL; ExSemaphoreObjectType->Dump = NULL;
ExSemaphoreType->Open = NULL; ExSemaphoreObjectType->Open = NULL;
ExSemaphoreType->Close = NULL; ExSemaphoreObjectType->Close = NULL;
ExSemaphoreType->Delete = NULL; ExSemaphoreObjectType->Delete = NULL;
ExSemaphoreType->Parse = NULL; ExSemaphoreObjectType->Parse = NULL;
ExSemaphoreType->Security = NULL; ExSemaphoreObjectType->Security = NULL;
ExSemaphoreType->QueryName = NULL; ExSemaphoreObjectType->QueryName = NULL;
ExSemaphoreType->OkayToClose = NULL; ExSemaphoreObjectType->OkayToClose = NULL;
ExSemaphoreType->Create = NtpCreateSemaphore; ExSemaphoreObjectType->Create = NtpCreateSemaphore;
ExSemaphoreType->DuplicationNotify = NULL; ExSemaphoreObjectType->DuplicationNotify = NULL;
ObpCreateTypeObject(ExSemaphoreType); ObpCreateTypeObject(ExSemaphoreObjectType);
} }
NTSTATUS STDCALL NTSTATUS STDCALL
@ -84,7 +84,7 @@ NtCreateSemaphore(OUT PHANDLE SemaphoreHandle,
NTSTATUS Status; NTSTATUS Status;
Status = ObCreateObject(ExGetPreviousMode(), Status = ObCreateObject(ExGetPreviousMode(),
ExSemaphoreType, ExSemaphoreObjectType,
ObjectAttributes, ObjectAttributes,
ExGetPreviousMode(), ExGetPreviousMode(),
NULL, NULL,
@ -122,7 +122,7 @@ NtOpenSemaphore(IN HANDLE SemaphoreHandle,
NTSTATUS Status; NTSTATUS Status;
Status = ObOpenObjectByName(ObjectAttributes, Status = ObOpenObjectByName(ObjectAttributes,
ExSemaphoreType, ExSemaphoreObjectType,
NULL, NULL,
UserMode, UserMode,
DesiredAccess, DesiredAccess,
@ -154,7 +154,7 @@ NtQuerySemaphore(IN HANDLE SemaphoreHandle,
Status = ObReferenceObjectByHandle(SemaphoreHandle, Status = ObReferenceObjectByHandle(SemaphoreHandle,
SEMAPHORE_QUERY_STATE, SEMAPHORE_QUERY_STATE,
ExSemaphoreType, ExSemaphoreObjectType,
UserMode, UserMode,
(PVOID*)&Semaphore, (PVOID*)&Semaphore,
NULL); NULL);
@ -182,7 +182,7 @@ NtReleaseSemaphore(IN HANDLE SemaphoreHandle,
Status = ObReferenceObjectByHandle(SemaphoreHandle, Status = ObReferenceObjectByHandle(SemaphoreHandle,
SEMAPHORE_MODIFY_STATE, SEMAPHORE_MODIFY_STATE,
ExSemaphoreType, ExSemaphoreObjectType,
UserMode, UserMode,
(PVOID*)&Semaphore, (PVOID*)&Semaphore,
NULL); NULL);

View file

@ -1,4 +1,4 @@
; $Id: ntoskrnl.def,v 1.205 2004/12/21 04:05:18 royce Exp $ ; $Id: ntoskrnl.def,v 1.206 2004/12/26 17:48:19 navaraf Exp $
; ;
; reactos/ntoskrnl/ntoskrnl.def ; reactos/ntoskrnl/ntoskrnl.def
; ;
@ -142,6 +142,7 @@ ExReleaseResourceForThreadLite@8
ExRosDumpPagedPoolByTag@4 ExRosDumpPagedPoolByTag@4
ExRosQueryPoolTag@4 ExRosQueryPoolTag@4
@ExRundownCompleted@4 @ExRundownCompleted@4
ExSemaphoreObjectType DATA
ExSetResourceOwnerPointer@8 ExSetResourceOwnerPointer@8
ExSetTimerResolution@8 ExSetTimerResolution@8
ExSystemExceptionFilter@0 ExSystemExceptionFilter@0