mirror of
https://github.com/reactos/reactos.git
synced 2025-02-24 17:34:57 +00:00
- Export ExSemaphoreObjectType.
svn path=/trunk/; revision=12345
This commit is contained in:
parent
cbfd8c1020
commit
11d39be5b5
3 changed files with 31 additions and 30 deletions
|
@ -29,7 +29,7 @@ static KSPIN_LOCK DispatcherDatabaseLock;
|
|||
#define KeDispatcherObjectWakeAll(hdr) KeDispatcherObjectWakeOneOrAll(hdr, TRUE)
|
||||
|
||||
extern POBJECT_TYPE EXPORTED ExMutantObjectType;
|
||||
extern POBJECT_TYPE EXPORTED ExSemaphoreType;
|
||||
extern POBJECT_TYPE EXPORTED ExSemaphoreObjectType;
|
||||
extern POBJECT_TYPE EXPORTED ExTimerType;
|
||||
|
||||
/* FUNCTIONS *****************************************************************/
|
||||
|
@ -453,7 +453,7 @@ KiIsObjectWaitable(PVOID Object)
|
|||
if (Header->ObjectType == ExEventObjectType ||
|
||||
Header->ObjectType == ExIoCompletionType ||
|
||||
Header->ObjectType == ExMutantObjectType ||
|
||||
Header->ObjectType == ExSemaphoreType ||
|
||||
Header->ObjectType == ExSemaphoreObjectType ||
|
||||
Header->ObjectType == ExTimerType ||
|
||||
Header->ObjectType == PsProcessType ||
|
||||
Header->ObjectType == PsThreadType ||
|
||||
|
|
|
@ -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
|
||||
* PROJECT: ReactOS kernel
|
||||
|
@ -17,7 +17,7 @@
|
|||
|
||||
/* GLOBALS ******************************************************************/
|
||||
|
||||
POBJECT_TYPE ExSemaphoreType;
|
||||
POBJECT_TYPE ExSemaphoreObjectType;
|
||||
|
||||
static GENERIC_MAPPING ExSemaphoreMapping = {
|
||||
STANDARD_RIGHTS_READ | SEMAPHORE_QUERY_STATE,
|
||||
|
@ -47,30 +47,30 @@ NtpCreateSemaphore(PVOID ObjectBody,
|
|||
VOID INIT_FUNCTION
|
||||
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');
|
||||
ExSemaphoreType->MaxObjects = ULONG_MAX;
|
||||
ExSemaphoreType->MaxHandles = ULONG_MAX;
|
||||
ExSemaphoreType->TotalObjects = 0;
|
||||
ExSemaphoreType->TotalHandles = 0;
|
||||
ExSemaphoreType->PagedPoolCharge = 0;
|
||||
ExSemaphoreType->NonpagedPoolCharge = sizeof(KSEMAPHORE);
|
||||
ExSemaphoreType->Mapping = &ExSemaphoreMapping;
|
||||
ExSemaphoreType->Dump = NULL;
|
||||
ExSemaphoreType->Open = NULL;
|
||||
ExSemaphoreType->Close = NULL;
|
||||
ExSemaphoreType->Delete = NULL;
|
||||
ExSemaphoreType->Parse = NULL;
|
||||
ExSemaphoreType->Security = NULL;
|
||||
ExSemaphoreType->QueryName = NULL;
|
||||
ExSemaphoreType->OkayToClose = NULL;
|
||||
ExSemaphoreType->Create = NtpCreateSemaphore;
|
||||
ExSemaphoreType->DuplicationNotify = NULL;
|
||||
ExSemaphoreObjectType->Tag = TAG('S', 'E', 'M', 'T');
|
||||
ExSemaphoreObjectType->MaxObjects = ULONG_MAX;
|
||||
ExSemaphoreObjectType->MaxHandles = ULONG_MAX;
|
||||
ExSemaphoreObjectType->TotalObjects = 0;
|
||||
ExSemaphoreObjectType->TotalHandles = 0;
|
||||
ExSemaphoreObjectType->PagedPoolCharge = 0;
|
||||
ExSemaphoreObjectType->NonpagedPoolCharge = sizeof(KSEMAPHORE);
|
||||
ExSemaphoreObjectType->Mapping = &ExSemaphoreMapping;
|
||||
ExSemaphoreObjectType->Dump = NULL;
|
||||
ExSemaphoreObjectType->Open = NULL;
|
||||
ExSemaphoreObjectType->Close = NULL;
|
||||
ExSemaphoreObjectType->Delete = NULL;
|
||||
ExSemaphoreObjectType->Parse = NULL;
|
||||
ExSemaphoreObjectType->Security = NULL;
|
||||
ExSemaphoreObjectType->QueryName = NULL;
|
||||
ExSemaphoreObjectType->OkayToClose = NULL;
|
||||
ExSemaphoreObjectType->Create = NtpCreateSemaphore;
|
||||
ExSemaphoreObjectType->DuplicationNotify = NULL;
|
||||
|
||||
ObpCreateTypeObject(ExSemaphoreType);
|
||||
ObpCreateTypeObject(ExSemaphoreObjectType);
|
||||
}
|
||||
|
||||
NTSTATUS STDCALL
|
||||
|
@ -84,7 +84,7 @@ NtCreateSemaphore(OUT PHANDLE SemaphoreHandle,
|
|||
NTSTATUS Status;
|
||||
|
||||
Status = ObCreateObject(ExGetPreviousMode(),
|
||||
ExSemaphoreType,
|
||||
ExSemaphoreObjectType,
|
||||
ObjectAttributes,
|
||||
ExGetPreviousMode(),
|
||||
NULL,
|
||||
|
@ -122,7 +122,7 @@ NtOpenSemaphore(IN HANDLE SemaphoreHandle,
|
|||
NTSTATUS Status;
|
||||
|
||||
Status = ObOpenObjectByName(ObjectAttributes,
|
||||
ExSemaphoreType,
|
||||
ExSemaphoreObjectType,
|
||||
NULL,
|
||||
UserMode,
|
||||
DesiredAccess,
|
||||
|
@ -154,7 +154,7 @@ NtQuerySemaphore(IN HANDLE SemaphoreHandle,
|
|||
|
||||
Status = ObReferenceObjectByHandle(SemaphoreHandle,
|
||||
SEMAPHORE_QUERY_STATE,
|
||||
ExSemaphoreType,
|
||||
ExSemaphoreObjectType,
|
||||
UserMode,
|
||||
(PVOID*)&Semaphore,
|
||||
NULL);
|
||||
|
@ -182,7 +182,7 @@ NtReleaseSemaphore(IN HANDLE SemaphoreHandle,
|
|||
|
||||
Status = ObReferenceObjectByHandle(SemaphoreHandle,
|
||||
SEMAPHORE_MODIFY_STATE,
|
||||
ExSemaphoreType,
|
||||
ExSemaphoreObjectType,
|
||||
UserMode,
|
||||
(PVOID*)&Semaphore,
|
||||
NULL);
|
||||
|
|
|
@ -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
|
||||
;
|
||||
|
@ -142,6 +142,7 @@ ExReleaseResourceForThreadLite@8
|
|||
ExRosDumpPagedPoolByTag@4
|
||||
ExRosQueryPoolTag@4
|
||||
@ExRundownCompleted@4
|
||||
ExSemaphoreObjectType DATA
|
||||
ExSetResourceOwnerPointer@8
|
||||
ExSetTimerResolution@8
|
||||
ExSystemExceptionFilter@0
|
||||
|
|
Loading…
Reference in a new issue