- Update NDK to remove zwfuncs.h and place the native functions in their respective xxfuncs.h instead, so that applications can now include only what they need. Add more xxfuncs.h files for every API.
- Make the NDK smarter so that using #define NTOS_MODE_USER isn't needed anymore: the NDK can now auto-detect the presence of windows.h or ntddk.h and make the appropriate decision.
- re-arrange ntndk.h to include all types in alphabetical order, and then all functions, regardless of um/kmode usage. 
- Make each file auto-detect if this is NTOS_MODE_USER or not and include each files it needs, instead of depending on a predefined order inside ntndk.h This way, any file can be included from both user-mode or kmode as simply as #include <iofuncs.h>, wthout any adtional work.
- Update FIXME list with these changes and delay NDK release date since my trip is lasting a day longer.
- Fix ntsecapi.h to define UNICODE_STRING, like it does in the PSDK.
- Fix apps including ntsecapi + winternl.h These two cause a conflict even on PSDK and shouldn't be included together.
- Make winlogon include only the NDK files it needs (2) instead of the whole NDK, as test for this faster newly supported method.
- Remove some NDK apps from the FIXME list (the ones that weren't being built/are on my rewrite branch/are better off including the whole NDK instead of file-by-file).
- Update debug.h to define RtlAssert and DbgPrint in case the NDK or DDK aren't already included, which will allow some of the apps to stop using the NDK solely for DPRINT/DPRINT1. Diabled for now since a lot of code needs to be changed to #include <debug.h> *After* they include the other headers. (so that the anti-double-definition check can work).
Modified: trunk/reactos/include/ndk/cctypes.h
Added: trunk/reactos/include/ndk/cmfuncs.h
Modified: trunk/reactos/include/ndk/cmtypes.h
Added: trunk/reactos/include/ndk/dbgkfuncs.h
Modified: trunk/reactos/include/ndk/dbgktypes.h
Modified: trunk/reactos/include/ndk/exfuncs.h
Modified: trunk/reactos/include/ndk/extypes.h
Modified: trunk/reactos/include/ndk/fixmes.txt
Modified: trunk/reactos/include/ndk/halfuncs.h
Modified: trunk/reactos/include/ndk/haltypes.h
Modified: trunk/reactos/include/ndk/ifssupp.h
Modified: trunk/reactos/include/ndk/inbvfuncs.h
Modified: trunk/reactos/include/ndk/iofuncs.h
Modified: trunk/reactos/include/ndk/iotypes.h
Modified: trunk/reactos/include/ndk/kdfuncs.h
Modified: trunk/reactos/include/ndk/kdtypes.h
Modified: trunk/reactos/include/ndk/kefuncs.h
Modified: trunk/reactos/include/ndk/ketypes.h
Modified: trunk/reactos/include/ndk/ldrfuncs.h
Modified: trunk/reactos/include/ndk/ldrtypes.h
Added: trunk/reactos/include/ndk/lpcfuncs.h
Modified: trunk/reactos/include/ndk/lpctypes.h
Modified: trunk/reactos/include/ndk/mmfuncs.h
Modified: trunk/reactos/include/ndk/mmtypes.h
Modified: trunk/reactos/include/ndk/ntndk.h
Modified: trunk/reactos/include/ndk/obfuncs.h
Modified: trunk/reactos/include/ndk/obtypes.h
Added: trunk/reactos/include/ndk/pofuncs.h
Modified: trunk/reactos/include/ndk/potypes.h
Modified: trunk/reactos/include/ndk/psfuncs.h
Modified: trunk/reactos/include/ndk/pstypes.h
Modified: trunk/reactos/include/ndk/rtlfuncs.h
Modified: trunk/reactos/include/ndk/rtltypes.h
Modified: trunk/reactos/include/ndk/sefuncs.h
Modified: trunk/reactos/include/ndk/setypes.h
Modified: trunk/reactos/include/ndk/umfuncs.h
Modified: trunk/reactos/include/ndk/umtypes.h
Deleted: trunk/reactos/include/ndk/zwfuncs.h
Modified: trunk/reactos/include/reactos/debug.h
Modified: trunk/reactos/lib/aclui/precomp.h
Modified: trunk/reactos/lib/netapi32/wksta.c
Modified: trunk/reactos/subsys/system/winlogon/winlogon.h
Modified: trunk/reactos/w32api/include/ntsecapi.h

Modified: trunk/reactos/include/ndk/cctypes.h
--- trunk/reactos/include/ndk/cctypes.h	2005-11-24 23:07:36 UTC (rev 19537)
+++ trunk/reactos/include/ndk/cctypes.h	2005-11-25 00:17:40 UTC (rev 19538)
@@ -22,12 +22,16 @@
 //
 // Dependencies
 //
+#include <umtypes.h>
 
+#ifndef NTOS_MODE_USER
+
 //
 // Kernel Exported CcData
 //
 extern ULONG NTSYSAPI CcFastReadNotPossible;
 extern ULONG NTSYSAPI CcFastReadWait;
 
+#endif
 #endif // _CCTYPES_H
 

Added: trunk/reactos/include/ndk/cmfuncs.h
--- trunk/reactos/include/ndk/cmfuncs.h	2005-11-24 23:07:36 UTC (rev 19537)
+++ trunk/reactos/include/ndk/cmfuncs.h	2005-11-25 00:17:40 UTC (rev 19538)
@@ -0,0 +1,436 @@
+/*++ NDK Version: 0095
+
+Copyright (c) Alex Ionescu.  All rights reserved.
+
+Header Name:
+
+    cmfuncs.h
+
+Abstract:
+
+    Function definitions for the Configuration Manager.
+
+Author:
+
+    Alex Ionescu (alex.ionescu@reactos.com)   06-Oct-2004
+
+--*/
+
+#ifndef _CMFUNCS_H
+#define _CMFUNCS_H
+
+//
+// Dependencies
+//
+#include <umtypes.h>
+
+//
+// Native calls
+//
+NTSTATUS
+NTAPI
+NtCreateKey(
+    OUT PHANDLE KeyHandle,
+    IN ACCESS_MASK DesiredAccess,
+    IN POBJECT_ATTRIBUTES ObjectAttributes,
+    IN ULONG TitleIndex,
+    IN PUNICODE_STRING Class OPTIONAL,
+    IN ULONG CreateOptions,
+    IN PULONG Disposition OPTIONAL
+);
+
+NTSTATUS
+NTAPI
+NtDeleteKey(
+    IN HANDLE KeyHandle
+);
+
+NTSTATUS
+NTAPI
+NtDeleteValueKey(
+    IN HANDLE KeyHandle,
+    IN PUNICODE_STRING ValueName
+);
+
+NTSTATUS
+NTAPI
+NtEnumerateKey(
+    IN HANDLE KeyHandle,
+    IN ULONG Index,
+    IN KEY_INFORMATION_CLASS KeyInformationClass,
+    OUT PVOID KeyInformation,
+    IN ULONG Length,
+    OUT PULONG ResultLength
+);
+
+NTSTATUS
+NTAPI
+NtEnumerateValueKey(
+    IN HANDLE KeyHandle,
+    IN ULONG Index,
+    IN KEY_VALUE_INFORMATION_CLASS KeyValueInformationClass,
+    OUT PVOID KeyValueInformation,
+    IN ULONG Length,
+    OUT PULONG ResultLength
+);
+
+NTSTATUS
+NTAPI
+NtFlushKey(
+    IN HANDLE KeyHandle
+);
+
+NTSTATUS
+NTAPI
+NtGetPlugPlayEvent(
+    IN ULONG Reserved1,
+    IN ULONG Reserved2,
+    OUT PPLUGPLAY_EVENT_BLOCK Buffer,
+    IN ULONG BufferSize
+);
+
+NTSTATUS
+NTAPI
+NtInitializeRegistry(
+    BOOLEAN SetUpBoot
+);
+
+NTSTATUS
+NTAPI
+NtLoadKey(
+    IN POBJECT_ATTRIBUTES KeyObjectAttributes,
+    IN POBJECT_ATTRIBUTES FileObjectAttributes
+);
+
+NTSTATUS
+NTAPI
+NtLoadKey2(
+    IN POBJECT_ATTRIBUTES KeyObjectAttributes,
+    IN POBJECT_ATTRIBUTES FileObjectAttributes,
+    IN ULONG Flags
+);
+
+NTSTATUS
+NTAPI
+NtNotifyChangeKey(
+    IN HANDLE KeyHandle,
+    IN HANDLE Event,
+    IN PIO_APC_ROUTINE ApcRoutine OPTIONAL,
+    IN PVOID ApcContext OPTIONAL,
+    OUT PIO_STATUS_BLOCK IoStatusBlock,
+    IN ULONG CompletionFilter,
+    IN BOOLEAN Asynchroneous,
+    OUT PVOID ChangeBuffer,
+    IN ULONG Length,
+    IN BOOLEAN WatchSubtree
+);
+
+NTSTATUS
+NTAPI
+NtOpenKey(
+    OUT PHANDLE KeyHandle,
+    IN ACCESS_MASK DesiredAccess,
+    IN POBJECT_ATTRIBUTES ObjectAttributes
+);
+
+NTSTATUS
+NTAPI
+NtPlugPlayControl(
+    IN PLUGPLAY_CONTROL_CLASS PlugPlayControlClass,
+    IN OUT PVOID Buffer,
+    IN ULONG BufferSize
+);
+
+NTSTATUS
+NTAPI
+NtQueryKey(
+    IN HANDLE KeyHandle,
+    IN KEY_INFORMATION_CLASS KeyInformationClass,
+    OUT PVOID KeyInformation,
+    IN ULONG Length,
+    OUT PULONG ResultLength
+);
+
+NTSTATUS
+NTAPI
+NtQueryMultipleValueKey(
+    IN HANDLE KeyHandle,
+    IN OUT PKEY_VALUE_ENTRY ValueList,
+    IN ULONG NumberOfValues,
+    OUT PVOID Buffer,
+    IN OUT PULONG Length,
+    OUT PULONG ReturnLength
+);
+
+NTSTATUS
+NTAPI
+NtQueryValueKey(
+    IN HANDLE KeyHandle,
+    IN PUNICODE_STRING ValueName,
+    IN KEY_VALUE_INFORMATION_CLASS KeyValueInformationClass,
+    OUT PVOID KeyValueInformation,
+    IN ULONG Length,
+    OUT PULONG ResultLength
+);
+
+NTSTATUS
+NTAPI
+NtReplaceKey(
+    IN POBJECT_ATTRIBUTES ObjectAttributes,
+    IN HANDLE Key,
+    IN POBJECT_ATTRIBUTES ReplacedObjectAttributes
+);
+
+NTSTATUS
+NTAPI
+NtRestoreKey(
+    IN HANDLE KeyHandle,
+    IN HANDLE FileHandle,
+    IN ULONG RestoreFlags
+);
+
+NTSTATUS
+NTAPI
+NtSaveKey(
+    IN HANDLE KeyHandle,
+    IN HANDLE FileHandle
+);
+
+NTSTATUS
+NTAPI
+NtSaveKeyEx(
+    IN HANDLE KeyHandle,
+    IN HANDLE FileHandle,
+    IN ULONG Flags
+);
+
+NTSTATUS
+NTAPI
+NtSetInformationKey(
+    IN HANDLE KeyHandle,
+    IN KEY_SET_INFORMATION_CLASS KeyInformationClass,
+    IN PVOID KeyInformation,
+    IN ULONG KeyInformationLength
+);
+
+NTSTATUS
+NTAPI
+NtSetValueKey(
+    IN HANDLE KeyHandle,
+    IN PUNICODE_STRING ValueName,
+    IN ULONG TitleIndex OPTIONAL,
+    IN ULONG Type,
+    IN PVOID Data,
+    IN ULONG DataSize
+);
+
+NTSTATUS
+NTAPI
+NtUnloadKey(
+    IN POBJECT_ATTRIBUTES KeyObjectAttributes
+);
+
+NTSTATUS
+NTAPI
+ZwCreateKey(
+    OUT PHANDLE KeyHandle,
+    IN ACCESS_MASK DesiredAccess,
+    IN POBJECT_ATTRIBUTES ObjectAttributes,
+    IN ULONG TitleIndex,
+    IN PUNICODE_STRING Class OPTIONAL,
+    IN ULONG CreateOptions,
+    IN PULONG Disposition OPTIONAL
+);
+
+NTSTATUS
+NTAPI
+ZwDeleteKey(
+    IN HANDLE KeyHandle
+);
+
+NTSTATUS
+NTAPI
+ZwDeleteValueKey(
+    IN HANDLE KeyHandle,
+    IN PUNICODE_STRING ValueName
+);
+
+NTSTATUS
+NTAPI
+ZwEnumerateKey(
+    IN HANDLE KeyHandle,
+    IN ULONG Index,
+    IN KEY_INFORMATION_CLASS KeyInformationClass,
+    OUT PVOID KeyInformation,
+    IN ULONG Length,
+    OUT PULONG ResultLength
+);
+
+NTSTATUS
+NTAPI
+ZwEnumerateValueKey(
+    IN HANDLE KeyHandle,
+    IN ULONG Index,
+    IN KEY_VALUE_INFORMATION_CLASS KeyValueInformationClass,
+    OUT PVOID KeyValueInformation,
+    IN ULONG Length,
+    OUT PULONG ResultLength
+);
+
+NTSTATUS
+NTAPI
+ZwFlushKey(
+    IN HANDLE KeyHandle
+);
+
+NTSTATUS
+NTAPI
+ZwGetPlugPlayEvent(
+    IN ULONG Reserved1,
+    IN ULONG Reserved2,
+    OUT PPLUGPLAY_EVENT_BLOCK Buffer,
+    IN ULONG BufferSize
+);
+
+NTSTATUS
+NTAPI
+ZwInitializeRegistry(
+    BOOLEAN SetUpBoot
+);
+
+NTSTATUS
+NTAPI
+ZwLoadKey(
+    IN POBJECT_ATTRIBUTES KeyObjectAttributes,
+    IN POBJECT_ATTRIBUTES FileObjectAttributes
+);
+
+NTSTATUS
+NTAPI
+ZwLoadKey2(
+    IN POBJECT_ATTRIBUTES KeyObjectAttributes,
+    IN POBJECT_ATTRIBUTES FileObjectAttributes,
+    IN ULONG Flags
+);
+
+NTSTATUS
+NTAPI
+ZwNotifyChangeKey(
+    IN HANDLE KeyHandle,
+    IN HANDLE Event,
+    IN PIO_APC_ROUTINE ApcRoutine OPTIONAL,
+    IN PVOID ApcContext OPTIONAL,
+    OUT PIO_STATUS_BLOCK IoStatusBlock,
+    IN ULONG CompletionFilter,
+    IN BOOLEAN Asynchroneous,
+    OUT PVOID ChangeBuffer,
+    IN ULONG Length,
+    IN BOOLEAN WatchSubtree
+);
+
+NTSTATUS
+NTAPI
+ZwOpenKey(
+    OUT PHANDLE KeyHandle,
+    IN ACCESS_MASK DesiredAccess,
+    IN POBJECT_ATTRIBUTES ObjectAttributes
+);
+
+NTSTATUS
+NTAPI
+ZwPlugPlayControl(
+    IN PLUGPLAY_CONTROL_CLASS PlugPlayControlClass,
+    IN OUT PVOID Buffer,
+    IN ULONG BufferSize
+);
+
+NTSTATUS
+NTAPI
+ZwQueryKey(
+    IN HANDLE KeyHandle,
+    IN KEY_INFORMATION_CLASS KeyInformationClass,
+    OUT PVOID KeyInformation,
+    IN ULONG Length,
+    OUT PULONG ResultLength
+);
+
+NTSTATUS
+NTAPI
+ZwQueryMultipleValueKey(
+    IN HANDLE KeyHandle,
+    IN OUT PKEY_VALUE_ENTRY ValueList,
+    IN ULONG NumberOfValues,
+    OUT PVOID Buffer,
+    IN OUT PULONG Length,
+    OUT PULONG ReturnLength
+);
+
+NTSTATUS
+NTAPI
+ZwQueryValueKey(
+    IN HANDLE KeyHandle,
+    IN PUNICODE_STRING ValueName,
+    IN KEY_VALUE_INFORMATION_CLASS KeyValueInformationClass,
+    OUT PVOID KeyValueInformation,
+    IN ULONG Length,
+    OUT PULONG ResultLength
+);
+
+NTSTATUS
+NTAPI
+ZwReplaceKey(
+    IN POBJECT_ATTRIBUTES ObjectAttributes,
+    IN HANDLE Key,
+    IN POBJECT_ATTRIBUTES ReplacedObjectAttributes
+);
+
+NTSTATUS
+NTAPI
+ZwRestoreKey(
+    IN HANDLE KeyHandle,
+    IN HANDLE FileHandle,
+    IN ULONG RestoreFlags
+);
+
+NTSTATUS
+NTAPI
+ZwSaveKey(
+    IN HANDLE KeyHandle,
+    IN HANDLE FileHandle
+);
+
+NTSTATUS
+NTAPI
+ZwSaveKeyEx(
+    IN HANDLE KeyHandle,
+    IN HANDLE FileHandle,
+    IN ULONG Flags
+);
+
+NTSTATUS
+NTAPI
+ZwSetInformationKey(
+    IN HANDLE KeyHandle,
+    IN KEY_SET_INFORMATION_CLASS KeyInformationClass,
+    IN PVOID KeyInformation,
+    IN ULONG KeyInformationLength
+);
+
+NTSTATUS
+NTAPI
+ZwSetValueKey(
+    IN HANDLE KeyHandle,
+    IN PUNICODE_STRING ValueName,
+    IN ULONG TitleIndex OPTIONAL,
+    IN ULONG Type,
+    IN PVOID Data,
+    IN ULONG DataSize
+);
+
+NTSTATUS
+NTAPI
+ZwUnloadKey(
+    IN POBJECT_ATTRIBUTES KeyObjectAttributes
+);
+
+#endif

Modified: trunk/reactos/include/ndk/cmtypes.h
--- trunk/reactos/include/ndk/cmtypes.h	2005-11-24 23:07:36 UTC (rev 19537)
+++ trunk/reactos/include/ndk/cmtypes.h	2005-11-25 00:17:40 UTC (rev 19538)
@@ -22,8 +22,9 @@
 //
 // Dependencies
 //
+#include <umtypes.h>
 #include <cfg.h>
-#include "iotypes.h"
+#include <iotypes.h>
 
 #define MAX_BUS_NAME 24
 
@@ -86,12 +87,6 @@
 #define CM_RESOURCE_PORT_WINDOW_DECODE          0x0080
 
 //
-// Interrupt Resource Descriptor Flags
-//
-#define CM_RESOURCE_INTERRUPT_LEVEL_SENSITIVE   0x0000
-#define CM_RESOURCE_INTERRUPT_LATCHED           0x0001
-
-//
 // Memory Resource Descriptor Flags
 //
 #define CM_RESOURCE_MEMORY_READ_WRITE     0x0000

Added: trunk/reactos/include/ndk/dbgkfuncs.h
--- trunk/reactos/include/ndk/dbgkfuncs.h	2005-11-24 23:07:36 UTC (rev 19537)
+++ trunk/reactos/include/ndk/dbgkfuncs.h	2005-11-25 00:17:40 UTC (rev 19538)
@@ -0,0 +1,87 @@
+/*++ NDK Version: 0095
+
+Copyright (c) Alex Ionescu.  All rights reserved.
+
+Header Name:
+
+    dbgkfuncs.h
+
+Abstract:
+
+    Function definitions for the User Mode Debugging Facility.
+
+Author:
+
+    Alex Ionescu (alex.ionescu@reactos.com)   06-Oct-2004
+
+--*/
+
+#ifndef _DBGKFUNCS_H
+#define _DBGKFUNCS_H
+
+//
+// Dependencies
+//
+#include <umtypes.h>
+
+//
+// Native calls
+//
+NTSYSCALLAPI
+NTSTATUS
+NTAPI
+NtCreateDebugObject(
+    OUT PHANDLE DebugHandle,
+    IN ACCESS_MASK DesiredAccess,
+    IN POBJECT_ATTRIBUTES ObjectAttributes,
+    IN BOOLEAN KillProcessOnExit
+);
+
+NTSYSCALLAPI
+NTSTATUS
+NTAPI
+NtDebugContinue(
+    IN HANDLE DebugObject,
+    IN PCLIENT_ID AppClientId,
+    IN NTSTATUS ContinueStatus
+);
+
+NTSYSCALLAPI
+NTSTATUS
+NTAPI
+NtWaitForDebugEvent(
+    IN HANDLE DebugObject,
+    IN BOOLEAN Alertable,
+    IN PLARGE_INTEGER Timeout OPTIONAL,
+    OUT PDBGUI_WAIT_STATE_CHANGE StateChange
+);
+
+NTSYSCALLAPI
+NTSTATUS
+NTAPI
+ZwCreateDebugObject(
+    OUT PHANDLE DebugHandle,
+    IN ACCESS_MASK DesiredAccess,
+    IN POBJECT_ATTRIBUTES ObjectAttributes,
+    IN BOOLEAN KillProcessOnExit
+);
+
+NTSYSCALLAPI
+NTSTATUS
+NTAPI
+ZwDebugContinue(
+    IN HANDLE DebugObject,
+    IN PCLIENT_ID AppClientId,
+    IN NTSTATUS ContinueStatus
+);
+
+NTSYSCALLAPI
+NTSTATUS
+NTAPI
+ZwWaitForDebugEvent(
+    IN HANDLE DebugObject,
+    IN BOOLEAN Alertable,
+    IN PLARGE_INTEGER Timeout OPTIONAL,
+    OUT PDBGUI_WAIT_STATE_CHANGE StateChange
+);
+#endif

Modified: trunk/reactos/include/ndk/dbgktypes.h
--- trunk/reactos/include/ndk/dbgktypes.h	2005-11-24 23:07:36 UTC (rev 19537)
+++ trunk/reactos/include/ndk/dbgktypes.h	2005-11-25 00:17:40 UTC (rev 19538)
@@ -8,7 +8,7 @@
 
 Abstract:
 
-    Type definitions for the Debug Subsystem.
+    Type definitions for the User Mode Debugging Facility.
 
 Author:
 
@@ -22,6 +22,8 @@
 //
 // Dependencies
 //
+#include <umtypes.h>
+#include <lpctypes.h>
 
 //
 // Debug Object Access Masks

Modified: trunk/reactos/include/ndk/exfuncs.h
--- trunk/reactos/include/ndk/exfuncs.h	2005-11-24 23:07:36 UTC (rev 19537)
+++ trunk/reactos/include/ndk/exfuncs.h	2005-11-25 00:17:40 UTC (rev 19538)
@@ -22,8 +22,15 @@
 //
 // Dependencies
 //
+#include <umtypes.h>
 
 //
+// Don't include WMI headers just for one define
+//
+typedef struct _EVENT_TRACE_HEADER *PEVENT_TRACE_HEADER;
+
+#ifndef NTOS_MODE_USER
+//
 // Fast Mutex functions
 //
 VOID
@@ -33,5 +40,736 @@
 VOID
 FASTCALL
 ExReleaseFastMutexUnsafeAndLeaveCriticalRegion(PFAST_MUTEX FastMutex);
+#endif
 
+//
+// Native Calls
+//
+NTSTATUS
+NTAPI
+NtAddAtom(
+    IN PWSTR AtomName,
+    IN ULONG AtomNameLength,
+    IN OUT PRTL_ATOM Atom
+);
+
+NTSTATUS
+NTAPI
+NtCancelTimer(
+    IN HANDLE TimerHandle,
+    OUT PBOOLEAN CurrentState OPTIONAL
+);
+
+NTSTATUS
+NTAPI
+NtClearEvent(
+    IN HANDLE EventHandle
+);
+
+NTSTATUS
+NTAPI
+NtCreateEvent(
+    OUT PHANDLE EventHandle,
+    IN ACCESS_MASK DesiredAccess,
+    IN POBJECT_ATTRIBUTES ObjectAttributes,
+    IN EVENT_TYPE EventType,
+    IN BOOLEAN InitialState
+);
+
+NTSTATUS
+NTAPI
+NtCreateEventPair(
+    OUT PHANDLE EventPairHandle,
+    IN ACCESS_MASK DesiredAccess,
+    IN POBJECT_ATTRIBUTES ObjectAttributes
+);
+
+NTSTATUS
+NTAPI
+NtCreateMutant(
+    OUT PHANDLE MutantHandle,
+    IN ACCESS_MASK DesiredAccess,
+    IN POBJECT_ATTRIBUTES ObjectAttributes,
+    IN BOOLEAN InitialOwner
+);
+
+NTSTATUS
+NTAPI
+NtCreateSemaphore(
+    OUT PHANDLE SemaphoreHandle,
+    IN ACCESS_MASK DesiredAccess,
+    IN POBJECT_ATTRIBUTES ObjectAttributes OPTIONAL,
+    IN LONG InitialCount,
+    IN LONG MaximumCount
+);
+
+NTSTATUS
+NTAPI
+NtCreateTimer(
+    OUT PHANDLE TimerHandle,
+    IN ACCESS_MASK DesiredAccess,
+    IN POBJECT_ATTRIBUTES ObjectAttributes OPTIONAL,
+    IN TIMER_TYPE TimerType
+);
+
+NTSTATUS
+NTAPI
+NtDeleteAtom(
+    IN RTL_ATOM Atom
+);
+
+NTSTATUS
+NTAPI
+NtDisplayString(
+    IN PUNICODE_STRING DisplayString
+);
+
+NTSTATUS
+NTAPI
+NtFindAtom(
+    IN  PWSTR AtomName,
+    IN  ULONG AtomNameLength,
+    OUT PRTL_ATOM Atom OPTIONAL
+);
+
+NTSTATUS
+NTAPI
+NtOpenEvent(
+    OUT PHANDLE EventHandle,
+    IN ACCESS_MASK DesiredAccess,
+    IN POBJECT_ATTRIBUTES ObjectAttributes
+);
+
+NTSTATUS
+NTAPI
+NtOpenEventPair(
+    OUT PHANDLE EventPairHandle,
+    IN ACCESS_MASK DesiredAccess,
+    IN POBJECT_ATTRIBUTES ObjectAttributes
+);
+
+NTSTATUS
+NTAPI
+NtOpenMutant(
+    OUT PHANDLE MutantHandle,
+    IN ACCESS_MASK DesiredAccess,
+    IN POBJECT_ATTRIBUTES ObjectAttributes
+);
+
+NTSTATUS
+NTAPI
+NtOpenSemaphore(
+    OUT PHANDLE SemaphoreHandle,
+    IN ACCESS_MASK DesiredAcces,
+    IN POBJECT_ATTRIBUTES ObjectAttributes
+);
+
+NTSTATUS
+NTAPI
+NtOpenTimer(
+    OUT PHANDLE TimerHandle,
+    IN ACCESS_MASK DesiredAccess,
+    IN POBJECT_ATTRIBUTES ObjectAttributes
+);
+
+NTSTATUS
+NTAPI
+NtPulseEvent(
+    IN HANDLE EventHandle,
+    IN PLONG PulseCount OPTIONAL
+);
+
+NTSTATUS
+NTAPI
+NtQueryDefaultLocale(
+    IN BOOLEAN UserProfile,
+    OUT PLCID DefaultLocaleId
+);
+
+NTSTATUS
+NTAPI
+NtQueryDefaultUILanguage(
+    PLANGID LanguageId
+);
+
+NTSTATUS
+NTAPI
+NtQueryEvent(
+    IN HANDLE EventHandle,
+    IN EVENT_INFORMATION_CLASS EventInformationClass,
+    OUT PVOID EventInformation,
+    IN ULONG EventInformationLength,
+    OUT PULONG ReturnLength
+);
+
+NTSTATUS
+NTAPI
+NtQueryInformationAtom(
+    IN  RTL_ATOM Atom,
+    IN  ATOM_INFORMATION_CLASS AtomInformationClass,
+    OUT PVOID AtomInformation,
+    IN  ULONG AtomInformationLength,
+    OUT PULONG ReturnLength OPTIONAL
+);
+
+NTSTATUS
+NTAPI
+NtQueryInstallUILanguage(
+    PLANGID LanguageId
+);
+
+NTSTATUS
+NTAPI
+NtQueryMutant(
+    IN HANDLE MutantHandle,
+    IN MUTANT_INFORMATION_CLASS MutantInformationClass,
+    OUT PVOID MutantInformation,
+    IN ULONG Length,
+    OUT PULONG ResultLength
+);
+
+NTSTATUS
+NTAPI
+NtQuerySemaphore(
+    IN HANDLE SemaphoreHandle,
+    IN SEMAPHORE_INFORMATION_CLASS SemaphoreInformationClass,
+    OUT PVOID SemaphoreInformation,
+    IN ULONG Length,
+    OUT PULONG ReturnLength
+);
+
+NTSTATUS
+NTAPI
+NtQuerySystemEnvironmentValue(
+    IN PUNICODE_STRING Name,
+    OUT PWSTR Value,
+    ULONG Length,
+    PULONG ReturnLength
+);
+
+NTSTATUS
+NTAPI
+NtQuerySystemInformation(
+    IN SYSTEM_INFORMATION_CLASS SystemInformationClass,
+    OUT PVOID SystemInformation,
+    IN ULONG Length,
+    OUT PULONG ResultLength
+);
+
+NTSTATUS
+NTAPI
+NtQueryTimer(
+    IN HANDLE TimerHandle,
+    IN TIMER_INFORMATION_CLASS TimerInformationClass,
+    OUT PVOID TimerInformation,
+    IN ULONG Length,
+    OUT PULONG ResultLength
+);
+
+NTSTATUS
+NTAPI
+NtRaiseHardError(
+    IN NTSTATUS ErrorStatus,
+    IN ULONG NumberOfParameters,
+    IN ULONG UnicodeStringParameterMask,
+    IN PULONG_PTR Parameters,
+    IN ULONG ValidResponseOptions,
+    OUT PULONG Response
+);
+
+NTSTATUS
+NTAPI
+NtReleaseMutant(
+    IN HANDLE MutantHandle,
+    IN PLONG ReleaseCount OPTIONAL
+);
+
+NTSTATUS
+NTAPI
+NtReleaseSemaphore(
+    IN HANDLE SemaphoreHandle,
+    IN LONG ReleaseCount,
+    OUT PLONG PreviousCount
+);
+
+NTSTATUS
+NTAPI
+NtResetEvent(
+    IN HANDLE EventHandle,
+    OUT PLONG NumberOfWaitingThreads OPTIONAL
+);
+
+NTSTATUS
+NTAPI
+NtSetDefaultLocale(
+    IN BOOLEAN UserProfile,
+    IN LCID DefaultLocaleId
+);
+
+NTSTATUS
+NTAPI
+NtSetDefaultUILanguage(
+    LANGID LanguageId
+);
+
+NTSTATUS
+NTAPI
+NtSetDefaultHardErrorPort(
+    IN HANDLE PortHandle
+);
+
+NTSTATUS
+NTAPI
+NtSetEvent(
+    IN HANDLE EventHandle,
+    OUT PLONG PreviousState  OPTIONAL
+);
+
+NTSTATUS
+NTAPI
+NtSetHighEventPair(
+    IN HANDLE EventPairHandle
+);
+
+NTSTATUS
+NTAPI
+NtSetHighWaitLowEventPair(
+    IN HANDLE EventPairHandle
+);
+
+NTSTATUS
+NTAPI
+NtSetLowEventPair(
+    HANDLE EventPair
+);
+
+NTSTATUS
+NTAPI
+NtSetLowWaitHighEventPair(
+    HANDLE EventPair
+);
+
+NTSTATUS
+NTAPI
+NtSetSystemEnvironmentValue(
+    IN PUNICODE_STRING VariableName,
+    IN PUNICODE_STRING Value
+);
+
+NTSTATUS
+NTAPI
+NtSetSystemInformation(
+    IN SYSTEM_INFORMATION_CLASS SystemInformationClass,
+    IN PVOID SystemInformation,
+    IN ULONG SystemInformationLength
+);
+
+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
+);
+
+NTSTATUS
+NTAPI
+NtSetUuidSeed(
+    IN PUCHAR UuidSeed
+);
+
+NTSTATUS
+NTAPI
+NtShutdownSystem(
+    IN SHUTDOWN_ACTION Action
+);
+
+NTSTATUS
+NTAPI
+NtWaitHighEventPair(
+    IN HANDLE EventPairHandle
+);
+
+NTSTATUS
+NTAPI
+NtWaitLowEventPair(
+    IN HANDLE EventPairHandle
+);
+
+NTSTATUS
+NTAPI
+NtTraceEvent(
+    IN ULONG TraceHandle,
+    IN ULONG Flags,
+    IN ULONG TraceHeaderLength,
+    IN PEVENT_TRACE_HEADER TraceHeader
+);
+
+NTSTATUS
+NTAPI
+ZwAddAtom(
[truncated at 1000 lines; 8826 more skipped]