122 lines
3.1 KiB
C
122 lines
3.1 KiB
C
|
/*
|
||
|
* Process synchronisation
|
||
|
*/
|
||
|
|
||
|
#include <stdlib.h>
|
||
|
#include <string.h>
|
||
|
#include <time.h>
|
||
|
#include "debugstr.h"
|
||
|
#include "debug.h"
|
||
|
|
||
|
#include "ntddk.h"
|
||
|
|
||
|
/*
|
||
|
* Semaphore
|
||
|
*/
|
||
|
|
||
|
/******************************************************************************
|
||
|
* NtCreateSemaphore [NTDLL]
|
||
|
*/
|
||
|
NTSTATUS WINAPI NtCreateSemaphore(
|
||
|
OUT PHANDLE SemaphoreHandle,
|
||
|
IN ACCESS_MASK DesiredAccess,
|
||
|
IN POBJECT_ATTRIBUTES ObjectAttributes OPTIONAL,
|
||
|
IN ULONG InitialCount,
|
||
|
IN ULONG MaximumCount)
|
||
|
{
|
||
|
FIXME(ntdll,"(%p,0x%08lx,%p(%s),0x%08lx,0x%08lx) stub!\n",
|
||
|
SemaphoreHandle, DesiredAccess, ObjectAttributes,
|
||
|
ObjectAttributes ? debugstr_w(ObjectAttributes->ObjectName->Buffer) : NULL,
|
||
|
InitialCount, MaximumCount);
|
||
|
return 0;
|
||
|
}
|
||
|
|
||
|
/******************************************************************************
|
||
|
* NtOpenSemaphore [NTDLL]
|
||
|
*/
|
||
|
NTSTATUS WINAPI NtOpenSemaphore(
|
||
|
IN HANDLE SemaphoreHandle,
|
||
|
IN ACCESS_MASK DesiredAcces,
|
||
|
IN POBJECT_ATTRIBUTES ObjectAttributes)
|
||
|
{
|
||
|
FIXME(ntdll,"(0x%08x,0x%08lx,%p(%s)) stub!\n",
|
||
|
SemaphoreHandle, DesiredAcces, ObjectAttributes,
|
||
|
ObjectAttributes ? debugstr_w(ObjectAttributes->ObjectName->Buffer) : NULL);
|
||
|
return 0;
|
||
|
}
|
||
|
|
||
|
/******************************************************************************
|
||
|
* NtQuerySemaphore [NTDLL]
|
||
|
*/
|
||
|
NTSTATUS WINAPI NtQuerySemaphore(
|
||
|
HANDLE SemaphoreHandle,
|
||
|
PVOID SemaphoreInformationClass,
|
||
|
OUT PVOID SemaphoreInformation,
|
||
|
ULONG Length,
|
||
|
PULONG ReturnLength)
|
||
|
{
|
||
|
FIXME(ntdll,"(0x%08x,%p,%p,0x%08lx,%p) stub!\n",
|
||
|
SemaphoreHandle, SemaphoreInformationClass, SemaphoreInformation, Length, ReturnLength);
|
||
|
return 0;
|
||
|
}
|
||
|
/******************************************************************************
|
||
|
* NtReleaseSemaphore [NTDLL]
|
||
|
*/
|
||
|
NTSTATUS WINAPI NtReleaseSemaphore(
|
||
|
IN HANDLE SemaphoreHandle,
|
||
|
IN ULONG ReleaseCount,
|
||
|
IN PULONG PreviousCount)
|
||
|
{
|
||
|
FIXME(ntdll,"(0x%08x,0x%08lx,%p,) stub!\n",
|
||
|
SemaphoreHandle, ReleaseCount, PreviousCount);
|
||
|
return 0;
|
||
|
}
|
||
|
|
||
|
/*
|
||
|
* Event
|
||
|
*/
|
||
|
|
||
|
/**************************************************************************
|
||
|
* NtCreateEvent [NTDLL.71]
|
||
|
*/
|
||
|
NTSTATUS WINAPI NtCreateEvent(
|
||
|
OUT PHANDLE EventHandle,
|
||
|
IN ACCESS_MASK DesiredAccess,
|
||
|
IN POBJECT_ATTRIBUTES ObjectAttributes,
|
||
|
IN BOOLEAN ManualReset,
|
||
|
IN BOOLEAN InitialState)
|
||
|
{
|
||
|
FIXME(ntdll,"(%p,0x%08lx,%p(%s),%08x,%08x): empty stub\n",
|
||
|
EventHandle,DesiredAccess,ObjectAttributes,
|
||
|
ObjectAttributes ? debugstr_w(ObjectAttributes->ObjectName->Buffer) : NULL,
|
||
|
ManualReset,InitialState);
|
||
|
return 0;
|
||
|
}
|
||
|
|
||
|
/******************************************************************************
|
||
|
* NtOpenEvent [NTDLL]
|
||
|
*/
|
||
|
NTSTATUS WINAPI NtOpenEvent(
|
||
|
OUT PHANDLE EventHandle,
|
||
|
IN ACCESS_MASK DesiredAccess,
|
||
|
IN POBJECT_ATTRIBUTES ObjectAttributes)
|
||
|
{
|
||
|
FIXME(ntdll,"(%p,0x%08lx,%p(%s)),stub!\n",
|
||
|
EventHandle,DesiredAccess,ObjectAttributes,
|
||
|
ObjectAttributes ? debugstr_w(ObjectAttributes->ObjectName->Buffer) : NULL);
|
||
|
return 0;
|
||
|
}
|
||
|
|
||
|
/******************************************************************************
|
||
|
* NtSetEvent [NTDLL]
|
||
|
*/
|
||
|
NTSTATUS WINAPI NtSetEvent(
|
||
|
IN HANDLE EventHandle,
|
||
|
PULONG NumberOfThreadsReleased)
|
||
|
{
|
||
|
FIXME(ntdll,"(0x%08x,%p)\n",
|
||
|
EventHandle, NumberOfThreadsReleased);
|
||
|
return 0;
|
||
|
}
|
||
|
|