mirror of
https://github.com/reactos/reactos.git
synced 2025-08-05 06:33:01 +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)
|
#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 ||
|
||||||
|
|
|
@ -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);
|
||||||
|
|
|
@ -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
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue