NtAcceptConnectPort signature fixed.
[reactos.git] / reactos / include / ntos / zw.h
index e66eba5..82c57d3 100755 (executable)
@@ -1,5 +1,4 @@
-
-/* $Id: zw.h,v 1.23 2004/04/20 20:39:19 jimtabor Exp $
+/* $Id$
  *
  * COPYRIGHT:        See COPYING in the top level directory
  * PROJECT:          ReactOS kernel
@@ -53,18 +52,68 @@ typedef struct _EVENT_BASIC_INFORMATION
        LONG EventState;
 } EVENT_BASIC_INFORMATION, *PEVENT_BASIC_INFORMATION;
 
+// wmi trace event data
+typedef struct _EVENT_TRACE_HEADER {
+  USHORT           Size;
+  union {
+    USHORT FieldTypeFlags;
+    struct {
+      UCHAR            HeaderType;
+      UCHAR            MarkerFlags;
+    };
+  };
+  union {
+    ULONG         Version;
+    struct {
+      UCHAR     Type;
+      UCHAR     Level;
+      USHORT    Version;
+    } Class;
+  };
+  ULONG ThreadId;
+  ULONG ProcessId;
+  LARGE_INTEGER    TimeStamp;
+  union {
+    GUID      Guid;
+    ULONGLONG GuidPtr;
+  };
+ union {
+    struct {
+      ULONG ClientContext;
+      ULONG Flags;
+    };
+    struct {
+      ULONG KernelTime;
+      ULONG UserTime;
+    };
+    ULONG64 ProcessorTime;
+  };
+} EVENT_TRACE_HEADER, *PEVENT_TRACE_HEADER;
+
+
+typedef struct _FILE_USER_QUOTA_INFORMATION {
+       ULONG NextEntryOffset;
+       ULONG SidLength;
+       LARGE_INTEGER ChangeTime;
+       LARGE_INTEGER QuotaUsed;
+       LARGE_INTEGER QuotaThreshold;
+       LARGE_INTEGER QuotaLimit;
+       SID Sid[1];
+} FILE_USER_QUOTA_INFORMATION, *PFILE_USER_QUOTA_INFORMATION;
+
+
 //#define LCID ULONG
 //#define SECURITY_INFORMATION ULONG
 //typedef ULONG SECURITY_INFORMATION;
 
 #ifndef __USE_NT_LPC__
 NTSTATUS STDCALL
-NtAcceptConnectPort (PHANDLE PortHandle,
-                    HANDLE NamedPortHandle,
-                    PLPC_MESSAGE ServerReply,
-                    BOOLEAN AcceptIt,
-                    PLPC_SECTION_WRITE WriteMap,
-                    PLPC_SECTION_READ ReadMap);
+NtAcceptConnectPort (OUT PHANDLE PortHandle,
+                    IN  PVOID Context,
+                    IN  PLPC_MESSAGE ServerReply,
+                    IN  BOOLEAN AcceptIt,
+                    IN  PLPC_SECTION_WRITE WriteMap,
+                    IN  PLPC_SECTION_READ ReadMap);
 #else
 NTSTATUS STDCALL
 NtAcceptConnectPort (PHANDLE PortHandle,
@@ -75,6 +124,20 @@ NtAcceptConnectPort (PHANDLE PortHandle,
                     PLPC_SECTION_READ ReadMap);
 #endif /* ndef __USE_NT_LPC__ */
 
+NTSTATUS
+STDCALL
+NtAddBootEntry(
+       IN PUNICODE_STRING EntryName,
+       IN PUNICODE_STRING EntryValue
+       );
+
+NTSTATUS
+STDCALL
+ZwAddBootEntry(
+       IN PUNICODE_STRING EntryName,
+       IN PUNICODE_STRING EntryValue
+       );
+
 /*
  * FUNCTION: Adjusts the groups in an access token
  * ARGUMENTS: 
@@ -255,6 +318,20 @@ ZwAllocateVirtualMemory (
        IN ULONG  AllocationType,
        IN ULONG  Protect);
 
+
+
+NTSTATUS 
+STDCALL 
+NtAssignProcessToJobObject(
+       HANDLE JobHandle,
+    HANDLE ProcessHandle);
+
+NTSTATUS 
+STDCALL 
+ZwAssignProcessToJobObject(
+       HANDLE JobHandle,
+    HANDLE ProcessHandle);
+
 /*
  * FUNCTION: Returns from a callback into user mode
  * ARGUMENTS:
@@ -314,6 +391,23 @@ ZwClearEvent(
        IN HANDLE  EventHandle
        );
 
+NTSTATUS 
+STDCALL 
+NtCreateJobObject(
+       PHANDLE JobHandle, 
+       ACCESS_MASK DesiredAccess,
+    POBJECT_ATTRIBUTES ObjectAttributes
+       );
+
+NTSTATUS 
+STDCALL 
+ZwCreateJobObject(
+       PHANDLE JobHandle, 
+       ACCESS_MASK DesiredAccess,
+    POBJECT_ATTRIBUTES ObjectAttributes
+       );
+
+
 /*
  * FUNCTION: Closes an object handle
  * ARGUMENTS:
@@ -438,8 +532,8 @@ STDCALL
 NtCreateEvent(
        OUT PHANDLE EventHandle,
        IN ACCESS_MASK DesiredAccess,
-       IN POBJECT_ATTRIBUTES ObjectAttributes,
-       IN BOOLEAN ManualReset,
+       IN POBJECT_ATTRIBUTES ObjectAttributes  OPTIONAL,
+       IN EVENT_TYPE EventType,
        IN BOOLEAN InitialState
        );
 
@@ -448,8 +542,8 @@ STDCALL
 ZwCreateEvent(
        OUT PHANDLE EventHandle,
        IN ACCESS_MASK DesiredAccess,
-       IN POBJECT_ATTRIBUTES ObjectAttributes,
-       IN BOOLEAN ManualReset,
+       IN POBJECT_ATTRIBUTES ObjectAttributes  OPTIONAL,
+       IN EVENT_TYPE EventType,
        IN BOOLEAN InitialState
        );
 
@@ -666,7 +760,7 @@ STDCALL
 NtCreateMutant(
        OUT PHANDLE MutantHandle,
        IN ACCESS_MASK DesiredAccess,
-       IN POBJECT_ATTRIBUTES ObjectAttributes,
+       IN POBJECT_ATTRIBUTES ObjectAttributes  OPTIONAL,
        IN BOOLEAN InitialOwner
        );
 
@@ -675,7 +769,7 @@ STDCALL
 ZwCreateMutant(
        OUT PHANDLE MutantHandle,
        IN ACCESS_MASK DesiredAccess,
-       IN POBJECT_ATTRIBUTES ObjectAttributes,
+       IN POBJECT_ATTRIBUTES ObjectAttributes  OPTIONAL,
        IN BOOLEAN InitialOwner
        );
 
@@ -735,9 +829,9 @@ NtCreateNamedPipeFile (OUT PHANDLE NamedPipeFileHandle,
                       IN ULONG ShareAccess,
                       IN ULONG CreateDisposition,
                       IN ULONG CreateOptions,
-                      IN BOOLEAN WriteModeMessage,
-                      IN BOOLEAN ReadModeMessage,
-                      IN BOOLEAN NonBlocking,
+                      IN ULONG NamedPipeType,
+                      IN ULONG ReadMode,
+                      IN ULONG CompletionMode,
                       IN ULONG MaxInstances,
                       IN ULONG InBufferSize,
                       IN ULONG OutBufferSize,
@@ -751,9 +845,9 @@ ZwCreateNamedPipeFile (OUT PHANDLE NamedPipeFileHandle,
                       IN ULONG ShareAccess,
                       IN ULONG CreateDisposition,
                       IN ULONG CreateOptions,
-                      IN BOOLEAN WriteModeMessage,
-                      IN BOOLEAN ReadModeMessage,
-                      IN BOOLEAN NonBlocking,
+                      IN ULONG NamedPipeType,
+                      IN ULONG ReadMode,
+                      IN ULONG CompletionMode,
                       IN ULONG MaxInstances,
                       IN ULONG InBufferSize,
                       IN ULONG OutBufferSize,
@@ -902,19 +996,19 @@ ZwCreateSemaphore(
 NTSTATUS
 STDCALL
 NtCreateSymbolicLinkObject(
-       OUT PHANDLE SymbolicLinkHandle,
+       OUT PHANDLE LinkHandle,
        IN ACCESS_MASK DesiredAccess,
        IN POBJECT_ATTRIBUTES ObjectAttributes,
-       IN PUNICODE_STRING Name
+       IN PUNICODE_STRING LinkTarget
        );
 
 NTSTATUS
 STDCALL
 ZwCreateSymbolicLinkObject(
-       OUT PHANDLE SymbolicLinkHandle,
+       OUT PHANDLE LinkHandle,
        IN ACCESS_MASK DesiredAccess,
        IN POBJECT_ATTRIBUTES ObjectAttributes,
-       IN PUNICODE_STRING Name
+       IN PUNICODE_STRING LinkTarget
        );
 
 /*
@@ -1052,6 +1146,20 @@ ZwDeleteAtom(
        IN RTL_ATOM Atom
        );
 
+NTSTATUS
+STDCALL
+NtDeleteBootEntry(
+       IN PUNICODE_STRING EntryName,
+       IN PUNICODE_STRING EntryValue
+       );
+
+NTSTATUS
+STDCALL
+ZwDeleteBootEntry(
+       IN PUNICODE_STRING EntryName,
+       IN PUNICODE_STRING EntryValue
+       );
+
 /*
  * FUNCTION: Deletes a file or a directory
  * ARGUMENTS:
@@ -1204,6 +1312,22 @@ ZwDisplayString(
        IN PUNICODE_STRING DisplayString
        );
 
+
+NTSTATUS
+STDCALL
+NtEnumerateBootEntries(
+       IN ULONG Unknown1,
+       IN ULONG Unknown2
+       );
+
+NTSTATUS
+STDCALL
+ZwEnumerateBootEntries(
+       IN ULONG Unknown1,
+       IN ULONG Unknown2
+       );
+
+
 /*
  * FUNCTION: Returns information about the subkeys of an open key
  * ARGUMENTS:
@@ -1361,14 +1485,14 @@ NTSTATUS STDCALL ZwFreeVirtualMemory(IN HANDLE ProcessHandle,
  *       IoStatusBlock = Caller should supply storage for 
  *        IoControlCode = Contains the File System Control command. This is an 
  *                     index to the structures in InputBuffer and OutputBuffer.
- *             FSCTL_GET_RETRIEVAL_POINTERS    MAPPING_PAIR
- *             FSCTL_GET_RETRIEVAL_POINTERS    GET_RETRIEVAL_DESCRIPTOR
- *             FSCTL_GET_VOLUME_BITMAP         BITMAP_DESCRIPTOR
- *             FSCTL_MOVE_FILE                 MOVEFILE_DESCRIPTOR
+ *             FSCTL_GET_RETRIEVAL_POINTERS  [Input/Output] RETRIEVAL_POINTERS_BUFFER
+ *             FSCTL_GET_VOLUME_BITMAP       [Input]        STARTING_LCN_INPUT_BUFFER
+ *             FSCTL_GET_VOLUME_BITMAP       [Output]       VOLUME_BITMAP_BUFFER
+ *             FSCTL_MOVE_FILE               [Input]        MOVE_FILE_DATA
  *
- *       InputBuffer = Caller should supply storage for input buffer if FCTL expects one.
+ *       InputBuffer = Caller should supply storage for input buffer if FSCTL expects one.
  *       InputBufferSize = Size of the input bufffer
- *        OutputBuffer = Caller should supply storage for output buffer if FCTL expects one.
+ *        OutputBuffer = Caller should supply storage for output buffer if FSCTL expects one.
  *        OutputBufferSize  = Size of the input bufffer
  * RETURNS: Status [ STATUS_SUCCESS | STATUS_PENDING | STATUS_ACCESS_DENIED | STATUS_INSUFFICIENT_RESOURCES |
  *             STATUS_INVALID_PARAMETER | STATUS_INVALID_DEVICE_REQUEST ]
@@ -1407,7 +1531,7 @@ ZwFsControlFile(
  * FUNCTION: Retrieves the processor context of a thread
  * ARGUMENTS:
  *        ThreadHandle = Handle to a thread
- *        Context (OUT) = Caller allocated storage for the processor context
+ *        ThreadContext (OUT) = Caller allocated storage for the processor context
  * RETURNS: Status 
  */
 
