[HEADERS]
[reactos.git] / reactos / include / ndk / exfuncs.h
index 166a619..0d40a3f 100644 (file)
-/*++ NDK Version: 0095\r
-\r
-Copyright (c) Alex Ionescu.  All rights reserved.\r
-\r
-Header Name:\r
-\r
-    exfuncs.h\r
-\r
-Abstract:\r
-\r
-    Function definitions for the Executive.\r
-\r
-Author:\r
-\r
-    Alex Ionescu (alex.ionescu@reactos.com)   06-Oct-2004\r
-\r
---*/\r
-\r
-#ifndef _EXFUNCS_H\r
-#define _EXFUNCS_H\r
-\r
-//\r
-// Dependencies\r
-//\r
-#include <umtypes.h>\r
-#include <pstypes.h>\r
-#include <extypes.h>\r
-\r
-//\r
-// Don't include WMI headers just for one define\r
-//\r
-typedef struct _EVENT_TRACE_HEADER *PEVENT_TRACE_HEADER;\r
-\r
-#ifndef NTOS_MODE_USER\r
-//\r
-// Fast Mutex functions\r
-//\r
-VOID\r
-FASTCALL\r
-ExEnterCriticalRegionAndAcquireFastMutexUnsafe(\r
-    PFAST_MUTEX FastMutex\r
-);\r
-\r
-VOID\r
-FASTCALL\r
-ExReleaseFastMutexUnsafeAndLeaveCriticalRegion(\r
-    PFAST_MUTEX FastMutex\r
-);\r
-\r
-//\r
-// Pushlock functions\r
-//\r
-VOID\r
-FASTCALL\r
-ExfAcquirePushLockExclusive(\r
-    PEX_PUSH_LOCK PushLock\r
-);\r
-\r
-VOID\r
-FASTCALL\r
-ExfAcquirePushLockShared(\r
-    PEX_PUSH_LOCK PushLock\r
-);\r
-\r
-VOID\r
-FASTCALL\r
-ExfReleasePushLock(\r
-    PEX_PUSH_LOCK PushLock\r
-);\r
-\r
-VOID\r
-FASTCALL\r
-ExfReleasePushLockExclusive(\r
-    PEX_PUSH_LOCK PushLock\r
-);\r
-\r
-VOID\r
-FASTCALL\r
-ExfReleasePushLockShared(\r
-    PEX_PUSH_LOCK PushLock\r
-);\r
-\r
-VOID\r
-FASTCALL\r
-ExfTryToWakePushLock(\r
-    PEX_PUSH_LOCK PushLock\r
-);\r
-\r
-VOID\r
-FASTCALL\r
-ExfUnblockPushLock(\r
-    PEX_PUSH_LOCK PushLock,\r
-    PVOID CurrentWaitBlock\r
-);\r
-\r
-#endif\r
-\r
-//\r
-// Native Calls\r
-//\r
-NTSTATUS\r
-NTAPI\r
-NtAddAtom(\r
-    IN PWSTR AtomName,\r
-    IN ULONG AtomNameLength,\r
-    IN OUT PRTL_ATOM Atom\r
-);\r
-\r
-NTSTATUS\r
-NTAPI\r
-NtCancelTimer(\r
-    IN HANDLE TimerHandle,\r
-    OUT PBOOLEAN CurrentState OPTIONAL\r
-);\r
-\r
-NTSTATUS\r
-NTAPI\r
-NtClearEvent(\r
-    IN HANDLE EventHandle\r
-);\r
-\r
-NTSTATUS\r
-NTAPI\r
-NtCreateEvent(\r
-    OUT PHANDLE EventHandle,\r
-    IN ACCESS_MASK DesiredAccess,\r
-    IN POBJECT_ATTRIBUTES ObjectAttributes,\r
-    IN EVENT_TYPE EventType,\r
-    IN BOOLEAN InitialState\r
-);\r
-\r
-NTSTATUS\r
-NTAPI\r
-NtCreateEventPair(\r
-    OUT PHANDLE EventPairHandle,\r
-    IN ACCESS_MASK DesiredAccess,\r
-    IN POBJECT_ATTRIBUTES ObjectAttributes\r
-);\r
-\r
-NTSTATUS\r
-NTAPI\r
-NtCreateMutant(\r
-    OUT PHANDLE MutantHandle,\r
-    IN ACCESS_MASK DesiredAccess,\r
-    IN POBJECT_ATTRIBUTES ObjectAttributes,\r
-    IN BOOLEAN InitialOwner\r
-);\r
-\r
-NTSTATUS\r
-NTAPI\r
-NtCreateSemaphore(\r
-    OUT PHANDLE SemaphoreHandle,\r
-    IN ACCESS_MASK DesiredAccess,\r
-    IN POBJECT_ATTRIBUTES ObjectAttributes OPTIONAL,\r
-    IN LONG InitialCount,\r
-    IN LONG MaximumCount\r
-);\r
-\r
-NTSTATUS\r
-NTAPI\r
-NtCreateTimer(\r
-    OUT PHANDLE TimerHandle,\r
-    IN ACCESS_MASK DesiredAccess,\r
-    IN POBJECT_ATTRIBUTES ObjectAttributes OPTIONAL,\r
-    IN TIMER_TYPE TimerType\r
-);\r
-\r
-NTSTATUS\r
-NTAPI\r
-NtDeleteAtom(\r
-    IN RTL_ATOM Atom\r
-);\r
-\r
-NTSTATUS\r
-NTAPI\r
-NtDisplayString(\r
-    IN PUNICODE_STRING DisplayString\r
-);\r
-\r
-NTSTATUS\r
-NTAPI\r
-NtFindAtom(\r
-    IN  PWSTR AtomName,\r
-    IN  ULONG AtomNameLength,\r
-    OUT PRTL_ATOM Atom OPTIONAL\r
-);\r
-\r
-NTSTATUS\r
-NTAPI\r
-NtOpenEvent(\r
-    OUT PHANDLE EventHandle,\r
-    IN ACCESS_MASK DesiredAccess,\r
-    IN POBJECT_ATTRIBUTES ObjectAttributes\r
-);\r
-\r
-NTSTATUS\r
-NTAPI\r
-NtOpenEventPair(\r
-    OUT PHANDLE EventPairHandle,\r
-    IN ACCESS_MASK DesiredAccess,\r
-    IN POBJECT_ATTRIBUTES ObjectAttributes\r
-);\r
-\r
-NTSTATUS\r
-NTAPI\r
-NtOpenMutant(\r
-    OUT PHANDLE MutantHandle,\r
-    IN ACCESS_MASK DesiredAccess,\r
-    IN POBJECT_ATTRIBUTES ObjectAttributes\r
-);\r
-\r
-NTSTATUS\r
-NTAPI\r
-NtOpenSemaphore(\r
-    OUT PHANDLE SemaphoreHandle,\r
-    IN ACCESS_MASK DesiredAcces,\r
-    IN POBJECT_ATTRIBUTES ObjectAttributes\r
-);\r
-\r
-NTSTATUS\r
-NTAPI\r
-NtOpenTimer(\r
-    OUT PHANDLE TimerHandle,\r
-    IN ACCESS_MASK DesiredAccess,\r
-    IN POBJECT_ATTRIBUTES ObjectAttributes\r
-);\r
-\r
-NTSTATUS\r
-NTAPI\r
-NtPulseEvent(\r
-    IN HANDLE EventHandle,\r
-    IN PLONG PulseCount OPTIONAL\r
-);\r
-\r
-NTSTATUS\r
-NTAPI\r
-NtQueryDefaultLocale(\r
-    IN BOOLEAN UserProfile,\r
-    OUT PLCID DefaultLocaleId\r
-);\r
-\r
-NTSTATUS\r
-NTAPI\r
-NtQueryDefaultUILanguage(\r
-    PLANGID LanguageId\r
-);\r
-\r
-NTSTATUS\r
-NTAPI\r
-NtQueryEvent(\r
-    IN HANDLE EventHandle,\r
-    IN EVENT_INFORMATION_CLASS EventInformationClass,\r
-    OUT PVOID EventInformation,\r
-    IN ULONG EventInformationLength,\r
-    OUT PULONG ReturnLength\r
-);\r
-\r
-NTSTATUS\r
-NTAPI\r
-NtQueryInformationAtom(\r
-    IN  RTL_ATOM Atom,\r
-    IN  ATOM_INFORMATION_CLASS AtomInformationClass,\r
-    OUT PVOID AtomInformation,\r
-    IN  ULONG AtomInformationLength,\r
-    OUT PULONG ReturnLength OPTIONAL\r
-);\r
-\r
-NTSTATUS\r
-NTAPI\r
-NtQueryInstallUILanguage(\r
-    PLANGID LanguageId\r
-);\r
-\r
-NTSTATUS\r
-NTAPI\r
-NtQueryMutant(\r
-    IN HANDLE MutantHandle,\r
-    IN MUTANT_INFORMATION_CLASS MutantInformationClass,\r
-    OUT PVOID MutantInformation,\r
-    IN ULONG Length,\r
-    OUT PULONG ResultLength\r
-);\r
-\r
-NTSTATUS\r
-NTAPI\r
-NtQuerySemaphore(\r
-    IN HANDLE SemaphoreHandle,\r
-    IN SEMAPHORE_INFORMATION_CLASS SemaphoreInformationClass,\r
-    OUT PVOID SemaphoreInformation,\r
-    IN ULONG Length,\r
-    OUT PULONG ReturnLength\r
-);\r
-\r
-NTSTATUS\r
-NTAPI\r
-NtQuerySystemEnvironmentValue(\r
-    IN PUNICODE_STRING Name,\r
-    OUT PWSTR Value,\r
-    ULONG Length,\r
-    PULONG ReturnLength\r
-);\r
-\r
-NTSTATUS\r
-NTAPI\r
-NtQuerySystemInformation(\r
-    IN SYSTEM_INFORMATION_CLASS SystemInformationClass,\r
-    OUT PVOID SystemInformation,\r
-    IN ULONG Length,\r
-    OUT PULONG ResultLength\r
-);\r
-\r
-NTSTATUS\r
-NTAPI\r
-NtQueryTimer(\r
-    IN HANDLE TimerHandle,\r
-    IN TIMER_INFORMATION_CLASS TimerInformationClass,\r
-    OUT PVOID TimerInformation,\r
-    IN ULONG Length,\r
-    OUT PULONG ResultLength\r
-);\r
-\r
-NTSTATUS\r
-NTAPI\r
-NtRaiseHardError(\r
-    IN NTSTATUS ErrorStatus,\r
-    IN ULONG NumberOfParameters,\r
-    IN ULONG UnicodeStringParameterMask,\r
-    IN PULONG_PTR Parameters,\r
-    IN ULONG ValidResponseOptions,\r
-    OUT PULONG Response\r
-);\r
-\r
-NTSTATUS\r
-NTAPI\r
-NtReleaseMutant(\r
-    IN HANDLE MutantHandle,\r
-    IN PLONG ReleaseCount OPTIONAL\r
-);\r
-\r
-NTSTATUS\r
-NTAPI\r
-NtReleaseSemaphore(\r
-    IN HANDLE SemaphoreHandle,\r
-    IN LONG ReleaseCount,\r
-    OUT PLONG PreviousCount\r
-);\r
-\r
-NTSTATUS\r
-NTAPI\r
-NtResetEvent(\r
-    IN HANDLE EventHandle,\r
-    OUT PLONG NumberOfWaitingThreads OPTIONAL\r
-);\r
-\r
-NTSTATUS\r
-NTAPI\r
-NtSetDefaultLocale(\r
-    IN BOOLEAN UserProfile,\r
-    IN LCID DefaultLocaleId\r
-);\r
-\r
-NTSTATUS\r
-NTAPI\r
-NtSetDefaultUILanguage(\r
-    LANGID LanguageId\r
-);\r
-\r
-NTSTATUS\r
-NTAPI\r
-NtSetDefaultHardErrorPort(\r
-    IN HANDLE PortHandle\r
-);\r
-\r
-NTSTATUS\r
-NTAPI\r
-NtSetEvent(\r
-    IN HANDLE EventHandle,\r
-    OUT PLONG PreviousState  OPTIONAL\r
-);\r
-\r
-NTSTATUS\r
-NTAPI\r
-NtSetHighEventPair(\r
-    IN HANDLE EventPairHandle\r
-);\r
-\r
-NTSTATUS\r
-NTAPI\r
-NtSetHighWaitLowEventPair(\r
-    IN HANDLE EventPairHandle\r
-);\r
-\r
-NTSTATUS\r
-NTAPI\r
-NtSetLowEventPair(\r
-    HANDLE EventPair\r
-);\r
-\r
-NTSTATUS\r
-NTAPI\r
-NtSetLowWaitHighEventPair(\r
-    HANDLE EventPair\r
-);\r
-\r
-NTSTATUS\r
-NTAPI\r
-NtSetSystemEnvironmentValue(\r
-    IN PUNICODE_STRING VariableName,\r
-    IN PUNICODE_STRING Value\r
-);\r
-\r
-NTSTATUS\r
-NTAPI\r
-NtSetSystemInformation(\r
-    IN SYSTEM_INFORMATION_CLASS SystemInformationClass,\r
-    IN PVOID SystemInformation,\r
-    IN ULONG SystemInformationLength\r
-);\r
-\r
-NTSTATUS\r
-NTAPI\r
-NtSetTimer(\r
-    IN HANDLE TimerHandle,\r
-    IN PLARGE_INTEGER DueTime,\r
-    IN PTIMER_APC_ROUTINE TimerApcRoutine,\r
-    IN PVOID TimerContext,\r
-    IN BOOLEAN WakeTimer,\r
-    IN LONG Period OPTIONAL,\r
-    OUT PBOOLEAN PreviousState OPTIONAL\r
-);\r
-\r
-NTSTATUS\r
-NTAPI\r
-NtSetUuidSeed(\r
-    IN PUCHAR UuidSeed\r
-);\r
-\r
-NTSTATUS\r
-NTAPI\r
-NtShutdownSystem(\r
-    IN SHUTDOWN_ACTION Action\r
-);\r
-\r
-NTSTATUS\r
-NTAPI\r
-NtWaitHighEventPair(\r
-    IN HANDLE EventPairHandle\r
-);\r
-\r
-NTSTATUS\r
-NTAPI\r
-NtWaitLowEventPair(\r
-    IN HANDLE EventPairHandle\r
-);\r
-\r
-NTSTATUS\r
-NTAPI\r
-NtTraceEvent(\r
-    IN ULONG TraceHandle,\r
-    IN ULONG Flags,\r
-    IN ULONG TraceHeaderLength,\r
-    IN PEVENT_TRACE_HEADER TraceHeader\r
-);\r
-\r
-NTSTATUS\r
-NTAPI\r
-ZwAddAtom(\r
-    IN PWSTR AtomName,\r
-    IN ULONG AtomNameLength,\r
-    IN OUT PRTL_ATOM Atom\r
-);\r
-\r
-#ifdef NTOS_MODE_USER\r
-NTSTATUS\r
-NTAPI\r
-ZwCancelTimer(\r
-    IN HANDLE TimerHandle,\r
-    OUT PBOOLEAN CurrentState OPTIONAL\r
-);\r
-#endif\r
-\r
-NTSTATUS\r
-NTAPI\r
-ZwClearEvent(\r
-    IN HANDLE EventHandle\r
-);\r
-\r
-NTSYSAPI\r
-NTSTATUS\r
-NTAPI\r
-ZwCreateEvent(\r
-    OUT PHANDLE EventHandle,\r
-    IN ACCESS_MASK DesiredAccess,\r
-    IN POBJECT_ATTRIBUTES ObjectAttributes,\r
-    IN EVENT_TYPE EventType,\r
-    IN BOOLEAN InitialState\r
-);\r
-\r
-NTSTATUS\r
-NTAPI\r
-ZwCreateEventPair(\r
-    OUT PHANDLE EventPairHandle,\r
-    IN ACCESS_MASK DesiredAccess,\r
-    IN POBJECT_ATTRIBUTES ObjectAttributes\r
-);\r
-\r
-NTSTATUS\r
-NTAPI\r
-ZwCreateMutant(\r
-    OUT PHANDLE MutantHandle,\r
-    IN ACCESS_MASK DesiredAccess,\r
-    IN POBJECT_ATTRIBUTES ObjectAttributes,\r
-    IN BOOLEAN InitialOwner\r
-);\r
-\r
-NTSTATUS\r
-NTAPI\r
-ZwCreateSemaphore(\r
-    OUT PHANDLE SemaphoreHandle,\r
-    IN ACCESS_MASK DesiredAccess,\r
-    IN POBJECT_ATTRIBUTES ObjectAttributes OPTIONAL,\r
-    IN LONG InitialCount,\r
-    IN LONG MaximumCount\r
-);\r
-\r
-#ifdef NTOS_MODE_USER\r
-NTSTATUS\r
-NTAPI\r
-ZwCreateTimer(\r
-    OUT PHANDLE TimerHandle,\r
-    IN ACCESS_MASK DesiredAccess,\r
-    IN POBJECT_ATTRIBUTES ObjectAttributes OPTIONAL,\r
-    IN TIMER_TYPE TimerType\r
-);\r
-#endif\r
-\r
-NTSTATUS\r
-NTAPI\r
-ZwDeleteAtom(\r
-    IN RTL_ATOM Atom\r
-);\r
-\r
-NTSTATUS\r
-NTAPI\r
-ZwDisplayString(\r
-    IN PUNICODE_STRING DisplayString\r
-);\r
-\r
-NTSTATUS\r
-NTAPI\r
-ZwFindAtom(\r
-    IN  PWSTR AtomName,\r
-    IN  ULONG AtomNameLength,\r
-    OUT PRTL_ATOM Atom OPTIONAL\r
-);\r
-\r
-NTSTATUS\r
-NTAPI\r
-ZwOpenEvent(\r
-    OUT PHANDLE EventHandle,\r
-    IN ACCESS_MASK DesiredAccess,\r
-    IN POBJECT_ATTRIBUTES ObjectAttributes\r
-);\r
-\r
-NTSTATUS\r
-NTAPI\r
-ZwOpenEventPair(\r
-    OUT PHANDLE EventPairHandle,\r
-    IN ACCESS_MASK DesiredAccess,\r
-    IN POBJECT_ATTRIBUTES ObjectAttributes\r
-);\r
-\r
-NTSTATUS\r
-NTAPI\r
-ZwOpenMutant(\r
-    OUT PHANDLE MutantHandle,\r
-    IN ACCESS_MASK DesiredAccess,\r
-    IN POBJECT_ATTRIBUTES ObjectAttributes\r
-);\r
-\r
-NTSTATUS\r
-NTAPI\r
-ZwOpenSemaphore(\r
-    OUT PHANDLE SemaphoreHandle,\r
-    IN ACCESS_MASK DesiredAcces,\r
-    IN POBJECT_ATTRIBUTES ObjectAttributes\r
-);\r
-\r
-#ifdef NTOS_MODE_USER\r
-NTSTATUS\r
-NTAPI\r
-ZwOpenTimer(\r
-    OUT PHANDLE TimerHandle,\r
-    IN ACCESS_MASK DesiredAccess,\r
-    IN POBJECT_ATTRIBUTES ObjectAttributes\r
-);\r
-#endif\r
-\r
-NTSTATUS\r
-NTAPI\r
-ZwPulseEvent(\r
-    IN HANDLE EventHandle,\r
-    IN PLONG PulseCount OPTIONAL\r
-);\r
-\r
-NTSTATUS\r
-NTAPI\r
-ZwQueryDefaultLocale(\r
-    IN BOOLEAN UserProfile,\r
-    OUT PLCID DefaultLocaleId\r
-);\r
-\r
-NTSTATUS\r
-NTAPI\r
-ZwQueryDefaultUILanguage(\r
-    PLANGID LanguageId\r
-);\r
-\r
-NTSTATUS\r
-NTAPI\r
-ZwQueryEvent(\r
-    IN HANDLE EventHandle,\r
-    IN EVENT_INFORMATION_CLASS EventInformationClass,\r
-    OUT PVOID EventInformation,\r
-    IN ULONG EventInformationLength,\r
-    OUT PULONG ReturnLength\r
-);\r
-\r
-NTSTATUS\r
-NTAPI\r
-ZwQueryInformationAtom(\r
-    IN  RTL_ATOM Atom,\r
-    IN  ATOM_INFORMATION_CLASS AtomInformationClass,\r
-    OUT PVOID AtomInformation,\r
-    IN  ULONG AtomInformationLength,\r
-    OUT PULONG ReturnLength OPTIONAL\r
-);\r
-\r
-NTSTATUS\r
-NTAPI\r
-ZwQueryInstallUILanguage(\r
-    PLANGID LanguageId\r
-);\r
-\r
-NTSTATUS\r
-NTAPI\r
-ZwQueryMutant(\r
-    IN HANDLE MutantHandle,\r
-    IN MUTANT_INFORMATION_CLASS MutantInformationClass,\r
-    OUT PVOID MutantInformation,\r
-    IN ULONG Length,\r
-    OUT PULONG ResultLength\r
-);\r
-\r
-NTSTATUS\r
-NTAPI\r
-ZwQuerySemaphore(\r
-    IN HANDLE SemaphoreHandle,\r
-    IN SEMAPHORE_INFORMATION_CLASS SemaphoreInformationClass,\r
-    OUT PVOID SemaphoreInformation,\r
-    IN ULONG Length,\r
-    OUT PULONG ReturnLength\r
-);\r
-\r
-NTSTATUS\r
-NTAPI\r
-ZwQuerySystemEnvironmentValue(\r
-    IN PUNICODE_STRING Name,\r
-    OUT PWSTR Value,\r
-    ULONG Length,\r
-    PULONG ReturnLength\r
-);\r
-\r
-NTSTATUS\r
-NTAPI\r
-ZwQuerySystemInformation(\r
-    IN SYSTEM_INFORMATION_CLASS SystemInformationClass,\r
-    OUT PVOID SystemInformation,\r
-    IN ULONG Length,\r
-    OUT PULONG ResultLength\r
-);\r
-\r
-NTSTATUS\r
-NTAPI\r
-ZwQueryTimer(\r
-    IN HANDLE TimerHandle,\r
-    IN TIMER_INFORMATION_CLASS TimerInformationClass,\r
-    OUT PVOID TimerInformation,\r
-    IN ULONG Length,\r
-    OUT PULONG ResultLength\r
-);\r
-\r
-NTSTATUS\r
-NTAPI\r
-ZwRaiseHardError(\r
-    IN NTSTATUS ErrorStatus,\r
-    IN ULONG NumberOfParameters,\r
-    IN ULONG UnicodeStringParameterMask,\r
-    IN PULONG_PTR Parameters,\r
-    IN ULONG ValidResponseOptions,\r
-    OUT PULONG Response\r
-);\r
-\r
-NTSTATUS\r
-NTAPI\r
-ZwReleaseMutant(\r
-    IN HANDLE MutantHandle,\r
-    IN PLONG ReleaseCount OPTIONAL\r
-);\r
-\r
-NTSTATUS\r
-NTAPI\r
-ZwReleaseSemaphore(\r
-    IN HANDLE SemaphoreHandle,\r
-    IN LONG ReleaseCount,\r
-    OUT PLONG PreviousCount\r
-);\r
-\r
-NTSTATUS\r
-NTAPI\r
-ZwResetEvent(\r
-    IN HANDLE EventHandle,\r
-    OUT PLONG NumberOfWaitingThreads OPTIONAL\r
-);\r
-\r
-NTSTATUS\r
-NTAPI\r
-ZwSetDefaultLocale(\r
-    IN BOOLEAN UserProfile,\r
-    IN LCID DefaultLocaleId\r
-);\r
-\r
-NTSTATUS\r
-NTAPI\r
-ZwSetDefaultUILanguage(\r
-    LANGID LanguageId\r
-);\r
-\r
-NTSTATUS\r
-NTAPI\r
-ZwSetDefaultHardErrorPort(\r
-    IN HANDLE PortHandle\r
-);\r
-\r
-NTSYSAPI\r
-NTSTATUS\r
-NTAPI\r
-ZwSetEvent(\r
-    IN HANDLE EventHandle,\r
-    OUT PLONG PreviousState  OPTIONAL\r
-);\r
-\r
-NTSTATUS\r
-NTAPI\r
-ZwSetHighEventPair(\r
-    IN HANDLE EventPairHandle\r
-);\r
-\r
-NTSTATUS\r
-NTAPI\r
-ZwSetHighWaitLowEventPair(\r
-    IN HANDLE EventPairHandle\r
-);\r
-\r
-NTSTATUS\r
-NTAPI\r
-ZwSetLowEventPair(\r
-    HANDLE EventPair\r
-);\r
-\r
-NTSTATUS\r
-NTAPI\r
-ZwSetLowWaitHighEventPair(\r
-    HANDLE EventPair\r
-);\r
-\r
-NTSTATUS\r
-NTAPI\r
-ZwSetSystemEnvironmentValue(\r
-    IN PUNICODE_STRING VariableName,\r
-    IN PUNICODE_STRING Value\r
-);\r
-\r
-NTSTATUS\r
-NTAPI\r
-ZwSetSystemInformation(\r
-    IN SYSTEM_INFORMATION_CLASS SystemInformationClass,\r
-    IN PVOID SystemInformation,\r
-    IN ULONG SystemInformationLength\r
-);\r
-\r
-#ifdef NTOS_MODE_USER\r
-NTSTATUS\r
-NTAPI\r
-ZwSetTimer(\r
-    IN HANDLE TimerHandle,\r
-    IN PLARGE_INTEGER DueTime,\r
-    IN PTIMER_APC_ROUTINE TimerApcRoutine,\r
-    IN PVOID TimerContext,\r
-    IN BOOLEAN WakeTimer,\r
-    IN LONG Period OPTIONAL,\r
-    OUT PBOOLEAN PreviousState OPTIONAL\r
-);\r
-#endif\r
-\r
-NTSTATUS\r
-NTAPI\r
-ZwSetUuidSeed(\r
-    IN PUCHAR UuidSeed\r
-);\r
-\r
-NTSTATUS\r
-NTAPI\r
-ZwShutdownSystem(\r
-    IN SHUTDOWN_ACTION Action\r
-);\r
-\r
-NTSTATUS\r
-NTAPI\r
-ZwWaitHighEventPair(\r
-    IN HANDLE EventPairHandle\r
-);\r
-\r
-NTSTATUS\r
-NTAPI\r
-ZwWaitLowEventPair(\r
-    IN HANDLE EventPairHandle\r
-);\r
-\r
-NTSTATUS\r
-NTAPI\r
-ZwTraceEvent(\r
-    IN ULONG TraceHandle,\r
-    IN ULONG Flags,\r
-    IN ULONG TraceHeaderLength,\r
-    IN PEVENT_TRACE_HEADER TraceHeader\r
-);\r
-#endif\r
+/*++ NDK Version: 0098
+
+Copyright (c) Alex Ionescu.  All rights reserved.
+
+Header Name:
+
+    exfuncs.h
+
+Abstract:
+
+    Function definitions for the Executive.
+
+Author:
+
+    Alex Ionescu (alexi@tinykrnl.org) - Updated - 27-Feb-2006
+
+--*/
+
+#ifndef _EXFUNCS_H
+#define _EXFUNCS_H
+
+//
+// Dependencies
+//
+#include <umtypes.h>
+#include <pstypes.h>
+#include <extypes.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+//
+// Don't include WMI headers just for one define
+//
+#ifndef PEVENT_TRACE_HEADER_DEFINED
+#define PEVENT_TRACE_HEADER_DEFINED
+typedef struct _EVENT_TRACE_HEADER *PEVENT_TRACE_HEADER;
+#endif
+
+#ifndef NTOS_MODE_USER
+//
+// Fast Mutex functions
+//
+VOID
+FASTCALL
+ExEnterCriticalRegionAndAcquireFastMutexUnsafe(
+    PFAST_MUTEX FastMutex
+);
+
+VOID
+FASTCALL
+ExReleaseFastMutexUnsafeAndLeaveCriticalRegion(
+    PFAST_MUTEX FastMutex
+);
+
+//
+// Pushlock functions
+//
+VOID
+FASTCALL
+ExfAcquirePushLockExclusive(
+    PEX_PUSH_LOCK PushLock
+);
+
+VOID
+FASTCALL
+ExfAcquirePushLockShared(
+    PEX_PUSH_LOCK PushLock
+);
+
+VOID
+FASTCALL
+ExfReleasePushLock(
+    PEX_PUSH_LOCK PushLock
+);
+
+VOID
+FASTCALL
+ExfReleasePushLockExclusive(
+    PEX_PUSH_LOCK PushLock
+);
+
+VOID
+FASTCALL
+ExfReleasePushLockShared(
+    PEX_PUSH_LOCK PushLock
+);
+
+VOID
+FASTCALL
+ExfTryToWakePushLock(
+    PEX_PUSH_LOCK PushLock
+);
+
+VOID
+FASTCALL
+ExfUnblockPushLock(
+    PEX_PUSH_LOCK PushLock,
+    PVOID CurrentWaitBlock
+);
+
+//
+// Handle Table Functions
+//
+NTKERNELAPI
+BOOLEAN
+NTAPI
+ExEnumHandleTable(
+    IN PHANDLE_TABLE HandleTable,
+    IN PEX_ENUM_HANDLE_CALLBACK EnumHandleProcedure,
+    IN OUT PVOID Context,
+    OUT PHANDLE Handle OPTIONAL
+);
+
+//
+// Resource Functions
+//
+PVOID
+NTAPI
+ExEnterCriticalRegionAndAcquireResourceExclusive(
+    IN PERESOURCE Resource
+);
+
+PVOID
+NTAPI
+ExEnterCriticalRegionAndAcquireResourceShared(
+    IN PERESOURCE Resource
+);
+
+PVOID
+NTAPI
+ExEnterCriticalRegionAndAcquireSharedWaitForExclusive(
+    IN PERESOURCE Resource
+);
+
+VOID
+FASTCALL
+ExReleaseResourceAndLeaveCriticalRegion(
+    IN PERESOURCE Resource
+);
+
+#endif
+
+//
+// Native Calls
+//
+NTSYSCALLAPI
+NTSTATUS
+NTAPI
+NtAddAtom(
+    IN PWSTR AtomName,
+    IN ULONG AtomNameLength,
+    IN OUT PRTL_ATOM Atom
+);
+
+NTSYSCALLAPI
+NTSTATUS
+NTAPI
+NtCancelTimer(
+    IN HANDLE TimerHandle,
+    OUT PBOOLEAN CurrentState OPTIONAL
+);
+
+NTSYSCALLAPI
+NTSTATUS
+NTAPI
+NtClearEvent(
+    IN HANDLE EventHandle
+);
+
+NTSYSCALLAPI
+NTSTATUS
+NTAPI
+NtCreateEvent(
+    OUT PHANDLE EventHandle,
+    IN ACCESS_MASK DesiredAccess,
+    IN POBJECT_ATTRIBUTES ObjectAttributes,
+    IN EVENT_TYPE EventType,
+    IN BOOLEAN InitialState
+);
+
+NTSYSCALLAPI
+NTSTATUS
+NTAPI
+NtCreateEventPair(
+    OUT PHANDLE EventPairHandle,
+    IN ACCESS_MASK DesiredAccess,
+    IN POBJECT_ATTRIBUTES ObjectAttributes
+);
+
+NTSYSCALLAPI
+NTSTATUS
+NTAPI
+NtCreateKeyedEvent(
+    OUT PHANDLE KeyedEventHandle,
+    IN ACCESS_MASK DesiredAccess,
+    IN POBJECT_ATTRIBUTES ObjectAttributes,
+    IN ULONG Flags
+);
+
+NTSYSCALLAPI
+NTSTATUS
+NTAPI
+NtCreateMutant(
+    OUT PHANDLE MutantHandle,
+    IN ACCESS_MASK DesiredAccess,
+    IN POBJECT_ATTRIBUTES ObjectAttributes,
+    IN BOOLEAN InitialOwner
+);
+
+NTSYSCALLAPI
+NTSTATUS
+NTAPI
+NtCreateSemaphore(
+    OUT PHANDLE SemaphoreHandle,
+    IN ACCESS_MASK DesiredAccess,
+    IN POBJECT_ATTRIBUTES ObjectAttributes OPTIONAL,
+    IN LONG InitialCount,
+    IN LONG MaximumCount
+);
+
+NTSYSCALLAPI
+NTSTATUS
+NTAPI
+NtCreateTimer(
+    OUT PHANDLE TimerHandle,
+    IN ACCESS_MASK DesiredAccess,
+    IN POBJECT_ATTRIBUTES ObjectAttributes OPTIONAL,
+    IN TIMER_TYPE TimerType
+);
+
+NTSYSCALLAPI
+NTSTATUS
+NTAPI
+NtDeleteAtom(
+    IN RTL_ATOM Atom
+);
+
+NTSYSCALLAPI
+NTSTATUS
+NTAPI
+NtDisplayString(
+    IN PUNICODE_STRING DisplayString
+);
+
+NTSYSCALLAPI
+NTSTATUS
+NTAPI
+NtEnumerateSystemEnvironmentValuesEx(
+    IN ULONG InformationClass,
+    IN PVOID Buffer,
+    IN ULONG BufferLength
+);
+
+NTSYSCALLAPI
+NTSTATUS
+NTAPI
+NtFindAtom(
+    IN  PWSTR AtomName,
+    IN  ULONG AtomNameLength,
+    OUT PRTL_ATOM Atom OPTIONAL
+);
+
+NTSYSCALLAPI
+NTSTATUS
+NTAPI
+NtOpenEvent(
+    OUT PHANDLE EventHandle,
+    IN ACCESS_MASK DesiredAccess,
+    IN POBJECT_ATTRIBUTES ObjectAttributes
+);
+
+NTSYSCALLAPI
+NTSTATUS
+NTAPI
+NtOpenKeyedEvent(
+    OUT PHANDLE EventHandle,
+    IN ACCESS_MASK DesiredAccess,
+    IN POBJECT_ATTRIBUTES ObjectAttributes
+);
+
+NTSYSCALLAPI
+NTSTATUS
+NTAPI
+NtOpenEventPair(
+    OUT PHANDLE EventPairHandle,
+    IN ACCESS_MASK DesiredAccess,
+    IN POBJECT_ATTRIBUTES ObjectAttributes
+);
+
+NTSYSCALLAPI
+NTSTATUS
+NTAPI
+NtOpenMutant(
+    OUT PHANDLE MutantHandle,
+    IN ACCESS_MASK DesiredAccess,
+    IN POBJECT_ATTRIBUTES ObjectAttributes
+);
+
+NTSYSCALLAPI
+NTSTATUS
+NTAPI
+NtOpenSemaphore(
+    OUT PHANDLE SemaphoreHandle,
+    IN ACCESS_MASK DesiredAcces,
+    IN POBJECT_ATTRIBUTES ObjectAttributes
+);
+
+NTSYSCALLAPI
+NTSTATUS
+NTAPI
+NtOpenTimer(
+    OUT PHANDLE TimerHandle,
+    IN ACCESS_MASK DesiredAccess,
+    IN POBJECT_ATTRIBUTES ObjectAttributes
+);
+
+NTSYSCALLAPI
+NTSTATUS
+NTAPI
+NtPulseEvent(
+    IN HANDLE EventHandle,
+    IN PLONG PulseCount OPTIONAL
+);
+
+NTSYSCALLAPI
+NTSTATUS
+NTAPI
+NtQueryDefaultLocale(
+    IN BOOLEAN UserProfile,
+    OUT PLCID DefaultLocaleId
+);
+
+NTSYSCALLAPI
+NTSTATUS
+NTAPI
+NtQueryDefaultUILanguage(
+    LANGID* LanguageId
+);
+
+NTSYSCALLAPI
+NTSTATUS
+NTAPI
+NtQueryEvent(
+    IN HANDLE EventHandle,
+    IN EVENT_INFORMATION_CLASS EventInformationClass,
+    OUT PVOID EventInformation,
+    IN ULONG EventInformationLength,
+    OUT PULONG ReturnLength
+);
+
+NTSYSCALLAPI
+NTSTATUS
+NTAPI
+NtQueryInformationAtom(
+    IN  RTL_ATOM Atom,
+    IN  ATOM_INFORMATION_CLASS AtomInformationClass,
+    OUT PVOID AtomInformation,
+    IN  ULONG AtomInformationLength,
+    OUT PULONG ReturnLength OPTIONAL
+);
+
+NTSYSCALLAPI
+NTSTATUS
+NTAPI
+NtQueryInstallUILanguage(
+    LANGID* LanguageId
+);
+
+NTSYSCALLAPI
+NTSTATUS
+NTAPI
+NtQueryMutant(
+    IN HANDLE MutantHandle,
+    IN MUTANT_INFORMATION_CLASS MutantInformationClass,
+    OUT PVOID MutantInformation,
+    IN ULONG Length,
+    OUT PULONG ResultLength
+);
+
+NTSYSCALLAPI
+NTSTATUS
+NTAPI
+NtQuerySemaphore(
+    IN HANDLE SemaphoreHandle,
+    IN SEMAPHORE_INFORMATION_CLASS SemaphoreInformationClass,
+    OUT PVOID SemaphoreInformation,
+    IN ULONG Length,
+    OUT PULONG ReturnLength
+);
+
+NTSYSCALLAPI
+NTSTATUS
+NTAPI
+NtQuerySystemEnvironmentValue(
+    IN PUNICODE_STRING Name,
+    OUT PWSTR Value,
+    ULONG Length,
+    PULONG ReturnLength
+);
+
+NTSYSCALLAPI
+NTSTATUS
+NTAPI
+NtQuerySystemEnvironmentValueEx(
+    IN PUNICODE_STRING VariableName,
+    IN LPGUID VendorGuid,
+    IN PVOID Value,
+    IN OUT PULONG ReturnLength,
+    IN OUT PULONG Attributes
+);
+
+NTSYSCALLAPI
+NTSTATUS
+NTAPI
+NtQuerySystemInformation(
+    IN SYSTEM_INFORMATION_CLASS SystemInformationClass,
+    OUT PVOID SystemInformation,
+    IN ULONG Length,
+    OUT PULONG ResultLength
+);
+
+NTSYSCALLAPI
+NTSTATUS
+NTAPI
+NtQueryTimer(
+    IN HANDLE TimerHandle,
+    IN TIMER_INFORMATION_CLASS TimerInformationClass,
+    OUT PVOID TimerInformation,
+    IN ULONG Length,
+    OUT PULONG ResultLength
+);
+
+NTSYSCALLAPI
+NTSTATUS
+NTAPI
+NtRaiseHardError(
+    IN NTSTATUS ErrorStatus,
+    IN ULONG NumberOfParameters,
+    IN ULONG UnicodeStringParameterMask,
+    IN PULONG_PTR Parameters,
+    IN ULONG ValidResponseOptions,
+    OUT PULONG Response
+);
+
+NTSYSCALLAPI
+NTSTATUS
+NTAPI
+NtReleaseMutant(
+    IN HANDLE MutantHandle,
+    IN PLONG ReleaseCount OPTIONAL
+);
+
+NTSYSCALLAPI
+NTSTATUS
+NTAPI
+NtReleaseKeyedEvent(
+    IN HANDLE EventHandle,
+    IN PVOID Key,
+    IN BOOLEAN Alertable,
+    IN PLARGE_INTEGER Timeout OPTIONAL
+);
+
+NTSYSCALLAPI
+NTSTATUS
+NTAPI
+NtReleaseSemaphore(
+    IN HANDLE SemaphoreHandle,
+    IN LONG ReleaseCount,
+    OUT PLONG PreviousCount
+);
+
+NTSYSCALLAPI
+NTSTATUS
+NTAPI
+NtResetEvent(
+    IN HANDLE EventHandle,
+    OUT PLONG NumberOfWaitingThreads OPTIONAL
+);
+
+NTSYSCALLAPI
+NTSTATUS
+NTAPI
+NtSetDefaultLocale(
+    IN BOOLEAN UserProfile,
+    IN LCID DefaultLocaleId
+);
+
+NTSYSCALLAPI
+NTSTATUS
+NTAPI
+NtSetDefaultUILanguage(
+    LANGID LanguageId
+);
+
+NTSYSCALLAPI
+NTSTATUS
+NTAPI
+NtSetDefaultHardErrorPort(
+    IN HANDLE PortHandle
+);
+
+NTSYSCALLAPI
+NTSTATUS
+NTAPI
+NtSetEvent(
+    IN HANDLE EventHandle,
+    OUT PLONG PreviousState  OPTIONAL
+);
+
+NTSYSCALLAPI
+NTSTATUS
+NTAPI
+NtSetEventBoostPriority(
+    IN HANDLE EventHandle
+);
+
+NTSYSCALLAPI
+NTSTATUS
+NTAPI
+NtSetHighEventPair(
+    IN HANDLE EventPairHandle
+);
+
+NTSYSCALLAPI
+NTSTATUS
+NTAPI
+NtSetHighWaitLowEventPair(
+    IN HANDLE EventPairHandle
+);
+
+NTSYSCALLAPI
+NTSTATUS
+NTAPI
+NtSetLowEventPair(
+    HANDLE EventPair
+);
+
+NTSYSCALLAPI
+NTSTATUS
+NTAPI
+NtSetLowWaitHighEventPair(
+    HANDLE EventPair
+);
+
+NTSYSCALLAPI
+NTSTATUS
+NTAPI
+NtSetSystemEnvironmentValue(
+    IN PUNICODE_STRING VariableName,
+    IN PUNICODE_STRING Value
+);
+
+NTSYSCALLAPI
+NTSTATUS
+NTAPI
+NtSetSystemEnvironmentValueEx(
+    IN PUNICODE_STRING VariableName,
+    IN LPGUID VendorGuid
+);
+
+NTSYSCALLAPI
+NTSTATUS
+NTAPI
+NtSetSystemInformation(
+    IN SYSTEM_INFORMATION_CLASS SystemInformationClass,
+    IN PVOID SystemInformation,
+    IN ULONG SystemInformationLength
+);
+
+NTSYSCALLAPI
+NTSTATUS
+NTAPI
+NtSetTimer(
+    IN HANDLE TimerHandle,
+    IN PLARGE_INTEGER DueTime,
+    IN PTIMER_APC_ROUTINE TimerApcRoutine,
+    IN PVOID TimerContext,
+    IN BOOLEAN WakeTimer,
+    IN LONG Period OPTIONAL,
+    OUT PBOOLEAN PreviousState OPTIONAL
+);
+
+NTSYSCALLAPI
+NTSTATUS
+NTAPI
+NtSetUuidSeed(
+    IN PUCHAR UuidSeed
+);
+
+NTSYSCALLAPI
+NTSTATUS
+NTAPI
+NtShutdownSystem(
+    IN SHUTDOWN_ACTION Action
+);
+
+NTSYSCALLAPI
+NTSTATUS
+NTAPI
+NtWaitForKeyedEvent(
+    IN HANDLE EventHandle,
+    IN PVOID Key,
+    IN BOOLEAN Alertable,
+    IN PLARGE_INTEGER Timeout OPTIONAL
+);
+
+NTSYSCALLAPI
+NTSTATUS
+NTAPI
+NtWaitHighEventPair(
+    IN HANDLE EventPairHandle
+);
+
+NTSYSCALLAPI
+NTSTATUS
+NTAPI
+NtWaitLowEventPair(
+    IN HANDLE EventPairHandle
+);
+
+NTSYSCALLAPI
+NTSTATUS
+NTAPI
+NtTraceEvent(
+    IN ULONG TraceHandle,
+    IN ULONG Flags,
+    IN ULONG TraceHeaderLength,
+    IN PEVENT_TRACE_HEADER TraceHeader
+);
+
+NTSYSAPI
+NTSTATUS
+NTAPI
+ZwAddAtom(
+    IN PWSTR AtomName,
+    IN ULONG AtomNameLength,
+    IN OUT PRTL_ATOM Atom
+);
+
+#ifdef NTOS_MODE_USER
+NTSYSAPI
+NTSTATUS
+NTAPI
+ZwCancelTimer(
+    IN HANDLE TimerHandle,
+    OUT PBOOLEAN CurrentState OPTIONAL
+);
+#endif
+
+NTSYSAPI
+NTSTATUS
+NTAPI
+ZwClearEvent(
+    IN HANDLE EventHandle
+);
+
+NTSYSAPI
+NTSTATUS
+NTAPI
+ZwCreateEvent(
+    OUT PHANDLE EventHandle,
+    IN ACCESS_MASK DesiredAccess,
+    IN POBJECT_ATTRIBUTES ObjectAttributes,
+    IN EVENT_TYPE EventType,
+    IN BOOLEAN InitialState
+);
+
+NTSYSAPI
+NTSTATUS
+NTAPI
+ZwCreateEventPair(
+    OUT PHANDLE EventPairHandle,
+    IN ACCESS_MASK DesiredAccess,
+    IN POBJECT_ATTRIBUTES ObjectAttributes
+);
+
+NTSYSAPI
+NTSTATUS
+NTAPI
+ZwCreateMutant(
+    OUT PHANDLE MutantHandle,
+    IN ACCESS_MASK DesiredAccess,
+    IN POBJECT_ATTRIBUTES ObjectAttributes,
+    IN BOOLEAN InitialOwner
+);
+
+NTSYSAPI
+NTSTATUS
+NTAPI
+ZwCreateSemaphore(
+    OUT PHANDLE SemaphoreHandle,
+    IN ACCESS_MASK DesiredAccess,
+    IN POBJECT_ATTRIBUTES ObjectAttributes OPTIONAL,
+    IN LONG InitialCount,
+    IN LONG MaximumCount
+);
+
+#ifdef NTOS_MODE_USER
+NTSYSAPI
+NTSTATUS
+NTAPI
+ZwCreateTimer(
+    OUT PHANDLE TimerHandle,
+    IN ACCESS_MASK DesiredAccess,
+    IN POBJECT_ATTRIBUTES ObjectAttributes OPTIONAL,
+    IN TIMER_TYPE TimerType
+);
+#endif
+
+NTSYSAPI
+NTSTATUS
+NTAPI
+ZwDeleteAtom(
+    IN RTL_ATOM Atom
+);
+
+NTSYSAPI
+NTSTATUS
+NTAPI
+ZwDisplayString(
+    IN PUNICODE_STRING DisplayString
+);
+
+NTSYSAPI
+NTSTATUS
+NTAPI
+ZwFindAtom(
+    IN  PWSTR AtomName,
+    IN  ULONG AtomNameLength,
+    OUT PRTL_ATOM Atom OPTIONAL
+);
+
+NTSYSCALLAPI
+NTSTATUS
+NTAPI
+ZwOpenEvent(
+    OUT PHANDLE EventHandle,
+    IN ACCESS_MASK DesiredAccess,
+    IN POBJECT_ATTRIBUTES ObjectAttributes
+);
+
+NTSYSAPI
+NTSTATUS
+NTAPI
+ZwOpenEventPair(
+    OUT PHANDLE EventPairHandle,
+    IN ACCESS_MASK DesiredAccess,
+    IN POBJECT_ATTRIBUTES ObjectAttributes
+);
+
+NTSYSAPI
+NTSTATUS
+NTAPI
+ZwOpenMutant(
+    OUT PHANDLE MutantHandle,
+    IN ACCESS_MASK DesiredAccess,
+    IN POBJECT_ATTRIBUTES ObjectAttributes
+);
+
+NTSYSAPI
+NTSTATUS
+NTAPI
+ZwOpenSemaphore(
+    OUT PHANDLE SemaphoreHandle,
+    IN ACCESS_MASK DesiredAcces,
+    IN POBJECT_ATTRIBUTES ObjectAttributes
+);
+
+#ifdef NTOS_MODE_USER
+NTSYSAPI
+NTSTATUS
+NTAPI
+ZwOpenTimer(
+    OUT PHANDLE TimerHandle,
+    IN ACCESS_MASK DesiredAccess,
+    IN POBJECT_ATTRIBUTES ObjectAttributes
+);
+#endif
+
+NTSYSAPI
+NTSTATUS
+NTAPI
+ZwPulseEvent(
+    IN HANDLE EventHandle,
+    IN PLONG PulseCount OPTIONAL
+);
+
+NTSYSAPI
+NTSTATUS
+NTAPI
+ZwQueryDefaultLocale(
+    IN BOOLEAN UserProfile,
+    OUT PLCID DefaultLocaleId
+);
+
+NTSYSAPI
+NTSTATUS
+NTAPI
+ZwQueryDefaultUILanguage(
+    LANGID* LanguageId
+);
+
+NTSYSAPI
+NTSTATUS
+NTAPI
+ZwQueryEvent(
+    IN HANDLE EventHandle,
+    IN EVENT_INFORMATION_CLASS EventInformationClass,
+    OUT PVOID EventInformation,
+    IN ULONG EventInformationLength,
+    OUT PULONG ReturnLength
+);
+
+NTSYSAPI
+NTSTATUS
+NTAPI
+ZwQueryInformationAtom(
+    IN  RTL_ATOM Atom,
+    IN  ATOM_INFORMATION_CLASS AtomInformationClass,
+    OUT PVOID AtomInformation,
+    IN  ULONG AtomInformationLength,
+    OUT PULONG ReturnLength OPTIONAL
+);
+
+NTSYSAPI
+NTSTATUS
+NTAPI
+ZwQueryInstallUILanguage(
+    LANGID* LanguageId
+);
+
+NTSYSAPI
+NTSTATUS
+NTAPI
+ZwQueryMutant(
+    IN HANDLE MutantHandle,
+    IN MUTANT_INFORMATION_CLASS MutantInformationClass,
+    OUT PVOID MutantInformation,
+    IN ULONG Length,
+    OUT PULONG ResultLength
+);
+
+NTSYSAPI
+NTSTATUS
+NTAPI
+ZwQuerySemaphore(
+    IN HANDLE SemaphoreHandle,
+    IN SEMAPHORE_INFORMATION_CLASS SemaphoreInformationClass,
+    OUT PVOID SemaphoreInformation,
+    IN ULONG Length,
+    OUT PULONG ReturnLength
+);
+
+NTSYSAPI
+NTSTATUS
+NTAPI
+ZwQuerySystemEnvironmentValue(
+    IN PUNICODE_STRING Name,
+    OUT PWSTR Value,
+    ULONG Length,
+    PULONG ReturnLength
+);
+
+NTSYSAPI
+NTSTATUS
+NTAPI
+ZwQuerySystemInformation(
+    IN SYSTEM_INFORMATION_CLASS SystemInformationClass,
+    OUT PVOID SystemInformation,
+    IN SIZE_T Length,
+    OUT PSIZE_T ResultLength
+);
+
+NTSYSAPI
+NTSTATUS
+NTAPI
+ZwQueryTimer(
+    IN HANDLE TimerHandle,
+    IN TIMER_INFORMATION_CLASS TimerInformationClass,
+    OUT PVOID TimerInformation,
+    IN ULONG Length,
+    OUT PULONG ResultLength
+);
+
+NTSYSAPI
+NTSTATUS
+NTAPI
+ZwRaiseHardError(
+    IN NTSTATUS ErrorStatus,
+    IN ULONG NumberOfParameters,
+    IN ULONG UnicodeStringParameterMask,
+    IN PULONG_PTR Parameters,
+    IN ULONG ValidResponseOptions,
+    OUT PULONG Response
+);
+
+NTSYSAPI
+NTSTATUS
+NTAPI
+ZwReleaseMutant(
+    IN HANDLE MutantHandle,
+    IN PLONG ReleaseCount OPTIONAL
+);
+
+NTSYSAPI
+NTSTATUS
+NTAPI
+ZwReleaseSemaphore(
+    IN HANDLE SemaphoreHandle,
+    IN LONG ReleaseCount,
+    OUT PLONG PreviousCount
+);
+
+NTSYSAPI
+NTSTATUS
+NTAPI
+ZwResetEvent(
+    IN HANDLE EventHandle,
+    OUT PLONG NumberOfWaitingThreads OPTIONAL
+);
+
+NTSYSAPI
+NTSTATUS
+NTAPI
+ZwSetDefaultLocale(
+    IN BOOLEAN UserProfile,
+    IN LCID DefaultLocaleId
+);
+
+NTSYSAPI
+NTSTATUS
+NTAPI
+ZwSetDefaultUILanguage(
+    LANGID LanguageId
+);
+
+NTSYSAPI
+NTSTATUS
+NTAPI
+ZwSetDefaultHardErrorPort(
+    IN HANDLE PortHandle
+);
+
+NTSYSAPI
+NTSTATUS
+NTAPI
+ZwSetEvent(
+    IN HANDLE EventHandle,
+    OUT PLONG PreviousState  OPTIONAL
+);
+
+NTSYSAPI
+NTSTATUS
+NTAPI
+ZwSetHighEventPair(
+    IN HANDLE EventPairHandle
+);
+
+NTSYSAPI
+NTSTATUS
+NTAPI
+ZwSetHighWaitLowEventPair(
+    IN HANDLE EventPairHandle
+);
+
+NTSYSAPI
+NTSTATUS
+NTAPI
+ZwSetLowEventPair(
+    HANDLE EventPair
+);
+
+NTSYSAPI
+NTSTATUS
+NTAPI
+ZwSetLowWaitHighEventPair(
+    HANDLE EventPair
+);
+
+NTSYSAPI
+NTSTATUS
+NTAPI
+ZwSetSystemEnvironmentValue(
+    IN PUNICODE_STRING VariableName,
+    IN PUNICODE_STRING Value
+);
+
+NTSYSAPI
+NTSTATUS
+NTAPI
+ZwSetSystemInformation(
+    IN SYSTEM_INFORMATION_CLASS SystemInformationClass,
+    IN PVOID SystemInformation,
+    IN SIZE_T SystemInformationLength
+);
+
+#ifdef NTOS_MODE_USER
+NTSYSAPI
+NTSTATUS
+NTAPI
+ZwSetTimer(
+    IN HANDLE TimerHandle,
+    IN PLARGE_INTEGER DueTime,
+    IN PTIMER_APC_ROUTINE TimerApcRoutine,
+    IN PVOID TimerContext,
+    IN BOOLEAN WakeTimer,
+    IN LONG Period OPTIONAL,
+    OUT PBOOLEAN PreviousState OPTIONAL
+);
+#endif
+
+NTSYSAPI
+NTSTATUS
+NTAPI
+ZwSetUuidSeed(
+    IN PUCHAR UuidSeed
+);
+
+NTSYSAPI
+NTSTATUS
+NTAPI
+ZwShutdownSystem(
+    IN SHUTDOWN_ACTION Action
+);
+
+NTSYSAPI
+NTSTATUS
+NTAPI
+ZwWaitHighEventPair(
+    IN HANDLE EventPairHandle
+);
+
+NTSYSAPI
+NTSTATUS
+NTAPI
+ZwWaitLowEventPair(
+    IN HANDLE EventPairHandle
+);
+
+NTSYSAPI
+NTSTATUS
+NTAPI
+ZwTraceEvent(
+    IN ULONG TraceHandle,
+    IN ULONG Flags,
+    IN ULONG TraceHeaderLength,
+    IN PEVENT_TRACE_HEADER TraceHeader
+);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif