2 * COPYRIGHT: See COPYING in the top level directory
3 * PROJECT: ReactOS kernel
4 * FILE: ntoskrnl/nt/ntsem.c
5 * PURPOSE: Synchronization primitives
6 * PROGRAMMER: David Welch (welch@mcmail.com)
11 /* INCLUDES *****************************************************************/
13 #include <ddk/ntddk.h>
15 #include <internal/debug.h>
17 /* FUNCTIONS *****************************************************************/
19 NTSTATUS STDCALL
NtCreateSemaphore(OUT PHANDLE SemaphoreHandle
,
20 IN ACCESS_MASK DesiredAccess
,
21 IN POBJECT_ATTRIBUTES ObjectAttributes OPTIONAL
,
22 IN ULONG InitialCount
,
23 IN ULONG MaximumCount
)
25 return(ZwCreateSemaphore(SemaphoreHandle
,
32 NTSTATUS STDCALL
ZwCreateSemaphore(OUT PHANDLE SemaphoreHandle
,
33 IN ACCESS_MASK DesiredAccess
,
34 IN POBJECT_ATTRIBUTES ObjectAttributes OPTIONAL
,
35 IN ULONG InitialCount
,
36 IN ULONG MaximumCount
)
42 NTSTATUS STDCALL
NtOpenSemaphore(IN HANDLE SemaphoreHandle
,
43 IN ACCESS_MASK DesiredAccess
,
44 IN POBJECT_ATTRIBUTES ObjectAttributes
)
46 return(ZwOpenSemaphore(SemaphoreHandle
,
51 NTSTATUS STDCALL
ZwOpenSemaphore(IN HANDLE SemaphoreHandle
,
52 IN ACCESS_MASK DesiredAccess
,
53 IN POBJECT_ATTRIBUTES ObjectAttributes
)
58 NTSTATUS STDCALL
NtQuerySemaphore(HANDLE SemaphoreHandle
,
59 CINT SemaphoreInformationClass
,
60 OUT PVOID SemaphoreInformation
,
64 return(ZwQuerySemaphore(SemaphoreHandle
,
65 SemaphoreInformationClass
,
71 NTSTATUS STDCALL
ZwQuerySemaphore(HANDLE SemaphoreHandle
,
72 CINT SemaphoreInformationClass
,
73 OUT PVOID SemaphoreInformation
,
80 NTSTATUS STDCALL
NtReleaseSemaphore(IN HANDLE SemaphoreHandle
,
81 IN ULONG ReleaseCount
,
82 IN PULONG PreviousCount
)
84 return(ZwReleaseSemaphore(SemaphoreHandle
,
89 NTSTATUS STDCALL
ZwReleaseSemaphore(IN HANDLE SemaphoreHandle
,
90 IN ULONG ReleaseCount
,
91 IN PULONG PreviousCount
)