@@ -1415,14 +1539,14 @@ NTSTATUS
 STDCALL 
 NtGetContextThread(
        IN HANDLE ThreadHandle,
-       OUT PCONTEXT Context
+       OUT PCONTEXT ThreadContext
        );
 
 NTSTATUS
 STDCALL 
 ZwGetContextThread(
        IN HANDLE ThreadHandle,
-       OUT PCONTEXT Context
+       OUT PCONTEXT ThreadContext
        );
 
 
@@ -1459,6 +1583,23 @@ ZwImpersonateThread(
        IN PSECURITY_QUALITY_OF_SERVICE SecurityQualityOfService
        );
 
+NTSTATUS
+STDCALL
+NtInitiatePowerAction (
+       IN POWER_ACTION SystemAction,
+       IN SYSTEM_POWER_STATE MinSystemState,
+       IN ULONG Flags,
+       IN BOOLEAN Asynchronous
+);
+
+NTSTATUS
+STDCALL
+ZwInitiatePowerAction (
+       IN POWER_ACTION SystemAction,
+       IN SYSTEM_POWER_STATE MinSystemState,
+       IN ULONG Flags,
+       IN BOOLEAN Asynchronous
+);
 /*
  * FUNCTION: Initializes the registry.
  * ARGUMENTS:
@@ -1476,6 +1617,19 @@ ZwInitializeRegistry(
        BOOLEAN SetUpBoot
        );
 
+NTSTATUS
+STDCALL
+NtIsProcessInJob(
+       IN HANDLE ProcessHandle,  // ProcessHandle must grant PROCESS_QUERY_INFORMATION access.
+       IN HANDLE JobHandle OPTIONAL    // JobHandle must JOB_OBJECT_QUERY grant access. Defaults to the current process's job object.
+       );
+
+NTSTATUS
+STDCALL
+ZwIsProcessInJob(
+       IN HANDLE ProcessHandle,  // ProcessHandle must grant PROCESS_QUERY_INFORMATION access.
+       IN HANDLE JobHandle OPTIONAL    // JobHandle must JOB_OBJECT_QUERY grant access. Defaults to the current process's job object. 
+       );
 
 NTSTATUS STDCALL
 NtListenPort (HANDLE PortHandle,
@@ -1563,16 +1717,29 @@ ZwLockFile(
  * RETURNS: Status
  */    
 
