NtAcceptConnectPort signature fixed.
[reactos.git] / reactos / include / ntos / zw.h
index 4dd5de8..82c57d3 100755 (executable)
@@ -1,5 +1,4 @@
-
-/* $Id: zw.h,v 1.29 2004/08/20 21:23:49 navaraf Exp $
+/* $Id$
  *
  * COPYRIGHT:        See COPYING in the top level directory
  * PROJECT:          ReactOS kernel
@@ -56,8 +55,13 @@ typedef struct _EVENT_BASIC_INFORMATION
 // wmi trace event data
 typedef struct _EVENT_TRACE_HEADER {
   USHORT           Size;
-  UCHAR            HeaderType;
-  UCHAR            MarkerFlags;
+  union {
+    USHORT FieldTypeFlags;
+    struct {
+      UCHAR            HeaderType;
+      UCHAR            MarkerFlags;
+    };
+  };
   union {
     ULONG         Version;
     struct {
@@ -66,11 +70,12 @@ typedef struct _EVENT_TRACE_HEADER {
       USHORT    Version;
     } Class;
   };
-  LARGE_INTEGER        ThreadId;
+  ULONG ThreadId;
+  ULONG ProcessId;
   LARGE_INTEGER    TimeStamp;
-    union {
-    GUID          Guid;
-    LARGE_INTEGER    GuidPtr;
+  union {
+    GUID      Guid;
+    ULONGLONG GuidPtr;
   };
  union {
     struct {
@@ -83,7 +88,6 @@ typedef struct _EVENT_TRACE_HEADER {
     };
     ULONG64 ProcessorTime;
   };
-  LARGE_INTEGER          ProcessorTime;
 } EVENT_TRACE_HEADER, *PEVENT_TRACE_HEADER;
 
 
@@ -104,12 +108,12 @@ typedef struct _FILE_USER_QUOTA_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,
@@ -528,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
        );
 
@@ -538,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
        );
 
@@ -756,7 +760,7 @@ STDCALL
 NtCreateMutant(
        OUT PHANDLE MutantHandle,
        IN ACCESS_MASK DesiredAccess,
-       IN POBJECT_ATTRIBUTES ObjectAttributes,
+       IN POBJECT_ATTRIBUTES ObjectAttributes  OPTIONAL,
        IN BOOLEAN InitialOwner
        );
 
@@ -765,7 +769,7 @@ STDCALL
 ZwCreateMutant(
        OUT PHANDLE MutantHandle,
        IN ACCESS_MASK DesiredAccess,
-       IN POBJECT_ATTRIBUTES ObjectAttributes,
+       IN POBJECT_ATTRIBUTES ObjectAttributes  OPTIONAL,
        IN BOOLEAN InitialOwner
        );
 
@@ -825,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,
@@ -841,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,
@@ -992,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
        );
 
 /*
@@ -1481,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 ]
@@ -1527,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 
  */
 
@@ -1535,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
        );
 
 