+
+NTSTATUS
+STDCALL
+NtMakePermanentObject(
+       IN HANDLE ObjectHandle
+       );
+
+NTSTATUS
+STDCALL
+ZwMakePermanentObject(
+       IN HANDLE ObjectHandle
+       );
+
 NTSTATUS
 STDCALL
 NtMakeTemporaryObject(
-       IN HANDLE Handle 
+       IN HANDLE ObjectHandle
        );
 
 NTSTATUS
 STDCALL
 ZwMakeTemporaryObject(
-       IN HANDLE Handle 
+       IN HANDLE ObjectHandle
        );
 /*
  * FUNCTION: Maps a view of a section into the virtual address space of a 
@@ -1720,10 +1887,10 @@ NtNotifyChangeKey(
        IN PVOID ApcContext OPTIONAL, 
        OUT PIO_STATUS_BLOCK IoStatusBlock,
        IN ULONG CompletionFilter,
-       IN BOOLEAN Asynchroneous, 
-       OUT PVOID ChangeBuffer,
+       IN BOOLEAN WatchSubtree,
+       OUT PVOID Buffer,
        IN ULONG Length,
-       IN BOOLEAN WatchSubtree
+       IN BOOLEAN Asynchronous
        );
 
 NTSTATUS
@@ -1735,10 +1902,10 @@ ZwNotifyChangeKey(
        IN PVOID ApcContext OPTIONAL, 
        OUT PIO_STATUS_BLOCK IoStatusBlock,
        IN ULONG CompletionFilter,
-       IN BOOLEAN Asynchroneous, 
-       OUT PVOID ChangeBuffer,
+       IN BOOLEAN WatchSubtree,
+       OUT PVOID Buffer,
        IN ULONG Length,
-       IN BOOLEAN WatchSubtree
+       IN BOOLEAN Asynchronous
        );
 
 /*
@@ -1870,7 +2037,23 @@ ZwOpenIoCompletion(
        IN ACCESS_MASK DesiredAccess,
        IN POBJECT_ATTRIBUTES ObjectAttributes
        );
-       
+
+
+NTSTATUS 
+STDCALL 
+NtOpenJobObject(
+       PHANDLE JobHandle, 
+       ACCESS_MASK DesiredAccess,
+       POBJECT_ATTRIBUTES ObjectAttributes
+       );
+
+NTSTATUS 
+STDCALL 
+ZwOpenJobObject(
+       PHANDLE JobHandle, 
+       ACCESS_MASK DesiredAccess,
+       POBJECT_ATTRIBUTES ObjectAttributes
+       );
 /*
  * FUNCTION: Opens an existing key in the registry
  * ARGUMENTS:
@@ -1969,6 +2152,25 @@ ZwOpenProcessToken(
        OUT PHANDLE TokenHandle
        );
 
+
+NTSTATUS
+STDCALL
+NtOpenProcessTokenEx(
+    IN HANDLE ProcessHandle,
+    IN ACCESS_MASK DesiredAccess,
+    IN ULONG HandleAttributes,
+    OUT PHANDLE TokenHandle
+    );
+
+
+NTSTATUS
+STDCALL
+ZwOpenProcessTokenEx(
+    IN HANDLE ProcessHandle,
+    IN ACCESS_MASK DesiredAccess,
+    IN ULONG HandleAttributes,
+    OUT PHANDLE TokenHandle
+    );
 /*
  * FUNCTION: Opens an existing section object
  * ARGUMENTS:
@@ -2003,14 +2205,14 @@ ZwOpenSection(
 NTSTATUS
 STDCALL
 NtOpenSemaphore(
-       IN HANDLE SemaphoreHandle,
+       OUT PHANDLE SemaphoreHandle,
        IN ACCESS_MASK DesiredAcces,
        IN POBJECT_ATTRIBUTES ObjectAttributes
        );
 NTSTATUS
 STDCALL
 ZwOpenSemaphore(
-       IN HANDLE SemaphoreHandle,
+       OUT PHANDLE SemaphoreHandle,
        IN ACCESS_MASK DesiredAcces,
        IN POBJECT_ATTRIBUTES ObjectAttributes
        );
@@ -2025,14 +2227,14 @@ ZwOpenSemaphore(
 NTSTATUS
 STDCALL
 NtOpenSymbolicLinkObject(
-       OUT PHANDLE SymbolicLinkHandle,
+       OUT PHANDLE LinkHandle,
        IN ACCESS_MASK DesiredAccess,
        IN POBJECT_ATTRIBUTES ObjectAttributes
        );
 NTSTATUS
 STDCALL
 ZwOpenSymbolicLinkObject(
-       OUT PHANDLE SymbolicLinkHandle,
+       OUT PHANDLE LinkHandle,
        IN ACCESS_MASK DesiredAccess,
        IN POBJECT_ATTRIBUTES ObjectAttributes
        );
@@ -2079,6 +2281,28 @@ ZwOpenThreadToken(
        IN BOOLEAN OpenAsSelf,
        OUT PHANDLE TokenHandle
        );
+
+NTSTATUS
+STDCALL
+NtOpenThreadTokenEx(
+    IN HANDLE ThreadHandle,
+    IN ACCESS_MASK DesiredAccess,
+    IN BOOLEAN OpenAsSelf,
+    IN ULONG HandleAttributes,
+    OUT PHANDLE TokenHandle
+    );
+
+
+NTSTATUS
+STDCALL
+ZwOpenThreadTokenEx(
+    IN HANDLE ThreadHandle,
+    IN ACCESS_MASK DesiredAccess,
+    IN BOOLEAN OpenAsSelf,
+    IN ULONG HandleAttributes,
+    OUT PHANDLE TokenHandle
+    );
+
 /*
  * FUNCTION: Opens an existing timer
  * ARGUMENTS:
@@ -2113,6 +2337,27 @@ ZwOpenTimer(
  * RETURNS: Status
  */
 
+
+NTSTATUS 
+STDCALL 
+NtPowerInformation(
+       IN POWER_INFORMATION_LEVEL PowerInformationLevel,
+       IN PVOID InputBuffer  OPTIONAL,
+       IN ULONG InputBufferLength,
+       OUT PVOID OutputBuffer  OPTIONAL,
+       IN ULONG OutputBufferLength
+       );
+
+NTSTATUS 
+STDCALL 
+ZwPowerInformation(
+       IN POWER_INFORMATION_LEVEL PowerInformationLevel,
+       IN PVOID InputBuffer  OPTIONAL,
+       IN ULONG InputBufferLength,
+       OUT PVOID OutputBuffer  OPTIONAL,
+       IN ULONG OutputBufferLength
+       );
+
 NTSTATUS
 STDCALL
 NtPrivilegeCheck(
@@ -2197,14 +2442,14 @@ NTSTATUS
 STDCALL
 NtPulseEvent(
        IN HANDLE EventHandle,
-       IN PULONG PulseCount OPTIONAL
+       OUT PLONG PreviousState OPTIONAL
        );
 
 NTSTATUS
 STDCALL
 ZwPulseEvent(
        IN HANDLE EventHandle,
-       IN PULONG PulseCount OPTIONAL
+       OUT PLONG PreviousState OPTIONAL
        );
 
 /*
@@ -2215,14 +2460,48 @@ ZwPulseEvent(
  * RETURNS: Status
  */
 
-NTSTATUS STDCALL
-NtQueryAttributesFile(IN POBJECT_ATTRIBUTES ObjectAttributes,
-                     OUT PFILE_BASIC_INFORMATION FileInformation);
+NTSTATUS
+STDCALL
+NtQueryAttributesFile(
+       IN POBJECT_ATTRIBUTES ObjectAttributes,
+       OUT PFILE_BASIC_INFORMATION FileInformation
+       );
 
-NTSTATUS STDCALL
-ZwQueryAttributesFile(IN POBJECT_ATTRIBUTES ObjectAttributes,
-                     OUT PFILE_BASIC_INFORMATION FileInformation);
+NTSTATUS
+STDCALL
+ZwQueryAttributesFile(
+       IN POBJECT_ATTRIBUTES ObjectAttributes,
+       OUT PFILE_BASIC_INFORMATION FileInformation
+       );
 
+
+NTSTATUS
+STDCALL
+NtQueryBootEntryOrder(
+       IN ULONG Unknown1,
+       IN ULONG Unknown2
+       );
+
+NTSTATUS
+STDCALL
+ZwQueryBootEntryOrder(
+       IN ULONG Unknown1,
+       IN ULONG Unknown2
+       );
+
+NTSTATUS
+STDCALL
+NtQueryBootOptions(
+       IN ULONG Unknown1,
+       IN ULONG Unknown2
+       );
+
+NTSTATUS
+STDCALL
+ZwQueryBootOptions(
+       IN ULONG Unknown1,
+       IN ULONG Unknown2
+       );
 /*
  * FUNCTION: Queries the default locale id
  * ARGUMENTS:
@@ -2247,6 +2526,18 @@ ZwQueryDefaultLocale(
        OUT PLCID DefaultLocaleId
        );
 
+NTSTATUS 
+STDCALL 
+NtQueryDefaultUILanguage(
+       PLANGID LanguageId
+       );
+
+NTSTATUS 
+STDCALL 
+ZwQueryDefaultUILanguage(
+       PLANGID LanguageId
+       );
+
 /*
  * FUNCTION: Queries a directory file.
  * ARGUMENTS:
@@ -2367,7 +2658,7 @@ NtQueryEvent(
        IN EVENT_INFORMATION_CLASS EventInformationClass,
        OUT PVOID EventInformation,
        IN ULONG EventInformationLength,
-       OUT PULONG ReturnLength
+       OUT PULONG ReturnLength  OPTIONAL
        );
 NTSTATUS
 STDCALL
@@ -2376,7 +2667,7 @@ ZwQueryEvent(
        IN EVENT_INFORMATION_CLASS EventInformationClass,
        OUT PVOID EventInformation,
        IN ULONG EventInformationLength,
-       OUT PULONG ReturnLength
+       OUT PULONG ReturnLength  OPTIONAL
        );
 
 NTSTATUS STDCALL
@@ -2411,7 +2702,7 @@ ZwQueryFullAttributesFile(IN POBJECT_ATTRIBUTES ObjectAttributes,
          FileNamesInformation                  FILE_NAMES_INFORMATION
          FileDispositionInformation            FILE_DISPOSITION_INFORMATION
          FilePositionInformation               FILE_POSITION_INFORMATION
-         FileFullEaInformation                 FILE_FULL_EA_INFORMATION                
+         FileFullEaInformation                 FILE_FULL_EA_INFORMATION
          FileModeInformation                   FILE_MODE_INFORMATION
          FileAlignmentInformation              FILE_ALIGNMENT_INFORMATION
          FileAllInformation                    FILE_ALL_INFORMATION
@@ -2424,7 +2715,7 @@ ZwQueryFullAttributesFile(IN POBJECT_ATTRIBUTES ObjectAttributes,
          FilePipeRemoteInformation             
          FileMailslotQueryInformation          
          FileMailslotSetInformation            
-         FileCompressionInformation            FILE_COMPRESSION_INFORMATION            
+         FileCompressionInformation            FILE_COMPRESSION_INFORMATION
          FileCopyOnWriteInformation            
          FileCompletionInformation             IO_COMPLETION_CONTEXT
          FileMoveClusterInformation            
@@ -2437,7 +2728,7 @@ ZwQueryFullAttributesFile(IN POBJECT_ATTRIBUTES ObjectAttributes,
          FileContentIndexInformation           
          FileInheritContentIndexInformation    
          FileOleInformation                    
-         FileMaximumInformation                        
+         FileMaximumInformation                
 
  * REMARK:
  *       This procedure maps to the win32 GetShortPathName, GetLongPathName,
@@ -2464,6 +2755,25 @@ ZwQueryInformationFile(
        FILE_INFORMATION_CLASS FileInformationClass
        );
 
+NTSTATUS 
+STDCALL 
+NtQueryInformationJobObject(
+       HANDLE JobHandle,
+    JOBOBJECTINFOCLASS JobInformationClass, 
+       PVOID JobInformation,
+    ULONG JobInformationLength, 
+       PULONG ReturnLength
+       );
+
+NTSTATUS 
+STDCALL 
+ZwQueryInformationJobObject(
+       HANDLE JobHandle,
+    JOBOBJECTINFOCLASS JobInformationClass, 
+       PVOID JobInformation,
+    ULONG JobInformationLength, 
+       PULONG ReturnLength
+       );
 
 NTSTATUS STDCALL
 NtQueryInformationPort (HANDLE PortHandle,
@@ -2523,7 +2833,17 @@ NtQueryInformationThread(
        IN THREADINFOCLASS ThreadInformationClass,
        OUT PVOID ThreadInformation,
        IN ULONG ThreadInformationLength,
-       OUT PULONG ReturnLength 
+       OUT PULONG ReturnLength  OPTIONAL
+       );
+
+NTSTATUS 
+STDCALL 
+ZwQueryInformationThread(
+       IN HANDLE ThreadHandle,
+       IN THREADINFOCLASS ThreadInformationClass,
+       OUT PVOID ThreadInformation,
+       IN ULONG ThreadInformationLength,
+       OUT PULONG ReturnLength  OPTIONAL
        );
 
 
@@ -2547,6 +2867,18 @@ ZwQueryInformationToken(
        OUT PULONG ReturnLength
        );
 
+NTSTATUS 
+STDCALL 
+NtQueryInstallUILanguage(
+       PLANGID LanguageId
+       );
+
+NTSTATUS 
+STDCALL 
+ZwQueryInstallUILanguage(
+       PLANGID LanguageId
+       );
+
 NTSTATUS
 STDCALL
 NtQueryIoCompletion(
@@ -2597,6 +2929,35 @@ ZwQueryKey(
        );
 
 
+
+NTSTATUS
+STDCALL
+NtQueryQuotaInformationFile(
+    IN HANDLE FileHandle,
+    OUT PIO_STATUS_BLOCK IoStatusBlock,
+    OUT PVOID Buffer,
+    IN ULONG Length,
+    IN BOOLEAN ReturnSingleEntry,
+    IN PVOID SidList OPTIONAL,
+    IN ULONG SidListLength,
+    IN PSID StartSid OPTIONAL,
+    IN BOOLEAN RestartScan
+    );
+
+
+NTSTATUS
+STDCALL
+ZwQueryQuotaInformationFile(
+    IN HANDLE FileHandle,
+    OUT PIO_STATUS_BLOCK IoStatusBlock,
+    OUT PVOID Buffer,
+    IN ULONG Length,
+    IN BOOLEAN ReturnSingleEntry,
+    IN PVOID SidList OPTIONAL,
+    IN ULONG SidListLength,
+    IN PSID StartSid OPTIONAL,
+    IN BOOLEAN RestartScan
+    );
 // draft
 
 NTSTATUS
@@ -2634,27 +2995,27 @@ NTSTATUS
 STDCALL
 NtQueryMutant(
        IN HANDLE MutantHandle,
-       IN CINT MutantInformationClass,
+       IN MUTANT_INFORMATION_CLASS MutantInformationClass,
        OUT PVOID MutantInformation,
-       IN ULONG Length,
-       OUT PULONG ResultLength
+       IN ULONG MutantInformationLength,
+       OUT PULONG ResultLength  OPTIONAL
        );
 
 NTSTATUS
 STDCALL
 ZwQueryMutant(
        IN HANDLE MutantHandle,
-       IN CINT MutantInformationClass,
+       IN MUTANT_INFORMATION_CLASS MutantInformationClass,
        OUT PVOID MutantInformation,
-       IN ULONG Length,
-       OUT PULONG ResultLength
+       IN ULONG MutantInformationLength,
+       OUT PULONG ResultLength  OPTIONAL
        );
 
 /*
  * FUNCTION: Queries the system ( high-resolution ) performance counter.
  * ARGUMENTS: 
- *        Counter = Performance counter
- *       Frequency = Performance frequency
+ *        PerformanceCounter = Performance counter
+ *       PerformanceFrequency = Performance frequency
  * REMARKS:
        This procedure queries a tick count faster than 10ms ( The resolution for  Intel®-based CPUs is about 0.8 microseconds.)
        This procedure maps to the win32 QueryPerformanceCounter, QueryPerformanceFrequency 
@@ -2664,15 +3025,15 @@ ZwQueryMutant(
 NTSTATUS
 STDCALL
 NtQueryPerformanceCounter(
-       IN PLARGE_INTEGER Counter,
-       IN PLARGE_INTEGER Frequency
+       OUT PLARGE_INTEGER PerformanceCounter,
+       OUT PLARGE_INTEGER PerformanceFrequency  OPTIONAL
        );
 
 NTSTATUS
 STDCALL
 ZwQueryPerformanceCounter(
-       IN PLARGE_INTEGER Counter,
-       IN PLARGE_INTEGER Frequency
+       OUT PLARGE_INTEGER PerformanceCounter,
+       OUT PLARGE_INTEGER PerformanceFrequency  OPTIONAL
        );
 
 /*
@@ -2693,7 +3054,7 @@ NtQuerySemaphore(
        IN      SEMAPHORE_INFORMATION_CLASS     SemaphoreInformationClass,
        OUT     PVOID                           SemaphoreInformation,
        IN      ULONG                           Length,
-       OUT     PULONG                          ReturnLength
+       OUT     PULONG                          ReturnLength  OPTIONAL
        );
 
 NTSTATUS
@@ -2703,7 +3064,7 @@ ZwQuerySemaphore(
        IN      SEMAPHORE_INFORMATION_CLASS     SemaphoreInformationClass,
        OUT     PVOID                           SemaphoreInformation,
        IN      ULONG                           Length,
-       OUT     PULONG                          ReturnLength
+       OUT     PULONG                          ReturnLength  OPTIONAL
        );
 
 
@@ -2719,17 +3080,17 @@ ZwQuerySemaphore(
 NTSTATUS
 STDCALL
 NtQuerySymbolicLinkObject(
-       IN HANDLE               SymLinkObjHandle,
+       IN HANDLE               LinkHandle,
        OUT PUNICODE_STRING     LinkTarget,
-       OUT PULONG              DataWritten OPTIONAL
+       OUT PULONG              ResultLength  OPTIONAL
        );
 
 NTSTATUS
 STDCALL
 ZwQuerySymbolicLinkObject(
-       IN HANDLE               SymLinkObjHandle,
-       OUT PUNICODE_STRING     LinkName,
-       OUT PULONG              DataWritten OPTIONAL
+       IN HANDLE               LinkHandle,
+       OUT PUNICODE_STRING     LinkTarget,
+       OUT PULONG              ResultLength  OPTIONAL
        ); 
 
 
@@ -2746,19 +3107,19 @@ ZwQuerySymbolicLinkObject(
 NTSTATUS
 STDCALL
 NtQuerySystemEnvironmentValue(
-       IN PUNICODE_STRING Name,
-       OUT PVOID Value,
-       ULONG Length,
-       PULONG ReturnLength
+       IN PUNICODE_STRING VariableName,
+       OUT PWCHAR ValueBuffer,
+       IN ULONG ValueBufferLength,
+       OUT PULONG ReturnLength  OPTIONAL
        );
 
 NTSTATUS
 STDCALL
 ZwQuerySystemEnvironmentValue(
-       IN PUNICODE_STRING Name,
-       OUT PVOID Value,
-       ULONG Length,
-       PULONG ReturnLength
+       IN PUNICODE_STRING VariableName,
+       OUT PWCHAR ValueBuffer,
+       IN ULONG ValueBufferLength,
+       OUT PULONG ReturnLength  OPTIONAL
        );
 
 
@@ -2810,19 +3171,19 @@ NTSTATUS
 STDCALL
 NtQueryTimer(
        IN HANDLE TimerHandle,
-       IN CINT TimerInformationClass,
+       IN TIMER_INFORMATION_CLASS TimerInformationClass,
        OUT PVOID TimerInformation,
-       IN ULONG Length,
-       OUT PULONG ResultLength
+       IN ULONG TimerInformationLength,
+       OUT PULONG ReturnLength  OPTIONAL
        );
 NTSTATUS
 STDCALL
 ZwQueryTimer(
        IN HANDLE TimerHandle,
-       IN CINT TimerInformationClass,
+       IN TIMER_INFORMATION_CLASS TimerInformationClass,
        OUT PVOID TimerInformation,
-       IN ULONG Length,
-       OUT PULONG ResultLength
+       IN ULONG TimerInformationLength,
+       OUT PULONG ReturnLength  OPTIONAL
        );
 
 /*
@@ -3138,12 +3499,12 @@ ZwReadVirtualMemory(
 NTSTATUS
 STDCALL        
 NtRegisterThreadTerminatePort(
-       HANDLE TerminationPort
+       HANDLE PortHandle
        );
 NTSTATUS
 STDCALL        
 ZwRegisterThreadTerminatePort(
-       HANDLE TerminationPort
+       HANDLE PortHandle
        );
 
 /*
@@ -3157,14 +3518,14 @@ NTSTATUS
 STDCALL        
 NtReleaseMutant(
        IN HANDLE MutantHandle,
-       IN PULONG ReleaseCount OPTIONAL
+       IN PLONG PreviousCount  OPTIONAL
        );
 
 NTSTATUS
 STDCALL        
 ZwReleaseMutant(
        IN HANDLE MutantHandle,
-       IN PULONG ReleaseCount OPTIONAL
+       IN PLONG PreviousCount  OPTIONAL
        );
 
 /*
@@ -3180,7 +3541,7 @@ STDCALL
 NtReleaseSemaphore(
        IN      HANDLE  SemaphoreHandle,
        IN      LONG    ReleaseCount,
-       OUT     PLONG   PreviousCount
+       OUT     PLONG   PreviousCount  OPTIONAL
        );
 
 NTSTATUS
@@ -3188,7 +3549,7 @@ STDCALL
 ZwReleaseSemaphore(
        IN      HANDLE  SemaphoreHandle,
        IN      LONG    ReleaseCount,
-       OUT     PLONG   PreviousCount
+       OUT     PLONG   PreviousCount  OPTIONAL
        );
 
 /*
@@ -3205,8 +3566,8 @@ NTSTATUS
 STDCALL
 NtRemoveIoCompletion(
    IN  HANDLE           IoCompletionHandle,
-   OUT PULONG           CompletionKey,
-   OUT PULONG           CompletionValue,
+   OUT PVOID           *CompletionKey,
+   OUT PVOID           *CompletionContext,
    OUT PIO_STATUS_BLOCK IoStatusBlock,
    IN  PLARGE_INTEGER   Timeout OPTIONAL
    );
@@ -3215,8 +3576,8 @@ NTSTATUS
 STDCALL
 ZwRemoveIoCompletion(
    IN  HANDLE           IoCompletionHandle,
-   OUT PULONG           CompletionKey,
-   OUT PULONG           CompletionValue,
+   OUT PVOID           *CompletionKey,
+   OUT PVOID           *CompletionValue,
    OUT PIO_STATUS_BLOCK IoStatusBlock,
    IN  PLARGE_INTEGER   Timeout OPTIONAL
    );
@@ -3306,13 +3667,13 @@ NTSTATUS
 STDCALL
 NtResetEvent(
        HANDLE EventHandle,
-       PULONG NumberOfWaitingThreads OPTIONAL
+       OUT PLONG PreviousState OPTIONAL
        );
 NTSTATUS
 STDCALL
 ZwResetEvent(
        HANDLE EventHandle,
-       PULONG NumberOfWaitingThreads OPTIONAL
+       OUT PLONG PreviousState OPTIONAL
        );
 //draft
 NTSTATUS
@@ -3344,13 +3705,13 @@ NTSTATUS
 STDCALL
 NtResumeThread(
        IN HANDLE ThreadHandle,
-       OUT PULONG SuspendCount
+       OUT PULONG SuspendCount  OPTIONAL
        );
 NTSTATUS
 STDCALL
 ZwResumeThread(
        IN HANDLE ThreadHandle,
-       OUT PULONG SuspendCount
+       OUT PULONG SuspendCount  OPTIONAL
        );
 /*
  * FUNCTION: Writes the content of a registry key to ascii file
@@ -3375,11 +3736,56 @@ ZwSaveKey(
        IN HANDLE FileHandle
        );
 
+NTSTATUS
+STDCALL
+NtSaveKeyEx(
+       IN HANDLE KeyHandle,
+       IN HANDLE FileHandle,
+       IN ULONG Flags // REG_STANDARD_FORMAT, etc..
+       );
+
+NTSTATUS
+STDCALL
+ZwSaveKeyEx(
+       IN HANDLE KeyHandle,
+       IN HANDLE FileHandle,
+       IN ULONG Flags // REG_STANDARD_FORMAT, etc..
+       );
+
+NTSTATUS
+STDCALL
+NtSetBootEntryOrder(
+       IN ULONG Unknown1,
+       IN ULONG Unknown2
+       );
+
+NTSTATUS
+STDCALL
+ZwSetBootEntryOrder(
+       IN ULONG Unknown1,
+       IN ULONG Unknown2
+       );
+
+NTSTATUS 
+STDCALL 
+NtSetBootOptions(
+       ULONG Unknown1, 
+       ULONG Unknown2
+       );
+
+NTSTATUS 
+STDCALL 
+ZwSetBootOptions(
+       ULONG Unknown1, 
+       ULONG Unknown2
+       );
+
+
 /*
  * FUNCTION: Sets the context of a specified thread.
  * ARGUMENTS: 
  *        ThreadHandle = Handle to the thread
- *        Context =  The processor context.
+ *        ThreadContext =  The processor context.
  * RETURNS: Status
  */
 
@@ -3387,13 +3793,13 @@ NTSTATUS
 STDCALL
 NtSetContextThread(
        IN HANDLE ThreadHandle,
-       IN PCONTEXT Context
+       IN PCONTEXT ThreadContext
        );
 NTSTATUS
 STDCALL
 ZwSetContextThread(
        IN HANDLE ThreadHandle,
-       IN PCONTEXT Context
+       IN PCONTEXT ThreadContext
        );
 
 /*
@@ -3420,6 +3826,17 @@ ZwSetDefaultLocale(
        IN LCID DefaultLocaleId
        );
 
+NTSTATUS 
+STDCALL 
+NtSetDefaultUILanguage(
+       LANGID LanguageId
+       );
+
+NTSTATUS 
+STDCALL 
+ZwSetDefaultUILanguage(
+       LANGID LanguageId
+       );
 /*
  * FUNCTION: Sets the default hard error port
  * ARGUMENTS:
@@ -3481,14 +3898,14 @@ NTSTATUS
 STDCALL
 NtSetEvent(
        IN HANDLE EventHandle,
-       PULONG NumberOfThreadsReleased
+       OUT PLONG PreviousState  OPTIONAL
        );
 
 NTSTATUS
 STDCALL
 ZwSetEvent(
        IN HANDLE EventHandle,
-       PULONG NumberOfThreadsReleased
+       OUT PLONG PreviousState  OPTIONAL
        );
 
 /*
@@ -3567,6 +3984,23 @@ ZwSetInformationFile(
        IN      FILE_INFORMATION_CLASS  FileInformationClass
        );
 
+NTSTATUS 
+STDCALL 
+NtSetInformationJobObject(
+       HANDLE JobHandle,
+    JOBOBJECTINFOCLASS JobInformationClass,
+    PVOID JobInformation, 
+       ULONG JobInformationLength
+       );
+
+NTSTATUS 
+STDCALL 
+ZwSetInformationJobObject(
+       HANDLE JobHandle,
+    JOBOBJECTINFOCLASS JobInformationClass,
+    PVOID JobInformation, 
+       ULONG JobInformationLength
+       );
 /*
  * FUNCTION: Changes a set of thread specific parameters
  * ARGUMENTS: 
@@ -3659,8 +4093,8 @@ NTSTATUS
 STDCALL
 NtSetIoCompletion(
    IN HANDLE   IoCompletionPortHandle,
-   IN ULONG    CompletionKey,
-   IN ULONG    CompletionValue,
+   IN PVOID    CompletionKey,
+   IN PVOID    CompletionContext,
    IN NTSTATUS CompletionStatus,
    IN ULONG    CompletionInformation
    );
@@ -3669,8 +4103,8 @@ NTSTATUS
 STDCALL
 ZwSetIoCompletion(
    IN HANDLE   IoCompletionPortHandle,
-   IN ULONG    CompletionKey,
-   IN ULONG    CompletionValue,
+   IN PVOID    CompletionKey,
+   IN PVOID    CompletionContext,
    IN NTSTATUS CompletionStatus,
    IN ULONG    CompletionInformation
    );
@@ -3768,6 +4202,24 @@ ZwSetHighWaitLowThread(
        VOID
        );
 
+NTSTATUS 
+STDCALL 
+NtSetQuotaInformationFile(
+    HANDLE FileHandle,
+    PIO_STATUS_BLOCK IoStatusBlock, 
+       PFILE_USER_QUOTA_INFORMATION Buffer,
+       ULONG BufferLength
+       ); 
+
+NTSTATUS 
+STDCALL 
+ZwSetQuotaInformationFile(
+    HANDLE FileHandle,
+    PIO_STATUS_BLOCK IoStatusBlock, 
+       PFILE_USER_QUOTA_INFORMATION Buffer,
+       ULONG BufferLength
+       ); 
+
 NTSTATUS
 STDCALL
 NtSetSecurityObject(
@@ -3863,16 +4315,16 @@ ZwSetSystemTime(
 NTSTATUS
 STDCALL
 NtSetTimerResolution(
-       IN ULONG RequestedResolution,
-       IN BOOL SetOrUnset,
-       OUT PULONG ActualResolution
+       IN ULONG DesiredResolution,
+       IN BOOLEAN SetResolution,
+       OUT PULONG CurrentResolution
        );
 NTSTATUS
 STDCALL
 ZwSetTimerResolution(
-       IN ULONG RequestedResolution,
-       IN BOOL SetOrUnset,
-       OUT PULONG ActualResolution
+       IN ULONG DesiredResolution,
+       IN BOOLEAN SetResolution,
+       OUT PULONG CurrentResolution
        );
 
 /*
@@ -4048,16 +4500,64 @@ ZwStopProfile(
 NTSTATUS 
 STDCALL 
 NtTerminateProcess(
-       IN HANDLE ProcessHandle,
+       IN HANDLE ProcessHandle  OPTIONAL,
        IN NTSTATUS ExitStatus
        );
 NTSTATUS 
 STDCALL 
 ZwTerminateProcess(
-       IN HANDLE ProcessHandle,
+       IN HANDLE ProcessHandle  OPTIONAL,
        IN NTSTATUS ExitStatus
        );
 
+NTSTATUS 
+STDCALL 
+NtTerminateJobObject(
+       HANDLE JobHandle, 
+       NTSTATUS ExitStatus
+       );
+
+NTSTATUS 
+STDCALL 
+ZwTerminateJobObject(
+       HANDLE JobHandle, 
+       NTSTATUS ExitStatus
+       );
+
+NTSTATUS
+STDCALL
+NtTraceEvent(
+       IN ULONG TraceHandle,
+       IN ULONG Flags,
+       IN ULONG TraceHeaderLength,
+       IN struct _EVENT_TRACE_HEADER* TraceHeader
+       );
+
+NTSTATUS
+STDCALL
+ZwTraceEvent(
+       IN ULONG TraceHandle,
+       IN ULONG Flags,
+       IN ULONG TraceHeaderLength,
+       IN struct _EVENT_TRACE_HEADER* TraceHeader
+       );
+
+NTSTATUS 
+STDCALL 
+NtTranslateFilePath(
+       ULONG Unknown1, 
+       ULONG Unknown2,
+       ULONG Unknown3
+       );
+
+
+NTSTATUS 
+STDCALL 
+ZwTranslateFilePath(
+       ULONG Unknown1, 
+       ULONG Unknown2,
+       ULONG Unknown3
+       );
 /*
  * FUNCTION: Unloads a driver.
  * ARGUMENTS: 
@@ -4369,14 +4869,14 @@ NTSTATUS
 STDCALL 
 NtSuspendThread(
        IN HANDLE ThreadHandle,
-       IN PULONG PreviousSuspendCount 
+       OUT PULONG PreviousSuspendCount  OPTIONAL
        );
 
 NTSTATUS 
 STDCALL 
 ZwSuspendThread(
        IN HANDLE ThreadHandle,
-       IN PULONG PreviousSuspendCount 
+       OUT PULONG PreviousSuspendCount  OPTIONAL
        );
 
 /*
@@ -4429,21 +4929,6 @@ ZwYieldExecution(
        VOID
        );
 
-/* --- PLUG AND PLAY --- */
-
-NTSTATUS
-STDCALL
-NtPlugPlayControl (DWORD Unknown1,
-                   DWORD Unknown2,
-                   DWORD Unknown3);
-
-NTSTATUS
-STDCALL
-NtGetPlugPlayEvent (ULONG Reserved1,
-                    ULONG Reserved2,
-                    PVOID Buffer,
-                    ULONG BufferLength);
-
 /* --- POWER MANAGEMENT --- */
 
 #ifndef __USE_W32API
@@ -4527,12 +5012,6 @@ NtSetLdtEntries (ULONG Selector1,
                 ULONG Selector2,
                 LDT_ENTRY LdtEntry2);
 
-NTSTATUS
-STDCALL
-NtQueryOleDirectoryFile (
-       VOID
-       );
-
 /*
  * FUNCTION: Checks a clients access rights to a object
  * ARGUMENTS: 
@@ -4544,7 +5023,10 @@ NtQueryOleDirectoryFile (
  *       ReturnLength = Bytes written
  *       GrantedAccess = 
  *       AccessStatus = Indicates if the ClientToken allows the requested access
- * REMARKS: The arguments map to the win32 AccessCheck 
+ * REMARKS: The arguments map to the win32 AccessCheck
+ *      Gary Nebbett is wrong:
+ *        The 7th argument is a PACCESS_MASK, not a PULONG.
+ *        The 8th argument is a PNTSTATUS, not a PBOOLEAN.
  * RETURNS: Status
  */
 
@@ -4557,8 +5039,8 @@ NtAccessCheck(
        IN PGENERIC_MAPPING GenericMapping,
        OUT PPRIVILEGE_SET PrivilegeSet,
        OUT PULONG ReturnLength,
-       OUT PULONG GrantedAccess,
-       OUT PBOOLEAN AccessStatus
+       OUT PACCESS_MASK GrantedAccess,
+       OUT PNTSTATUS AccessStatus
        );
 
 NTSTATUS
@@ -4570,8 +5052,8 @@ ZwAccessCheck(
        IN PGENERIC_MAPPING GenericMapping,
        OUT PPRIVILEGE_SET PrivilegeSet,
        OUT PULONG ReturnLength,
-       OUT PULONG GrantedAccess,
-       OUT PBOOLEAN AccessStatus
+       OUT PACCESS_MASK GrantedAccess,
+       OUT PNTSTATUS AccessStatus
        );
 
 NTSTATUS
@@ -4689,14 +5171,14 @@ NtCreatePagingFile(
 NTSTATUS 
 STDCALL
 NtCreateProfile(OUT PHANDLE ProfileHandle, 
-               IN HANDLE ProcessHandle,
+               IN HANDLE Process  OPTIONAL,
                IN PVOID ImageBase, 
                IN ULONG ImageSize, 
-               IN ULONG Granularity,
-               OUT PULONG Buffer, 
-               IN ULONG ProfilingSize,
-               IN KPROFILE_SOURCE Source,
-               IN ULONG ProcessorMask);
+               IN ULONG BucketSize,
+               IN PVOID Buffer,
+               IN ULONG BufferSize,
+               IN KPROFILE_SOURCE ProfileSource,
+               IN KAFFINITY Affinity);
 
 /*
  * FUNCTION: Creates a user mode thread
@@ -4722,7 +5204,7 @@ NtCreateThread(
        IN      HANDLE                  ProcessHandle,
        OUT     PCLIENT_ID              ClientId,
        IN      PCONTEXT                ThreadContext,
-       IN      PUSER_STACK             UserStack,
+       IN      PINITIAL_TEB            InitialTeb,
        IN      BOOLEAN                 CreateSuspended
        );
 
@@ -4737,8 +5219,8 @@ NtCreateThread(
 NTSTATUS
 STDCALL
 NtDelayExecution(
-       IN ULONG Alertable,
-       IN TIME *Interval
+       IN BOOLEAN Alertable,
+       IN PLARGE_INTEGER DelayInterval
        );
 
 /*
@@ -4752,7 +5234,7 @@ NTSTATUS
 STDCALL
 NtExtendSection(
        IN HANDLE SectionHandle,
-       IN ULONG NewMaximumSize
+       IN PLARGE_INTEGER NewMaximumSize
        );
 
 /*
@@ -4878,8 +5360,8 @@ NTSTATUS
 STDCALL
 NtProtectVirtualMemory(
        IN HANDLE ProcessHandle,
-       IN PVOID BaseAddress,
-       IN ULONG NumberOfBytesToProtect,
+       IN PVOID *BaseAddress,
+       IN ULONG *NumberOfBytesToProtect,
        IN ULONG NewAccessProtection,
        OUT PULONG OldAccessProtection
        );
@@ -4919,8 +5401,8 @@ NtQueryDirectoryObject(
 NTSTATUS
 STDCALL
 NtQueryIntervalProfile(
-       OUT PULONG Interval,
-       OUT KPROFILE_SOURCE ClockSource
+       IN  KPROFILE_SOURCE ProfileSource,
+       OUT PULONG Interval
        );
 
 /*
@@ -5057,11 +5539,11 @@ STDCALL
 NtSetTimer(
        IN HANDLE TimerHandle,
        IN PLARGE_INTEGER DueTime,
-       IN PTIMERAPCROUTINE TimerApcRoutine,
-       IN PVOID TimerContext,
-       IN BOOL WakeTimer,
-       IN ULONG Period OPTIONAL,
-       OUT PBOOLEAN PreviousState OPTIONAL
+       IN PTIMER_APC_ROUTINE TimerApcRoutine  OPTIONAL,
+       IN PVOID TimerContext  OPTIONAL,
+       IN BOOLEAN ResumeTimer,
+       IN LONG Period  OPTIONAL,
+       OUT PBOOLEAN PreviousState  OPTIONAL
        );
 
 /*
@@ -5235,8 +5717,9 @@ ZwAccessCheckAndAuditAlarm(
 /*
  * FUNCTION: Adds an atom to the global atom table
  * ARGUMENTS:
- *        AtomString = The string to add to the atom table.
- *        Atom (OUT) = Caller supplies storage for the resulting atom.
+ *       AtomName = The string to add to the atom table.
+ *       AtomNameLength = Length of the atom name
+ *       Atom (OUT) = Caller supplies storage for the resulting atom.
  * REMARKS: The arguments map to the win32 add GlobalAddAtom.
  * RETURNS: Status
  */
@@ -5244,6 +5727,7 @@ NTSTATUS
 STDCALL
 NtAddAtom(
        IN      PWSTR           AtomName,
+       IN      ULONG           AtomNameLength,
        IN OUT  PRTL_ATOM       Atom
        );
 
@@ -5252,23 +5736,26 @@ NTSTATUS
 STDCALL
 ZwAddAtom(
        IN      PWSTR           AtomName,
+       IN      ULONG           AtomNameLength,
        IN OUT  PRTL_ATOM       Atom
        );
 
 NTSTATUS
 STDCALL
 NtAllocateUuids(
-       PULARGE_INTEGER Time,
-       PULONG Range,
-       PULONG Sequence
+       OUT PULARGE_INTEGER Time,
+       OUT PULONG Range,
+       OUT PULONG Sequence,
+       OUT PUCHAR Seed
        );
 
 NTSTATUS
 STDCALL
 ZwAllocateUuids(
-       PULARGE_INTEGER Time,
-       PULONG Range,
-       PULONG Sequence
+       OUT PULARGE_INTEGER Time,
+       OUT PULONG Range,
+       OUT PULONG Sequence,
+       OUT PUCHAR Seed
        );
 
 NTSTATUS
@@ -5320,7 +5807,7 @@ ZwCreateThread(
        IN HANDLE ProcessHandle,
        OUT PCLIENT_ID ClientId,
        IN PCONTEXT ThreadContext,
-       IN PUSER_STACK UserStack,
+       IN PINITIAL_TEB InitialTeb,
        IN BOOLEAN CreateSuspended
        );
 
@@ -5329,8 +5816,8 @@ STDCALL
 NtDuplicateToken(  
        IN HANDLE ExistingToken, 
        IN ACCESS_MASK DesiredAccess, 
-       IN POBJECT_ATTRIBUTES ObjectAttributes,
-       IN SECURITY_IMPERSONATION_LEVEL ImpersonationLevel,
+       IN POBJECT_ATTRIBUTES ObjectAttributes OPTIONAL,
+       IN BOOLEAN EffectiveOnly,
        IN TOKEN_TYPE TokenType,  
        OUT PHANDLE NewToken     
        );
@@ -5340,8 +5827,8 @@ STDCALL
 ZwDuplicateToken(  
        IN HANDLE ExistingToken, 
        IN ACCESS_MASK DesiredAccess, 
-       IN POBJECT_ATTRIBUTES ObjectAttributes,
-       IN SECURITY_IMPERSONATION_LEVEL ImpersonationLevel,
+       IN POBJECT_ATTRIBUTES ObjectAttributes OPTIONAL,
+       IN BOOLEAN EffectiveOnly,
        IN TOKEN_TYPE TokenType,  
        OUT PHANDLE NewToken     
        );
@@ -5350,6 +5837,7 @@ ZwDuplicateToken(
  * FUNCTION: Finds a atom
  * ARGUMENTS:
  *       AtomName = Name to search for.
+ *       AtomNameLength = Length of the atom name
  *       Atom = Caller supplies storage for the resulting atom
  * RETURNS: Status 
  * REMARKS:
@@ -5359,6 +5847,7 @@ NTSTATUS
 STDCALL
 NtFindAtom(
        IN      PWSTR           AtomName,
+       IN      ULONG           AtomNameLength,
        OUT     PRTL_ATOM       Atom OPTIONAL
        );
 
@@ -5366,6 +5855,7 @@ NTSTATUS
 STDCALL
 ZwFindAtom(
        IN      PWSTR           AtomName,
+       IN      ULONG           AtomNameLength,
        OUT     PRTL_ATOM       Atom OPTIONAL
        );
 
@@ -5413,10 +5903,10 @@ ZwFlushVirtualMemory(
  *        UpTime = Number of clock ticks since boot.
  * RETURNS: Status 
  */
-NTSTATUS
-STDCALL 
+ULONG
+STDCALL
 ZwGetTickCount(
-       PULONG UpTime
+       VOID
        );
 
 /*
@@ -5491,8 +5981,8 @@ NTSTATUS
 STDCALL
 ZwProtectVirtualMemory(
        IN HANDLE ProcessHandle,
-       IN PVOID BaseAddress,
-       IN ULONG NumberOfBytesToProtect,
+       IN PVOID *BaseAddress,
+       IN ULONG *NumberOfBytesToProtect,
        IN ULONG NewAccessProtection,
        OUT PULONG OldAccessProtection
        );
@@ -5588,20 +6078,20 @@ NTSTATUS
 STDCALL
 NtQueryInformationProcess(
        IN HANDLE ProcessHandle,
-       IN CINT ProcessInformationClass,
+       IN PROCESSINFOCLASS ProcessInformationClass,
        OUT PVOID ProcessInformation,
        IN ULONG ProcessInformationLength,
-       OUT PULONG ReturnLength 
+       OUT PULONG  ReturnLength  OPTIONAL
        );
 
 NTSTATUS
 STDCALL
 ZwQueryInformationProcess(
        IN HANDLE ProcessHandle,
-       IN CINT ProcessInformationClass,
+       IN PROCESSINFOCLASS ProcessInformationClass,
        OUT PVOID ProcessInformation,
        IN ULONG ProcessInformationLength,
-       OUT PULONG ReturnLength 
+       OUT PULONG ReturnLength  OPTIONAL
        );
 
 /*
@@ -5614,8 +6104,8 @@ ZwQueryInformationProcess(
 NTSTATUS
 STDCALL
 ZwQueryIntervalProfile(
-       OUT PULONG Interval,
-       OUT KPROFILE_SOURCE ClockSource
+       IN  KPROFILE_SOURCE ProfileSource,
+       OUT PULONG Interval
        );
 
 /*
@@ -5642,7 +6132,7 @@ ZwQueryObject(
        IN OBJECT_INFORMATION_CLASS ObjectInformationClass,
        OUT PVOID ObjectInformation,
        IN ULONG Length,
-       OUT PULONG ResultLength OPTIONAL
+       OUT PULONG ResultLength  OPTIONAL
        );
 
 NTSTATUS
@@ -5785,7 +6275,7 @@ NTSTATUS
 STDCALL
 NtSetInformationProcess(
        IN HANDLE ProcessHandle,
-       IN CINT ProcessInformationClass,
+       IN PROCESSINFOCLASS ProcessInformationClass,
        IN PVOID ProcessInformation,
        IN ULONG ProcessInformationLength
        );
@@ -5794,7 +6284,7 @@ NTSTATUS
 STDCALL
 ZwSetInformationProcess(
        IN HANDLE ProcessHandle,
-       IN CINT ProcessInformationClass,
+       IN PROCESSINFOCLASS ProcessInformationClass,
        IN PVOID ProcessInformation,
        IN ULONG ProcessInformationLength
        );
@@ -5816,13 +6306,19 @@ STDCALL
 ZwSetTimer(
        IN HANDLE TimerHandle,
        IN PLARGE_INTEGER DueTime,
-       IN PTIMERAPCROUTINE TimerApcRoutine,
-       IN PVOID TimerContext,
-       IN BOOL WakeTimer,
-       IN ULONG Period OPTIONAL,
-       OUT PBOOLEAN PreviousState OPTIONAL
+       IN PTIMER_APC_ROUTINE TimerApcRoutine  OPTIONAL,
+       IN PVOID TimerContext  OPTIONAL,
+       IN BOOLEAN ResumeTimer,
+       IN LONG Period  OPTIONAL,
+       OUT PBOOLEAN PreviousState  OPTIONAL
        );
 
+NTSTATUS STDCALL
+NtSetUuidSeed(IN PUCHAR Seed);
+
+NTSTATUS STDCALL
+ZwSetUuidSeed(IN PUCHAR Seed);
+
 /*
  * FUNCTION: Unloads a registry key.
  * ARGUMENTS:
@@ -5900,15 +6396,15 @@ ZwWaitForMultipleObjects (
 NTSTATUS 
 STDCALL
 ZwCreateProfile(
-       OUT PHANDLE ProfileHandle, 
-       IN POBJECT_ATTRIBUTES ObjectAttributes,
-       IN ULONG ImageBase, 
-       IN ULONG ImageSize, 
-       IN ULONG Granularity,
-       OUT PVOID Buffer, 
-       IN ULONG ProfilingSize,
-       IN ULONG ClockSource,
-       IN ULONG ProcessorMask
+       OUT PHANDLE ProfileHandle,
+       IN HANDLE Process  OPTIONAL,
+       IN PVOID ImageBase,
+       IN ULONG ImageSize,
+       IN ULONG BucketSize,
+       IN PVOID Buffer,
+       IN ULONG BufferSize,
+       IN KPROFILE_SOURCE ProfileSource,
+       IN KAFFINITY Affinity
        );
 
 /*
@@ -5922,7 +6418,7 @@ NTSTATUS
 STDCALL
 ZwDelayExecution(
        IN BOOLEAN Alertable,
-       IN TIME *Interval
+       IN PLARGE_INTEGER DelayInterval
        );
 
 /*
@@ -5936,7 +6432,7 @@ NTSTATUS
 STDCALL
 ZwExtendSection(
        IN HANDLE SectionHandle,
-       IN ULONG NewMaximumSize
+       IN PLARGE_INTEGER NewMaximumSize
        );
 
 /*
@@ -5962,10 +6458,10 @@ ZwQuerySection(
 
 typedef struct _SECTION_IMAGE_INFORMATION
 {
-  PVOID EntryPoint;
+  ULONG_PTR EntryPoint;
   ULONG Unknown1;
-  ULONG StackReserve;
-  ULONG StackCommit;
+  ULONG_PTR StackReserve;
+  ULONG_PTR StackCommit;
   ULONG Subsystem;
   USHORT MinorSubsystemVersion;
   USHORT MajorSubsystemVersion;
@@ -6043,7 +6539,7 @@ NtQueryObject(
        IN OBJECT_INFORMATION_CLASS ObjectInformationClass,
        OUT PVOID ObjectInformation,
        IN ULONG Length,
-       OUT PULONG ResultLength OPTIONAL
+       OUT PULONG ResultLength  OPTIONAL
        );
 
 /* BEGIN REACTOS ONLY */