@@ -1582,19 +1586,19 @@ ZwImpersonateThread(
 NTSTATUS
 STDCALL
 NtInitiatePowerAction (
-       POWER_ACTION SystemAction,
-       SYSTEM_POWER_STATE MinSystemState,
-       ULONG Flags,
-       BOOLEAN Asynchronous
+       IN POWER_ACTION SystemAction,
+       IN SYSTEM_POWER_STATE MinSystemState,
+       IN ULONG Flags,
+       IN BOOLEAN Asynchronous
 );
 
 NTSTATUS
 STDCALL
 ZwInitiatePowerAction (
-       POWER_ACTION SystemAction,
-       SYSTEM_POWER_STATE MinSystemState,
-       ULONG Flags,
-       BOOLEAN Asynchronous
+       IN POWER_ACTION SystemAction,
+       IN SYSTEM_POWER_STATE MinSystemState,
+       IN ULONG Flags,
+       IN BOOLEAN Asynchronous
 );
 /*
  * FUNCTION: Initializes the registry.
@@ -1717,25 +1721,25 @@ ZwLockFile(
 NTSTATUS
 STDCALL
 NtMakePermanentObject(
-       IN HANDLE Object
+       IN HANDLE ObjectHandle
        );
 
 NTSTATUS
 STDCALL
 ZwMakePermanentObject(
-       IN HANDLE Object
+       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 
@@ -1883,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
@@ -1898,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
        );
 
 /*
@@ -2201,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
        );
@@ -2223,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
        );
@@ -2337,21 +2341,21 @@ ZwOpenTimer(
 NTSTATUS 
 STDCALL 
 NtPowerInformation(
-       POWER_INFORMATION_LEVEL PowerInformationLevel,
-    PVOID InputBuffer, 
-       ULONG InputBufferLength,
-    PVOID OutputBuffer,
-       ULONG OutputBufferLength
+       IN POWER_INFORMATION_LEVEL PowerInformationLevel,
+       IN PVOID InputBuffer  OPTIONAL,
+       IN ULONG InputBufferLength,
+       OUT PVOID OutputBuffer  OPTIONAL,
+       IN ULONG OutputBufferLength
        );
 
 NTSTATUS 
 STDCALL 
 ZwPowerInformation(
-       POWER_INFORMATION_LEVEL PowerInformationLevel,
-    PVOID InputBuffer, 
-       ULONG InputBufferLength,
-    PVOID OutputBuffer,
-       ULONG OutputBufferLength
+       IN POWER_INFORMATION_LEVEL PowerInformationLevel,
+       IN PVOID InputBuffer  OPTIONAL,
+       IN ULONG InputBufferLength,
+       OUT PVOID OutputBuffer  OPTIONAL,
+       IN ULONG OutputBufferLength
        );
 
 NTSTATUS
@@ -2438,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
        );
 
 /*
@@ -2654,7 +2658,7 @@ NtQueryEvent(
        IN EVENT_INFORMATION_CLASS EventInformationClass,
        OUT PVOID EventInformation,
        IN ULONG EventInformationLength,
-       OUT PULONG ReturnLength
+       OUT PULONG ReturnLength  OPTIONAL
        );
 NTSTATUS
 STDCALL
@@ -2663,7 +2667,7 @@ ZwQueryEvent(
        IN EVENT_INFORMATION_CLASS EventInformationClass,
        OUT PVOID EventInformation,
        IN ULONG EventInformationLength,
-       OUT PULONG ReturnLength
+       OUT PULONG ReturnLength  OPTIONAL
        );
 
 NTSTATUS STDCALL
@@ -2698,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
@@ -2711,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            
@@ -2724,7 +2728,7 @@ ZwQueryFullAttributesFile(IN POBJECT_ATTRIBUTES ObjectAttributes,
          FileContentIndexInformation           
          FileInheritContentIndexInformation    
          FileOleInformation                    
-         FileMaximumInformation                        
+         FileMaximumInformation                
 
  * REMARK:
  *       This procedure maps to the win32 GetShortPathName, GetLongPathName,
@@ -2829,17 +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,
+       IN THREADINFOCLASS ThreadInformationClass,
        OUT PVOID ThreadInformation,
-    IN ULONG ThreadInformationLength, 
-       OUT PULONG ReturnLength
+       IN ULONG ThreadInformationLength,
+       OUT PULONG ReturnLength  OPTIONAL
        );
 
 
@@ -2991,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 
@@ -3021,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
        );
 
 /*
@@ -3050,7 +3054,7 @@ NtQuerySemaphore(
        IN      SEMAPHORE_INFORMATION_CLASS     SemaphoreInformationClass,
        OUT     PVOID                           SemaphoreInformation,
        IN      ULONG                           Length,
-       OUT     PULONG                          ReturnLength
+       OUT     PULONG                          ReturnLength  OPTIONAL
        );
 
 NTSTATUS
@@ -3060,7 +3064,7 @@ ZwQuerySemaphore(
        IN      SEMAPHORE_INFORMATION_CLASS     SemaphoreInformationClass,
        OUT     PVOID                           SemaphoreInformation,
        IN      ULONG                           Length,
-       OUT     PULONG                          ReturnLength
+       OUT     PULONG                          ReturnLength  OPTIONAL
        );
 
 
@@ -3076,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
        ); 
 
 
@@ -3103,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
        );
 
 
@@ -3167,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
        );
 
 /*
@@ -3495,12 +3499,12 @@ ZwReadVirtualMemory(
 NTSTATUS
 STDCALL        
 NtRegisterThreadTerminatePort(
-       HANDLE TerminationPort
+       HANDLE PortHandle
        );
 NTSTATUS
 STDCALL        
 ZwRegisterThreadTerminatePort(
-       HANDLE TerminationPort
+       HANDLE PortHandle
        );
 
 /*
@@ -3514,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
        );
 
 /*
@@ -3537,7 +3541,7 @@ STDCALL
 NtReleaseSemaphore(
        IN      HANDLE  SemaphoreHandle,
        IN      LONG    ReleaseCount,
-       OUT     PLONG   PreviousCount
+       OUT     PLONG   PreviousCount  OPTIONAL
        );
 
 NTSTATUS
@@ -3545,7 +3549,7 @@ STDCALL
 ZwReleaseSemaphore(
        IN      HANDLE  SemaphoreHandle,
        IN      LONG    ReleaseCount,
-       OUT     PLONG   PreviousCount
+       OUT     PLONG   PreviousCount  OPTIONAL
        );
 
 /*
@@ -3562,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
    );
@@ -3572,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
    );
@@ -3663,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
@@ -3701,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
@@ -3781,7 +3785,7 @@ ZwSetBootOptions(
  * FUNCTION: Sets the context of a specified thread.
  * ARGUMENTS: 
  *        ThreadHandle = Handle to the thread
- *        Context =  The processor context.
+ *        ThreadContext =  The processor context.
  * RETURNS: Status
  */
 
@@ -3789,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
        );
 
 /*
@@ -3894,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
        );
 
 /*
@@ -4089,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
    );
@@ -4099,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
    );
@@ -4311,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
        );
 
 /*
@@ -4496,13 +4500,13 @@ 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
        );
 
@@ -4865,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
        );
 
 /*
@@ -4925,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
@@ -5023,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: 
@@ -5188,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
@@ -5221,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
        );
 
@@ -5236,8 +5219,8 @@ NtCreateThread(
 NTSTATUS
 STDCALL
 NtDelayExecution(
-       IN ULONG Alertable,
-       IN TIME *Interval
+       IN BOOLEAN Alertable,
+       IN PLARGE_INTEGER DelayInterval
        );
 
 /*
@@ -5418,8 +5401,8 @@ NtQueryDirectoryObject(
 NTSTATUS
 STDCALL
 NtQueryIntervalProfile(
-       OUT PULONG Interval,
-       OUT KPROFILE_SOURCE ClockSource
+       IN  KPROFILE_SOURCE ProfileSource,
+       OUT PULONG Interval
        );
 
 /*
@@ -5556,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
        );
 
 /*
@@ -5760,17 +5743,19 @@ ZwAddAtom(
 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
@@ -5822,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
        );
 
@@ -5831,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     
        );
@@ -5842,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     
        );
@@ -6093,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
        );
 
 /*
@@ -6119,8 +6104,8 @@ ZwQueryInformationProcess(
 NTSTATUS
 STDCALL
 ZwQueryIntervalProfile(
-       OUT PULONG Interval,
-       OUT KPROFILE_SOURCE ClockSource
+       IN  KPROFILE_SOURCE ProfileSource,
+       OUT PULONG Interval
        );
 
 /*
@@ -6147,7 +6132,7 @@ ZwQueryObject(
        IN OBJECT_INFORMATION_CLASS ObjectInformationClass,
        OUT PVOID ObjectInformation,
        IN ULONG Length,
-       OUT PULONG ResultLength OPTIONAL
+       OUT PULONG ResultLength  OPTIONAL
        );
 
 NTSTATUS
@@ -6290,7 +6275,7 @@ NTSTATUS
 STDCALL
 NtSetInformationProcess(
        IN HANDLE ProcessHandle,
-       IN CINT ProcessInformationClass,
+       IN PROCESSINFOCLASS ProcessInformationClass,
        IN PVOID ProcessInformation,
        IN ULONG ProcessInformationLength
        );
@@ -6299,7 +6284,7 @@ NTSTATUS
 STDCALL
 ZwSetInformationProcess(
        IN HANDLE ProcessHandle,
-       IN CINT ProcessInformationClass,
+       IN PROCESSINFOCLASS ProcessInformationClass,
        IN PVOID ProcessInformation,
        IN ULONG ProcessInformationLength
        );
@@ -6321,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:
@@ -6405,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
        );
 
 /*
@@ -6427,7 +6418,7 @@ NTSTATUS
 STDCALL
 ZwDelayExecution(
        IN BOOLEAN Alertable,
-       IN TIME *Interval
+       IN PLARGE_INTEGER DelayInterval
        );
 
 /*
@@ -6467,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;
@@ -6548,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 */