Commit in reactos/include/ndk on new_headers
zwfuncs.h+6299-62991.1.2.1 -> 1.1.2.2
zwtypes.h+1036-10361.1.2.1 -> 1.1.2.2
+7335-7335
2 modified files
proper line endings

reactos/include/ndk
zwfuncs.h 1.1.2.1 -> 1.1.2.2
diff -u -r1.1.2.1 -r1.1.2.2
--- zwfuncs.h	25 Oct 2004 01:24:07 -0000	1.1.2.1
+++ zwfuncs.h	25 Oct 2004 21:52:24 -0000	1.1.2.2
@@ -1,6299 +1,6299 @@
-
-/* $Id: zwfuncs.h,v 1.1.2.1 2004/10/25 01:24:07 ion Exp $
- *
- * COPYRIGHT:        See COPYING in the top level directory
- * PROJECT:          ReactOS kernel
- * PURPOSE:          System call definitions
- * FILE:             include/ddk/zw.h
- * REVISION HISTORY: 
- *              ??/??/??: First few functions (David Welch)
- *              ??/??/??: Complete implementation by Ariadne
- *              13/07/98: Reorganised things a bit (David Welch)
- *              04/08/98: Added some documentation (Ariadne)
- *		14/08/98: Added type TIME and change variable type from [1] to [0]
- *              14/09/98: Added for each Nt call a corresponding Zw Call
- *              09/08/03: Added ThreadEventPair routines
- */
-
-#ifndef _ZWFUNCS_H
-#define _ZWFUNCS_H
-
-#include "lpctypes.h"
-#include "zwtypes.h"
- 
-
-static inline struct _PEB * NtCurrentPeb(void)
-{
- struct _PEB * pPeb;
-
-#if defined(__GNUC__)
-
- __asm__ __volatile__
- (
-  "movl %%fs:0x30, %0\n" /* fs:30h == Teb->Peb */
-  : "=r" (pPeb) /* can't have two memory operands */
-  : /* no inputs */
- );
-
-#elif defined(_MSC_VER)
-
-	__asm mov eax, fs:0x30;
-	__asm mov pPeb, eax
-
-#else
-#error Unknown compiler for inline assembler
-#endif
-
- return pPeb;
-}   
-
-#ifndef _RTLGETPROCESSHEAP_DEFINED_
-#define _RTLGETPROCESSHEAP_DEFINED_
-#define RtlGetProcessHeap() (NtCurrentPeb()->ProcessHeap)
-#endif
-  
-
-#ifndef __USE_NT_LPC__
-NTSTATUS STDCALL
-NtAcceptConnectPort (PHANDLE PortHandle,
-		     HANDLE NamedPortHandle,
-		     PLPC_MESSAGE ServerReply,
-		     BOOLEAN AcceptIt,
-		     PLPC_SECTION_WRITE WriteMap,
-		     PLPC_SECTION_READ ReadMap);
-#else
-NTSTATUS STDCALL
-NtAcceptConnectPort (PHANDLE PortHandle,
-		     ULONG PortIdentifier,
-		     PLPC_MESSAGE ServerReply,
-		     BOOLEAN AcceptIt,
-		     PLPC_SECTION_WRITE WriteMap,
-		     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: 
- *	  TokenHandle = Specifies the access token
- *	  ResetToDefault = If true the NewState parameter is ignored and the groups are set to
- *			their default state, if false the groups specified in
- *			NewState are set.
- *	  NewState = 
- *	  BufferLength = Specifies the size of the buffer for the PreviousState.
- *	  PreviousState = 
- *	  ReturnLength = Bytes written in PreviousState buffer.
- * REMARKS: The arguments map to the win32 AdjustTokenGroups
- * RETURNS: Status
- */
-
-NTSTATUS 
-STDCALL 
-NtAdjustGroupsToken(
-	IN HANDLE TokenHandle,
-	IN BOOLEAN  ResetToDefault,
-	IN PTOKEN_GROUPS  NewState,
-	IN ULONG  BufferLength,
-	OUT PTOKEN_GROUPS  PreviousState OPTIONAL,
-	OUT PULONG  ReturnLength
-	);
-
-NTSTATUS
-STDCALL
-ZwAdjustGroupsToken(
-	IN HANDLE TokenHandle,
-	IN BOOLEAN  ResetToDefault,
-	IN PTOKEN_GROUPS  NewState,
-	IN ULONG  BufferLength,
-	OUT PTOKEN_GROUPS  PreviousState,
-	OUT PULONG  ReturnLength
-	);
-
-
-/*
- * FUNCTION:
- *
- * ARGUMENTS:
- *        TokenHandle = Handle to the access token
- *        DisableAllPrivileges =  The resulting suspend count.
-	  NewState = 
-	  BufferLength =
-	  PreviousState =
-	  ReturnLength =
- * REMARK:
- *	  The arguments map to the win32 AdjustTokenPrivileges
- * RETURNS: Status
- */
-
-NTSTATUS 
-STDCALL 
-NtAdjustPrivilegesToken(
-	IN HANDLE  TokenHandle,
-	IN BOOLEAN  DisableAllPrivileges,
-	IN PTOKEN_PRIVILEGES  NewState,
-	IN ULONG  BufferLength,
-	OUT PTOKEN_PRIVILEGES  PreviousState,
-	OUT PULONG ReturnLength
-	);
-
-NTSTATUS 
-STDCALL 
-ZwAdjustPrivilegesToken(
-	IN HANDLE  TokenHandle,
-	IN BOOLEAN  DisableAllPrivileges,
-	IN PTOKEN_PRIVILEGES  NewState,
-	IN ULONG  BufferLength,
-	OUT PTOKEN_PRIVILEGES  PreviousState,
-	OUT PULONG ReturnLength
-	);
-
-
-/*
- * FUNCTION: Decrements a thread's suspend count and places it in an alerted 
- *           state.
- * ARGUMENTS: 
- *        ThreadHandle = Handle to the thread that should be resumed
- *        SuspendCount =  The resulting suspend count.
- * REMARK:
- *	  A thread is resumed if its suspend count is 0
- * RETURNS: Status
- */
-NTSTATUS
-STDCALL
-NtAlertResumeThread(
-	IN HANDLE ThreadHandle,
-	OUT PULONG SuspendCount
-	);
-
-NTSTATUS
-STDCALL
-ZwAlertResumeThread(
-	IN HANDLE ThreadHandle,
-	OUT PULONG SuspendCount
-	);
-
-/*
- * FUNCTION: Puts the thread in a alerted state
- * ARGUMENTS: 
- *        ThreadHandle = Handle to the thread that should be alerted
- * RETURNS: Status
- */
-NTSTATUS
-STDCALL
-NtAlertThread(
-	IN HANDLE ThreadHandle
-	);
-
-NTSTATUS
-STDCALL
-ZwAlertThread(
-	IN HANDLE ThreadHandle
-	);
-
-
-/*
- * FUNCTION: Allocates a locally unique id
- * ARGUMENTS: 
- *        LocallyUniqueId = Locally unique number
- * RETURNS: Status
- */
-NTSTATUS
-STDCALL
-NtAllocateLocallyUniqueId(
-	OUT LUID *LocallyUniqueId
-	);
-
-NTSTATUS
-STDCALL
-ZwAllocateLocallyUniqueId(
-	OUT PLUID Luid
-	);
-
-/*
- * FUNCTION: Allocates a block of virtual memory in the process address space
- * ARGUMENTS:
- *      ProcessHandle = The handle of the process which owns the virtual memory
- *      BaseAddress   = A pointer to the virtual memory allocated. If you supply a non zero
- *			value the system will try to allocate the memory at the address supplied. It rounds
- *			it down to a multiple if the page size.
- *      ZeroBits  = (OPTIONAL) You can specify the number of high order bits that must be zero, ensuring that 
- *			the memory will be allocated at a address below a certain value.
- *      RegionSize = The number of bytes to allocate
- *      AllocationType = Indicates the type of virtual memory you like to allocated,
- *                       can be one of the values : MEM_COMMIT, MEM_RESERVE, MEM_RESET, MEM_TOP_DOWN
- *      Protect = Indicates the protection type of the pages allocated, can be a combination of
- *                      PAGE_READONLY, PAGE_READWRITE, PAGE_EXECUTE_READ,
- *                      PAGE_EXECUTE_READWRITE, PAGE_GUARD, PAGE_NOACCESS, PAGE_NOACCESS
- * REMARKS:
- *       This function maps to the win32 VirtualAllocEx. Virtual memory is process based so the 
- *       protocol starts with a ProcessHandle. I splitted the functionality of obtaining the actual address and specifying
- *       the start address in two parameters ( BaseAddress and StartAddress ) The NumberOfBytesAllocated specify the range
- *       and the AllocationType and ProctectionType map to the other two parameters.
- * RETURNS: Status
- */
-NTSTATUS
-STDCALL
-NtAllocateVirtualMemory (
-	IN HANDLE ProcessHandle,
-	IN OUT PVOID *BaseAddress,
-	IN ULONG  ZeroBits,
-	IN OUT PULONG  RegionSize,
-	IN ULONG  AllocationType,
-	IN ULONG  Protect
-	);
-
-NTSTATUS
-STDCALL
-ZwAllocateVirtualMemory (
-	IN HANDLE ProcessHandle,
-	IN OUT PVOID *BaseAddress,
-	IN ULONG  ZeroBits,
-	IN OUT PULONG  RegionSize,
-	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:
- * RETURN Status
- */
-//FIXME: this function might need 3 parameters
-NTSTATUS STDCALL NtCallbackReturn(PVOID Result,
-				  ULONG ResultLength,
-				  NTSTATUS Status);
-
-NTSTATUS STDCALL ZwCallbackReturn(PVOID Result,
-				  ULONG ResultLength,
-				  NTSTATUS Status);
-
-/*
- * FUNCTION: Cancels a IO request
- * ARGUMENTS: 
- *        FileHandle = Handle to the file
- *        IoStatusBlock  = 
- *
- * REMARKS:
- *        This function maps to the win32 CancelIo.
- * RETURNS: Status
- */
-NTSTATUS
-STDCALL
-NtCancelIoFile(
-	IN HANDLE FileHandle,
-	OUT PIO_STATUS_BLOCK IoStatusBlock
-	);
-
-NTSTATUS
-STDCALL
-ZwCancelIoFile(
-	IN HANDLE FileHandle,
-	OUT PIO_STATUS_BLOCK IoStatusBlock
-	);
-
-/*
- * FUNCTION: Sets the status of the event back to non-signaled
- * ARGUMENTS: 
- *        EventHandle = Handle to the event
- * REMARKS:
- *       This function maps to win32 function ResetEvent.
- * RETURcNS: Status
- */
-
-NTSTATUS
-STDCALL
-NtClearEvent(
-	IN HANDLE  EventHandle
-	);
-
-NTSTATUS
-STDCALL
-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 handled
- * ARGUMENTS:
- *         Handle = Handle to the object
- * REMARKS:
- *       This function maps to the win32 function CloseHandle. 
- * RETURNS: Status
- */
-
-NTSTATUS
-STDCALL
-NtClose(
-	IN HANDLE Handle
-	);
-
-NTSTATUS
-STDCALL
-ZwClose(
-	IN HANDLE Handle
-	);
-
-/*
- * FUNCTION: Generates an audit message when a handle to an object is dereferenced
- * ARGUMENTS:
- *         SubsystemName   = 
-	   HandleId	   = Handle to the object
-	   GenerateOnClose =
- * REMARKS:
- *       This function maps to the win32 function ObjectCloseAuditAlarm. 
- * RETURNS: Status
- */
-
-NTSTATUS
-STDCALL
-NtCloseObjectAuditAlarm(
-	IN PUNICODE_STRING SubsystemName,
-	IN PVOID HandleId,
-	IN BOOLEAN GenerateOnClose
-	);
-
-NTSTATUS
-STDCALL
-ZwCloseObjectAuditAlarm(
-	IN PUNICODE_STRING SubsystemName,
-	IN PVOID HandleId,
-	IN BOOLEAN GenerateOnClose
-	);
-
-
-NTSTATUS STDCALL
-NtCompleteConnectPort (HANDLE PortHandle);
-
-NTSTATUS STDCALL
-ZwCompleteConnectPort (HANDLE PortHandle);
-
-
-NTSTATUS STDCALL
-NtConnectPort (PHANDLE PortHandle,
-	       PUNICODE_STRING PortName,
-	       PSECURITY_QUALITY_OF_SERVICE SecurityQos,
-	       PLPC_SECTION_WRITE SectionInfo,
-	       PLPC_SECTION_READ MapInfo,
-	       PULONG MaxMessageSize,
-	       PVOID ConnectInfo,
-	       PULONG ConnectInfoLength);
-
-NTSTATUS STDCALL
-ZwConnectPort (PHANDLE PortHandle,
-	       PUNICODE_STRING PortName,
-	       PSECURITY_QUALITY_OF_SERVICE SecurityQos,
-	       PLPC_SECTION_WRITE SectionInfo,
-	       PLPC_SECTION_READ MapInfo,
-	       PULONG MaxMessageSize,
-	       PVOID ConnectInfo,
-	       PULONG ConnectInfoLength);
-
-/*
- * FUNCTION: Creates a directory object
- * ARGUMENTS:
- *        DirectoryHandle (OUT) = Caller supplied storage for the resulting handle
- *        DesiredAccess = Specifies access to the directory
- *        ObjectAttribute = Initialized attributes for the object
- * REMARKS: This function maps to the win32 CreateDirectory. A directory is like a file so it needs a
- *          handle, a access mask and a OBJECT_ATTRIBUTES structure to map the path name and the SECURITY_ATTRIBUTES.
- * RETURNS: Status
- */
-
-NTSTATUS
-STDCALL
-NtCreateDirectoryObject(
-	OUT PHANDLE DirectoryHandle,
-	IN ACCESS_MASK DesiredAccess,
-	IN POBJECT_ATTRIBUTES ObjectAttributes
-	);
-
-NTSTATUS
-STDCALL
-ZwCreateDirectoryObject(
-	OUT PHANDLE DirectoryHandle,
-	IN ACCESS_MASK DesiredAccess,
-	IN POBJECT_ATTRIBUTES ObjectAttributes
-	);
-
-/*
- * FUNCTION: Creates an event object
- * ARGUMENTS:
- *        EventHandle (OUT) = Caller supplied storage for the resulting handle
- *        DesiredAccess = Specifies access to the event
- *        ObjectAttribute = Initialized attributes for the object
- *        ManualReset = manual-reset or auto-reset if true you have to reset the state of the event manually
- *                       using NtResetEvent/NtClearEvent. if false the system will reset the event to a non-signalled state
- *                       automatically after the system has rescheduled a thread waiting on the event.
- *        InitialState = specifies the initial state of the event to be signaled ( TRUE ) or non-signalled (FALSE).
- * REMARKS: This function maps to the win32 CreateEvent. Demanding a out variable  of type HANDLE,
- *          a access mask and a OBJECT_ATTRIBUTES structure mapping to the SECURITY_ATTRIBUTES. ManualReset and InitialState are
- *          both parameters aswell ( possibly the order is reversed ).
- * RETURNS: Status
- */
-
-NTSTATUS
-STDCALL
-NtCreateEvent(
-	OUT PHANDLE EventHandle,
-	IN ACCESS_MASK DesiredAccess,
-	IN POBJECT_ATTRIBUTES ObjectAttributes,
-	IN BOOLEAN ManualReset,
-	IN BOOLEAN InitialState
-	);
-
-NTSTATUS
-STDCALL
-ZwCreateEvent(
-	OUT PHANDLE EventHandle,
-	IN ACCESS_MASK DesiredAccess,
-	IN POBJECT_ATTRIBUTES ObjectAttributes,
-	IN BOOLEAN ManualReset,
-	IN BOOLEAN InitialState
-	);
-
-/*
- * FUNCTION: Creates an eventpair object
- * ARGUMENTS:
- *        EventPairHandle (OUT) = Caller supplied storage for the resulting handle
- *        DesiredAccess = Specifies access to the event
- *        ObjectAttribute = Initialized attributes for the object
- */
-
-NTSTATUS
-STDCALL
-NtCreateEventPair(
-	OUT PHANDLE EventPairHandle,
-	IN ACCESS_MASK DesiredAccess,
-	IN POBJECT_ATTRIBUTES ObjectAttributes
-	);
-
-NTSTATUS
-STDCALL
-ZwCreateEventPair(
-	OUT PHANDLE EventPairHandle,
-	IN ACCESS_MASK DesiredAccess,
-	IN POBJECT_ATTRIBUTES ObjectAttributes
-	);
-
-
-/*
- * FUNCTION: Creates or opens a file, directory or device object.
- * ARGUMENTS:
- *        FileHandle (OUT) = Caller supplied storage for the resulting handle
- *        DesiredAccess = Specifies the allowed or desired access to the file can
- *                        be a combination of DELETE | FILE_READ_DATA ..  
- *        ObjectAttribute = Initialized attributes for the object, contains the rootdirectory and the filename
- *        IoStatusBlock (OUT) = Caller supplied storage for the resulting status information, indicating if the
- *                              the file is created and opened or allready existed and is just opened.
- *        FileAttributes = file attributes can be a combination of FILE_ATTRIBUTE_READONLY | FILE_ATTRIBUTE_HIDDEN ...
- *        ShareAccess = can be a combination of the following: FILE_SHARE_READ | FILE_SHARE_WRITE | FILE_SHARE_DELETE 
- *        CreateDisposition = specifies what the behavior of the system if the file allready exists.
- *        CreateOptions = specifies the behavior of the system on file creation.
- *        EaBuffer (OPTIONAL) = Extended Attributes buffer, applies only to files and directories.
- *        EaLength = Extended Attributes buffer size,  applies only to files and directories.
- * REMARKS: This function maps to the win32 CreateFile. 
- * RETURNS: Status
- */
-
-NTSTATUS
-STDCALL
-NtCreateFile(
-	OUT PHANDLE FileHandle,
-	IN ACCESS_MASK DesiredAccess,
-	IN POBJECT_ATTRIBUTES ObjectAttributes,
-	OUT PIO_STATUS_BLOCK IoStatusBlock,
-	IN PLARGE_INTEGER AllocationSize OPTIONAL,
-	IN ULONG FileAttributes,
-	IN ULONG ShareAccess,
-	IN ULONG CreateDisposition,
-	IN ULONG CreateOptions,
-	IN PVOID EaBuffer OPTIONAL,
-	IN ULONG EaLength
-	);
-
-NTSTATUS
-STDCALL
-ZwCreateFile(
-	OUT PHANDLE FileHandle,
-	IN ACCESS_MASK DesiredAccess,
-	IN POBJECT_ATTRIBUTES ObjectAttributes,
-	OUT PIO_STATUS_BLOCK IoStatusBlock,
-	IN PLARGE_INTEGER AllocationSize OPTIONAL,
-	IN ULONG FileAttributes,
-	IN ULONG ShareAccess,
-	IN ULONG CreateDisposition,
-	IN ULONG CreateOptions,
-	IN PVOID EaBuffer OPTIONAL,
-	IN ULONG EaLength
-	);
-
-/*
- * FUNCTION: Creates or opens a file, directory or device object.
- * ARGUMENTS:
- *        CompletionPort (OUT) = Caller supplied storage for the resulting handle
- *        DesiredAccess = Specifies the allowed or desired access to the port
- *        IoStatusBlock =
- *        NumberOfConcurrentThreads =
- * REMARKS: This function maps to the win32 CreateIoCompletionPort
- * RETURNS:
- *	Status
- */
-
-NTSTATUS
-STDCALL
-NtCreateIoCompletion(
-   OUT PHANDLE             IoCompletionHandle,
-   IN  ACCESS_MASK         DesiredAccess,
-   IN  POBJECT_ATTRIBUTES  ObjectAttributes,
-   IN  ULONG               NumberOfConcurrentThreads
-   );
-
-NTSTATUS
-STDCALL
-ZwCreateIoCompletion(
-   OUT PHANDLE             IoCompletionHandle,
-   IN  ACCESS_MASK         DesiredAccess,
-   IN  POBJECT_ATTRIBUTES  ObjectAttributes,
-   IN  ULONG               NumberOfConcurrentThreads
-   );
-
-/*
- * FUNCTION: Creates a registry key
- * ARGUMENTS:
- *        KeyHandle (OUT) = Caller supplied storage for the resulting handle
- *        DesiredAccess = Specifies the allowed or desired access to the key
- *          It can have a combination of the following values:
- *          KEY_READ | KEY_WRITE | KEY_EXECUTE | KEY_ALL_ACCESS
- *          or
- *          KEY_QUERY_VALUE The values of the key can be queried.
- *          KEY_SET_VALUE The values of the key can be modified.
- *          KEY_CREATE_SUB_KEYS The key may contain subkeys.
- *          KEY_ENUMERATE_SUB_KEYS Subkeys can be queried.
- *          KEY_NOTIFY
- *          KEY_CREATE_LINK A symbolic link to the key can be created. 
- *        ObjectAttributes = The name of the key may be specified directly in the name field 
- *          of object attributes or relative to a key in rootdirectory.
- *        TitleIndex = Might specify the position in the sequential order of subkeys. 
- *        Class = Specifies the kind of data, for example REG_SZ for string data. [ ??? ]
- *        CreateOptions = Specifies additional options with which the key is created
- *          REG_OPTION_VOLATILE  The key is not preserved across boots.
- *          REG_OPTION_NON_VOLATILE  The key is preserved accross boots.
- *          REG_OPTION_CREATE_LINK  The key is a symbolic link to another key. 
- *          REG_OPTION_BACKUP_RESTORE  Key is being opened or created for backup/restore operations. 
- *        Disposition = Indicates if the call to NtCreateKey resulted in the creation of a key it 
- *          can have the following values: REG_CREATED_NEW_KEY | REG_OPENED_EXISTING_KEY
- * RETURNS:
- *  Status
- */
-
-NTSTATUS STDCALL
-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 STDCALL
-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);
-
-/*
- * FUNCTION: Creates a mail slot file
- * ARGUMENTS:
- *        MailSlotFileHandle (OUT) = Caller supplied storage for the resulting handle
- *        DesiredAccess = Specifies the allowed or desired access to the file
- *        ObjectAttributes = Contains the name of the mailslotfile.
- *        IoStatusBlock = 
- *        FileAttributes =
- *        ShareAccess =
- *        MaxMessageSize =
- *        TimeOut =
- *       
- * REMARKS: This funciton maps to the win32 function CreateMailSlot
- * RETURNS:
- *	Status
- */
-
-NTSTATUS
-STDCALL
-NtCreateMailslotFile(
-	OUT PHANDLE MailSlotFileHandle,
-	IN ACCESS_MASK DesiredAccess,
-	IN POBJECT_ATTRIBUTES ObjectAttributes,
-	OUT PIO_STATUS_BLOCK IoStatusBlock,
-	IN ULONG FileAttributes,
-	IN ULONG ShareAccess,
-	IN ULONG MaxMessageSize,
-	IN PLARGE_INTEGER TimeOut
-	);
-
-NTSTATUS
-STDCALL
-ZwCreateMailslotFile(
-	OUT PHANDLE MailSlotFileHandle,
-	IN ACCESS_MASK DesiredAccess,
-	IN POBJECT_ATTRIBUTES ObjectAttributes,
-	OUT PIO_STATUS_BLOCK IoStatusBlock,
-	IN ULONG FileAttributes,
-	IN ULONG ShareAccess,
-	IN ULONG MaxMessageSize,
-	IN PLARGE_INTEGER TimeOut
-	);
-
-/*
- * FUNCTION: Creates or opens a mutex
- * ARGUMENTS:
- *        MutantHandle (OUT) = Caller supplied storage for the resulting handle
- *        DesiredAccess = Specifies the allowed or desired access to the port
- *        ObjectAttributes = Contains the name of the mutex.
- *        InitialOwner = If true the calling thread acquires ownership 
- *			of the mutex.
- * REMARKS: This funciton maps to the win32 function CreateMutex
- * RETURNS:
- *	Status
- */
-NTSTATUS
-STDCALL
-NtCreateMutant(
-	OUT PHANDLE MutantHandle,
-	IN ACCESS_MASK DesiredAccess,
-	IN POBJECT_ATTRIBUTES ObjectAttributes,
-	IN BOOLEAN InitialOwner
-	);
-
-NTSTATUS
-STDCALL
-ZwCreateMutant(
-	OUT PHANDLE MutantHandle,
-	IN ACCESS_MASK DesiredAccess,
-	IN POBJECT_ATTRIBUTES ObjectAttributes,
-	IN BOOLEAN InitialOwner
-	);
-
-/*
- * FUNCTION: Creates a named pipe
- * ARGUMENTS:
- *        NamedPipeFileHandle (OUT) = Caller supplied storage for the 
- *                                    resulting handle
- *        DesiredAccess = Specifies the type of access that the caller 
- *                        requires to the file boject
- *        ObjectAttributes = Points to a structure that specifies the
- *                           object attributes.
- *        IoStatusBlock = Points to a variable that receives the final
- *                        completion status and information
- *        ShareAccess = Specifies the limitations on sharing of the file.
- *                      This parameter can be zero or any compatible 
- *                      combination of the following flags
- *                         FILE_SHARE_READ
- *                         FILE_SHARE_WRITE
- *        CreateDisposition = Specifies what to do depending on whether
- *                            the file already exists. This must be one of
- *                            the following values
- *                                  FILE_OPEN
- *                                  FILE_CREATE
- *                                  FILE_OPEN_IF
- *        CreateOptions = Specifies the options to be applied when
- *                        creating or opening the file, as a compatible
- *                        combination of the following flags
- *                            FILE_WRITE_THROUGH
- *                            FILE_SYNCHRONOUS_IO_ALERT
- *                            FILE_SYNCHRONOUS_IO_NONALERT
- *        TypeMessage = Specifies whether the data written to the pipe is
- *                      interpreted as a sequence of messages or as a 
- *                      stream of bytes
- *        ReadModeMessage = Specifies whether the data read from the pipe
- *                          is interpreted as a sequence of messages or as
- *                          a stream of bytes
- *        NonBlocking = Specifies whether non-blocking mode is enabled
- *        MaxInstances = Specifies the maximum number of instancs that can
- *                       be created for this pipe
- *        InBufferSize = Specifies the number of bytes to reserve for the
- *                       input buffer
- *        OutBufferSize = Specifies the number of bytes to reserve for the
- *                        output buffer
- *        DefaultTimeout = Optionally points to a variable that specifies
- *                         the default timeout value in units of 
- *                         100-nanoseconds.
- * REMARKS: This funciton maps to the win32 function CreateNamedPipe
- * RETURNS:
- *	Status
- */
-NTSTATUS STDCALL
-NtCreateNamedPipeFile (OUT PHANDLE NamedPipeFileHandle,
-		       IN ACCESS_MASK DesiredAccess,
-		       IN POBJECT_ATTRIBUTES ObjectAttributes,
-		       OUT PIO_STATUS_BLOCK IoStatusBlock,
-		       IN ULONG ShareAccess,
-		       IN ULONG CreateDisposition,
-		       IN ULONG CreateOptions,
-		       IN BOOLEAN WriteModeMessage,
-		       IN BOOLEAN ReadModeMessage,
-		       IN BOOLEAN NonBlocking,
-		       IN ULONG MaxInstances,
-		       IN ULONG InBufferSize,
-		       IN ULONG OutBufferSize,
-		       IN PLARGE_INTEGER DefaultTimeOut);
-
-NTSTATUS STDCALL
-ZwCreateNamedPipeFile (OUT PHANDLE NamedPipeFileHandle,
-		       IN ACCESS_MASK DesiredAccess,
-		       IN POBJECT_ATTRIBUTES ObjectAttributes,
-		       OUT PIO_STATUS_BLOCK IoStatusBlock,
-		       IN ULONG ShareAccess,
-		       IN ULONG CreateDisposition,
-		       IN ULONG CreateOptions,
-		       IN BOOLEAN WriteModeMessage,
-		       IN BOOLEAN ReadModeMessage,
-		       IN BOOLEAN NonBlocking,
-		       IN ULONG MaxInstances,
-		       IN ULONG InBufferSize,
-		       IN ULONG OutBufferSize,
-		       IN PLARGE_INTEGER DefaultTimeOut);
-
-
-NTSTATUS STDCALL
-NtCreatePort (PHANDLE PortHandle,
-	      POBJECT_ATTRIBUTES ObjectAttributes,
-	      ULONG MaxConnectInfoLength,
-	      ULONG MaxDataLength,
-	      ULONG NPMessageQueueSize OPTIONAL);
-
-NTSTATUS STDCALL
-NtCreatePort (PHANDLE PortHandle,
-	      POBJECT_ATTRIBUTES ObjectAttributes,
-	      ULONG MaxConnectInfoLength,
-	      ULONG MaxDataLength,
-	      ULONG NPMessageQueueSize OPTIONAL);
-
-
-/*
- * FUNCTION: Creates a process.
- * ARGUMENTS:
- *        ProcessHandle (OUT) = Caller supplied storage for the resulting handle
- *        DesiredAccess = Specifies the allowed or desired access to the process can
- *                        be a combinate of STANDARD_RIGHTS_REQUIRED| ..  
- *        ObjectAttribute = Initialized attributes for the object, contains the rootdirectory and the filename
- *        ParentProcess = Handle to the parent process.
- *        InheritObjectTable = Specifies to inherit the objects of the parent process if true.
- *        SectionHandle = Handle to a section object to back the image file
- *        DebugPort = Handle to a DebugPort if NULL the system default debug port will be used.
- *        ExceptionPort = Handle to a exception port.
- * REMARKS:
- *        This function maps to the win32 CreateProcess.
- * RETURNS: Status
- */
-NTSTATUS
-STDCALL
-NtCreateProcess(
-	OUT PHANDLE ProcessHandle,
-        IN ACCESS_MASK DesiredAccess,
-        IN POBJECT_ATTRIBUTES ObjectAttributes OPTIONAL,
-        IN HANDLE ParentProcess,
-        IN BOOLEAN InheritObjectTable,
-        IN HANDLE SectionHandle OPTIONAL,
-        IN HANDLE DebugPort OPTIONAL,
-        IN HANDLE ExceptionPort OPTIONAL
-	);
-
-NTSTATUS
-STDCALL
-ZwCreateProcess(
-	OUT PHANDLE ProcessHandle,
-        IN ACCESS_MASK DesiredAccess,
-        IN POBJECT_ATTRIBUTES ObjectAttributes OPTIONAL,
-        IN HANDLE ParentProcess,
-        IN BOOLEAN InheritObjectTable,
-        IN HANDLE SectionHandle OPTIONAL,
-        IN HANDLE DebugPort OPTIONAL,
-        IN HANDLE ExceptionPort OPTIONAL
-	);
-
-/*
- * FUNCTION: Creates a section object.
- * ARGUMENTS:
- *        SectionHandle (OUT) = Caller supplied storage for the resulting handle
- *        DesiredAccess = Specifies the desired access to the section can be a combination of STANDARD_RIGHTS_REQUIRED | SECTION_QUERY | SECTION_MAP_WRITE |  
- *                        SECTION_MAP_READ | SECTION_MAP_EXECUTE.
- *        ObjectAttribute = Initialized attributes for the object can be used to create a named section
- *        MaxiumSize = Maximizes the size of the memory section. Must be non-NULL for a page-file backed section. 
- *                     If value specified for a mapped file and the file is not large enough, file will be extended. 
- *        SectionPageProtection = Can be a combination of PAGE_READONLY | PAGE_READWRITE | PAGE_WRITEONLY | PAGE_WRITECOPY.
- *        AllocationAttributes = can be a combination of SEC_IMAGE | SEC_RESERVE
- *        FileHanlde = Handle to a file to create a section mapped to a file instead of a memory backed section.
- * RETURNS: Status
- */
-
-NTSTATUS
-STDCALL
-NtCreateSection(
-	OUT PHANDLE SectionHandle,
-	IN ACCESS_MASK DesiredAccess,
-	IN POBJECT_ATTRIBUTES ObjectAttributes OPTIONAL,
-	IN PLARGE_INTEGER MaximumSize OPTIONAL,
-	IN ULONG SectionPageProtection OPTIONAL,
-	IN ULONG AllocationAttributes,
-	IN HANDLE FileHandle OPTIONAL
-	);
-
-NTSTATUS
-STDCALL
-ZwCreateSection(
-	OUT PHANDLE SectionHandle,
-	IN ACCESS_MASK DesiredAccess,
-	IN POBJECT_ATTRIBUTES ObjectAttributes OPTIONAL,
-	IN PLARGE_INTEGER MaximumSize OPTIONAL,
-	IN ULONG SectionPageProtection OPTIONAL,
-	IN ULONG AllocationAttributes,
-	IN HANDLE FileHandle OPTIONAL
-	);
-
-/*
- * FUNCTION: Creates a semaphore object for interprocess synchronization.
- * ARGUMENTS:
- *        SemaphoreHandle (OUT) = Caller supplied storage for the resulting handle
- *        DesiredAccess = Specifies the allowed or desired access to the semaphore. 
- *        ObjectAttribute = Initialized attributes for the object.
- *        InitialCount = Not necessary zero, might be smaller than zero.
- *        MaximumCount = Maxiumum count the semaphore can reach.
- * RETURNS: Status
- * REMARKS: 
- *        The semaphore is set to signaled when its count is greater than zero, and non-signaled when its count is zero.
- */
-
-//FIXME: should a semaphore's initial count allowed to be smaller than zero ??
-NTSTATUS
-STDCALL
-NtCreateSemaphore(
-	OUT PHANDLE SemaphoreHandle,
-	IN ACCESS_MASK DesiredAccess,
-	IN POBJECT_ATTRIBUTES ObjectAttributes OPTIONAL,
-	IN LONG InitialCount,
-	IN LONG MaximumCount
-	);
-
-NTSTATUS
-STDCALL
-ZwCreateSemaphore(
-	OUT PHANDLE SemaphoreHandle,
-	IN ACCESS_MASK DesiredAccess,
-	IN POBJECT_ATTRIBUTES ObjectAttributes OPTIONAL,
-	IN LONG InitialCount,
-	IN LONG MaximumCount
-	);
-
-/*
- * FUNCTION: Creates a symbolic link object
- * ARGUMENTS:
- *        SymbolicLinkHandle (OUT) = Caller supplied storage for the resulting handle
- *        DesiredAccess = Specifies the allowed or desired access to the thread. 
- *        ObjectAttributes = Initialized attributes for the object.
- *        Name = Target name of the symbolic link  
- * RETURNS: Status
- */
-NTSTATUS
-STDCALL
-NtCreateSymbolicLinkObject(
-	OUT PHANDLE SymbolicLinkHandle,
-	IN ACCESS_MASK DesiredAccess,
-	IN POBJECT_ATTRIBUTES ObjectAttributes,
-	IN PUNICODE_STRING Name
-	);
-
-NTSTATUS
-STDCALL
-ZwCreateSymbolicLinkObject(
-	OUT PHANDLE SymbolicLinkHandle,
-	IN ACCESS_MASK DesiredAccess,
-	IN POBJECT_ATTRIBUTES ObjectAttributes,
-	IN PUNICODE_STRING Name
-	);
-
-/*
- * FUNCTION: Creates a waitable timer.
- * ARGUMENTS:
- *        TimerHandle (OUT) = Caller supplied storage for the resulting handle
- *        DesiredAccess = Specifies the allowed or desired access to the timer. 
- *        ObjectAttributes = Initialized attributes for the object.
- *        TimerType = Specifies if the timer should be reset manually.
- * REMARKS:
- *       This function maps to the win32  CreateWaitableTimer. lpTimerAttributes and lpTimerName map to
- *       corresponding fields in OBJECT_ATTRIBUTES structure. 
- * RETURNS: Status
- */
-NTSTATUS
-STDCALL
-NtCreateTimer(
-	OUT PHANDLE TimerHandle,
-	IN ACCESS_MASK DesiredAccess,
-	IN POBJECT_ATTRIBUTES ObjectAttributes OPTIONAL,
-	IN TIMER_TYPE TimerType
-	);
-
-NTSTATUS
-STDCALL
-ZwCreateTimer(
-	OUT PHANDLE TimerHandle,
-	IN ACCESS_MASK DesiredAccess,
-	IN POBJECT_ATTRIBUTES ObjectAttributes OPTIONAL,
-	IN TIMER_TYPE TimerType
-	);
-
-/*
- * FUNCTION: Creates a token.
- * ARGUMENTS:
- *        TokenHandle (OUT) = Caller supplied storage for the resulting handle
- *        DesiredAccess = Specifies the allowed or desired access to the process can
- *                        be a combinate of STANDARD_RIGHTS_REQUIRED| ..  
[truncated at 1000 lines; 11602 more skipped]

reactos/include/ndk
zwtypes.h 1.1.2.1 -> 1.1.2.2
diff -u -r1.1.2.1 -r1.1.2.2
--- zwtypes.h	25 Oct 2004 01:24:07 -0000	1.1.2.1
+++ zwtypes.h	25 Oct 2004 21:52:24 -0000	1.1.2.2
@@ -1,1036 +1,1036 @@
-/* $Id: zwtypes.h,v 1.1.2.1 2004/10/25 01:24:07 ion Exp $
- *
- *  ReactOS Headers
- *  Copyright (C) 1998-2004 ReactOS Team
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- */
-/*
- * PROJECT:         ReactOS Native Headers
- * FILE:            include/ndk/zwtypes.h
- * PURPOSE:         Defintions for Native Types not defined in DDK/IFS
- * PROGRAMMER:      Alex Ionescu (alex@relsoft.net)
- * UPDATE HISTORY:
- *                  Created 06/10/04
- */
-#ifndef _ZWTYPES_H
-#define _ZWTYPES_H
-
-/*FIXME: REOREGANIZE!! */
-
-typedef unsigned short LANGID;
-typedef LANGID *PLANGID;
-typedef unsigned short RTL_ATOM;
-typedef unsigned short *PRTL_ATOM;
-
-#ifndef _WINDOWS_H
-typedef struct _LDT_ENTRY {
-	WORD LimitLow;
-	WORD BaseLow;
-	union {
-		struct {
-			BYTE BaseMid;
-			BYTE Flags1;
-			BYTE Flags2;
-			BYTE BaseHi;
-		} Bytes;
-		struct {
-			DWORD BaseMid:8;
-			DWORD Type:5;
-			DWORD Dpl:2;
-			DWORD Pres:1;
-			DWORD LimitHi:4;
-			DWORD Sys:1;
-			DWORD Reserved_0:1;
-			DWORD Default_Big:1;
-			DWORD Granularity:1;
-			DWORD BaseHi:8;
-		} Bits;
-	} HighWord;
-} LDT_ENTRY,*PLDT_ENTRY,*LPLDT_ENTRY;
-#endif
-
-typedef enum _THREAD_STATE {
-	StateInitialized,
-	StateReady,
-	StateRunning,
-	StateStandby,
-	StateTerminated,
-	StateWait,
-	StateTransition,
-	StateUnknown
-} THREAD_STATE;
-
-typedef enum _DEBUG_CONTROL_CODE {
-	DebugGetTraceInformation = 1,
-	DebugSetInternalBreakpoint,
-	DebugSetSpecialCall,
-	DebugClearSpecialCalls,
-	DebugQuerySpecialCalls,
-	DebugDbgBreakPoint,
-	DebugDbgLoadSymbols
-} DEBUG_CONTROL_CODE;
-
-typedef enum _OBJECT_INFORMATION_CLASS {
-	ObjectBasicInformation,
-	ObjectNameInformation,
-	ObjectTypeInformation,
-	ObjectAllTypesInformation,
-	ObjectHandleInformation
-} OBJECT_INFORMATION_CLASS;
-
-typedef struct _OBJECT_HANDLE_ATTRIBUTE_INFORMATION {
-	BOOLEAN Inherit;
-	BOOLEAN ProtectFromClose;
-} OBJECT_HANDLE_ATTRIBUTE_INFORMATION, *POBJECT_HANDLE_ATTRIBUTE_INFORMATION;
-
-// system information
-// {Nt|Zw}{Query|Set}SystemInformation
-// (GN means Gary Nebbet in "NT/W2K Native API Reference")
-
-typedef enum _SYSTEM_INFORMATION_CLASS {
-	SystemInformationClassMin		= 0,
-	SystemBasicInformation			= 0,	/* Q */
-	
-	SystemProcessorInformation		= 1,	/* Q */
-	
-	SystemPerformanceInformation		= 2,	/* Q */
-	
-	SystemTimeOfDayInformation		= 3,	/* Q */
-	
-	SystemPathInformation			= 4,	/* Q (checked build only) */
-	SystemNotImplemented1                   = 4,	/* Q (GN) */
-	
-	SystemProcessInformation		= 5,	/* Q */
-	SystemProcessesAndThreadsInformation    = 5,	/* Q (GN) */
-	
-	SystemCallCountInfoInformation		= 6,	/* Q */
-	SystemCallCounts			= 6,	/* Q (GN) */
-	
-	SystemDeviceInformation			= 7,	/* Q */
-// It conflicts with symbol in ntoskrnl/io/resource.c
-//	SystemConfigurationInformation		= 7,	/* Q (GN) */
-	
-	SystemProcessorPerformanceInformation	= 8,	/* Q */
-	SystemProcessorTimes			= 8,	/* Q (GN) */
-	
-	SystemFlagsInformation			= 9,	/* QS */
-	SystemGlobalFlag			= 9,	/* QS (GN) */
-	
-	SystemCallTimeInformation		= 10,
-	SystemNotImplemented2			= 10,	/* (GN) */
-	
-	SystemModuleInformation			= 11,	/* Q */
-	
-	SystemLocksInformation			= 12,	/* Q */
-	SystemLockInformation			= 12,	/* Q (GN) */
-	
-	SystemStackTraceInformation		= 13,
-	SystemNotImplemented3			= 13,	/* Q (GN) */
-	
-	SystemPagedPoolInformation		= 14,
-	SystemNotImplemented4			= 14,	/* Q (GN) */
-	
-	SystemNonPagedPoolInformation		= 15,
-	SystemNotImplemented5			= 15,	/* Q (GN) */
-	
-	SystemHandleInformation			= 16,	/* Q */
-	
-	SystemObjectInformation			= 17,	/* Q */
-	
-	SystemPageFileInformation		= 18,	/* Q */
-	SystemPagefileInformation		= 18,	/* Q (GN) */
-	
-	SystemVdmInstemulInformation		= 19,	/* Q */
-	SystemInstructionEmulationCounts	= 19,	/* Q (GN) */
-	
-	SystemVdmBopInformation			= 20,
-	SystemInvalidInfoClass1			= 20,	/* (GN) */
-	
-	SystemFileCacheInformation		= 21,	/* QS */
-	SystemCacheInformation			= 21,	/* QS (GN) */
-	
-	SystemPoolTagInformation		= 22,	/* Q (checked build only) */
-	
-	SystemInterruptInformation		= 23,	/* Q */
-	SystemProcessorStatistics		= 23,	/* Q (GN) */
-	
-	SystemDpcBehaviourInformation		= 24,	/* QS */
-	SystemDpcInformation			= 24,	/* QS (GN) */
-	
-	SystemFullMemoryInformation		= 25,
-	SystemNotImplemented6			= 25,	/* (GN) */
-	
-	SystemLoadImage				= 26,	/* S (callable) (GN) */
-	
-	SystemUnloadImage			= 27,	/* S (callable) (GN) */
-	
-	SystemTimeAdjustmentInformation		= 28,	/* QS */
-	SystemTimeAdjustment			= 28,	/* QS (GN) */
-	
-	SystemSummaryMemoryInformation		= 29,
-	SystemNotImplemented7			= 29,	/* (GN) */
-	
-	SystemNextEventIdInformation		= 30,
-	SystemNotImplemented8			= 30,	/* (GN) */
-	
-	SystemEventIdsInformation		= 31,
-	SystemNotImplemented9			= 31,	/* (GN) */
-	
-	SystemCrashDumpInformation		= 32,	/* Q */
-	
-	SystemExceptionInformation		= 33,	/* Q */
-	
-	SystemCrashDumpStateInformation		= 34,	/* Q */
-	
-	SystemKernelDebuggerInformation		= 35,	/* Q */
-	
-	SystemContextSwitchInformation		= 36,	/* Q */
-	
-	SystemRegistryQuotaInformation		= 37,	/* QS */
-	
-	SystemLoadAndCallImage			= 38,	/* S (GN) */
-	
-	SystemPrioritySeparation		= 39,	/* S */
-	
-	SystemPlugPlayBusInformation		= 40,
-	SystemNotImplemented10			= 40,	/* Q (GN) */
-	
-	SystemDockInformation			= 41,
-	SystemNotImplemented11			= 41,	/* Q (GN) */
-	
-	SystemPowerInfo				= 42,
-	SystemInvalidInfoClass2			= 42,	/* (GN) */
-	
-	SystemProcessorSpeedInformation		= 43,
-	SystemInvalidInfoClass3			= 43,	/* (GN) */
-	
-	SystemCurrentTimeZoneInformation	= 44,	/* QS */
-	SystemTimeZoneInformation		= 44,	/* QS (GN) */
-	
-	SystemLookasideInformation		= 45,	/* Q */
-	
-	SystemSetTimeSlipEvent			= 46,	/* S (GN) */
-	
-	SystemCreateSession			= 47,	/* S (GN) */
-	
-	SystemDeleteSession			= 48,	/* S (GN) */
-	
-	SystemInvalidInfoClass4			= 49,	/* (GN) */
-	
-	SystemRangeStartInformation		= 50,	/* Q (GN) */
-	
-	SystemVerifierInformation		= 51,	/* QS (GN) */
-	
-	SystemAddVerifier			= 52,	/* S (GN) */
-	
-	SystemSessionProcessesInformation	= 53,	/* Q (GN) */
-	SystemInformationClassMax
-
-} SYSTEM_INFORMATION_CLASS;
-
-// SystemBasicInformation (0)
-// Modified by Andrew Greenwood (15th July 2003) to match Win 32 API headers
-typedef
-struct _SYSTEM_BASIC_INFORMATION
-{
-	ULONG		Unknown;
-	ULONG		MaximumIncrement;
-	ULONG		PhysicalPageSize;
-	ULONG		NumberOfPhysicalPages;
-	ULONG		LowestPhysicalPage;
-	ULONG		HighestPhysicalPage;
-	ULONG		AllocationGranularity;
-	ULONG		LowestUserAddress;
-	ULONG		HighestUserAddress;
-	KAFFINITY	ActiveProcessors;
-	CCHAR		NumberProcessors;
-} SYSTEM_BASIC_INFORMATION, *PSYSTEM_BASIC_INFORMATION;
-
-// SystemProcessorInformation (1)
-// Modified by Andrew Greenwood (15th July 2003) to match Win 32 API headers
-typedef struct _SYSTEM_PROCESSOR_INFORMATION {
-	USHORT  ProcessorArchitecture;
-	USHORT  ProcessorLevel;
-	USHORT  ProcessorRevision;
-	USHORT  Unknown;
-	ULONG  FeatureBits;
-} SYSTEM_PROCESSOR_INFORMATION, *PSYSTEM_PROCESSOR_INFORMATION;
-
-// SystemPerformanceInfo (2)
-// Modified by Andrew Greenwood (15th July 2003) to match Win 32 API headers
-typedef struct _SYSTEM_PERFORMANCE_INFORMATION {
-	LARGE_INTEGER  IdleTime;
-	LARGE_INTEGER  ReadTransferCount;
-	LARGE_INTEGER  WriteTransferCount;
-	LARGE_INTEGER  OtherTransferCount;
-	ULONG  ReadOperationCount;
-	ULONG  WriteOperationCount;
-	ULONG  OtherOperationCount;
-	ULONG  AvailablePages;
-	ULONG  TotalCommittedPages;
-	ULONG  TotalCommitLimit;
-	ULONG  PeakCommitment;
-	ULONG  PageFaults;
-	ULONG  WriteCopyFaults;
-	ULONG  TransitionFaults;
-	ULONG  CacheTransitionFaults;
-	ULONG  DemandZeroFaults;
-	ULONG  PagesRead;
-	ULONG  PageReadIos;
-	ULONG	 CacheReads;
-	ULONG	 CacheIos;
-	ULONG  PagefilePagesWritten;
-	ULONG  PagefilePageWriteIos;
-	ULONG  MappedFilePagesWritten;
-	ULONG  MappedFilePageWriteIos;
-	ULONG  PagedPoolUsage;
-	ULONG  NonPagedPoolUsage;
-	ULONG  PagedPoolAllocs;
-	ULONG  PagedPoolFrees;
-	ULONG  NonPagedPoolAllocs;
-	ULONG  NonPagedPoolFrees;
-	ULONG  TotalFreeSystemPtes;
-	ULONG  SystemCodePage;
-	ULONG  TotalSystemDriverPages;
-	ULONG  TotalSystemCodePages;
-	ULONG  SmallNonPagedLookasideListAllocateHits;
-	ULONG  SmallPagedLookasideListAllocateHits;
-	ULONG  Reserved3;
-	ULONG  MmSystemCachePage;
-	ULONG  PagedPoolPage;
-	ULONG  SystemDriverPage;
-	ULONG  FastReadNoWait;
-	ULONG  FastReadWait;
-	ULONG  FastReadResourceMiss;
-	ULONG  FastReadNotPossible;
-	ULONG  FastMdlReadNoWait;
-	ULONG  FastMdlReadWait;
-	ULONG  FastMdlReadResourceMiss;
-	ULONG  FastMdlReadNotPossible;
-	ULONG  MapDataNoWait;
-	ULONG  MapDataWait;
-	ULONG  MapDataNoWaitMiss;
-	ULONG  MapDataWaitMiss;
-	ULONG  PinMappedDataCount;
-	ULONG  PinReadNoWait;
-	ULONG  PinReadWait;
-	ULONG  PinReadNoWaitMiss;
-	ULONG  PinReadWaitMiss;
-	ULONG  CopyReadNoWait;
-	ULONG  CopyReadWait;
-	ULONG  CopyReadNoWaitMiss;
-	ULONG  CopyReadWaitMiss;
-	ULONG  MdlReadNoWait;
-	ULONG  MdlReadWait;
-	ULONG  MdlReadNoWaitMiss;
-	ULONG  MdlReadWaitMiss;
-	ULONG  ReadAheadIos;
-	ULONG  LazyWriteIos;
-	ULONG  LazyWritePages;
-	ULONG  DataFlushes;
-	ULONG  DataPages;
-	ULONG  ContextSwitches;
-	ULONG  FirstLevelTbFills;
-	ULONG  SecondLevelTbFills;
-	ULONG  SystemCalls;
-} SYSTEM_PERFORMANCE_INFORMATION, *PSYSTEM_PERFORMANCE_INFORMATION;
-
-// SystemModuleInformation (11)
-typedef struct _SYSTEM_MODULE_INFORMATION_ENTRY {
-	ULONG	 Unknown1;
-	ULONG	 Unknown2;
-	PVOID  Base;
-	ULONG  Size;
-	ULONG  Flags;
-	USHORT  Index;
-  /* Length of module name not including the path, this
-     field contains valid value only for NTOSKRNL module */
-	USHORT	NameLength;
-	USHORT  LoadCount;
-	USHORT  PathLength;
-	CHAR  ImageName[256];
-} SYSTEM_MODULE_INFORMATION_ENTRY, *PSYSTEM_MODULE_INFORMATION_ENTRY;
-
-typedef struct _SYSTEM_MODULE_INFORMATION {
-	ULONG  Count;
-	SYSTEM_MODULE_INFORMATION_ENTRY Module[1];
-} SYSTEM_MODULE_INFORMATION, *PSYSTEM_MODULE_INFORMATION;
-
-// SystemHandleInformation (16)
-// (see ontypes.h)
-typedef struct _SYSTEM_HANDLE_ENTRY {
-	ULONG	OwnerPid;
-	BYTE	ObjectType;
-	BYTE	HandleFlags;
-	USHORT	HandleValue;
-	PVOID	ObjectPointer;
-	ULONG	AccessMask;
-} SYSTEM_HANDLE_ENTRY, *PSYSTEM_HANDLE_ENTRY;
-
-typedef struct _SYSTEM_HANDLE_INFORMATION {
-	ULONG  ProcessId;
-	UCHAR  ObjectTypeNumber;
-	UCHAR  Flags;
-	USHORT  Handle;
-	PVOID  Object;
-	ACCESS_MASK  GrantedAccess;
-} SYSTEM_HANDLE_INFORMATION, *PSYSTEM_HANDLE_INFORMATION;
-
-// SystemObjectInformation (17)
-typedef struct _SYSTEM_OBJECT_TYPE_INFORMATION {
-	ULONG		NextEntryOffset;
-	ULONG		ObjectCount;
-	ULONG		HandleCount;
-	ULONG		TypeNumber;
-	ULONG		InvalidAttributes;
-	GENERIC_MAPPING	GenericMapping;
-	ACCESS_MASK	ValidAccessMask;
-	POOL_TYPE	PoolType;
-	UCHAR		Unknown;
-	UNICODE_STRING	Name;
-} SYSTEM_OBJECT_TYPE_INFORMATION, *PSYSTEM_OBJECT_TYPE_INFORMATION;
-
-typedef struct _SYSTEM_OBJECT_INFORMATION {
-	ULONG			NextEntryOffset;
-	PVOID			Object;
-	ULONG			CreatorProcessId;
-	USHORT			Unknown;
-	USHORT			Flags;
-	ULONG			PointerCount;
-	ULONG			HandleCount;
-	ULONG			PagedPoolUsage;
-	ULONG			NonPagedPoolUsage;
-	ULONG			ExclusiveProcessId;
-	PSECURITY_DESCRIPTOR	SecurityDescriptor;
-	UNICODE_STRING		Name;
-} SYSTEM_OBJECT_INFORMATION, *PSYSTEM_OBJECT_INFORMATION;
-
-// SystemPageFileInformation (18)
-typedef struct _SYSTEM_PAGEFILE_INFORMATION {
-	ULONG		RelativeOffset;
-	ULONG		CurrentSizePages;
-	ULONG		TotalUsedPages;
-	ULONG		PeakUsedPages;
-	UNICODE_STRING	PagefileFileName;
-} SYSTEM_PAGEFILE_INFORMATION, *PSYSTEM_PAGEFILE_INFORMATION;
-
-// SystemDpcInformation (24)
-typedef struct _SYSTEM_DPC_INFORMATION {
-	ULONG	Unused;
-	ULONG	KiMaximumDpcQueueDepth;
-	ULONG	KiMinimumDpcRate;
-	ULONG	KiAdjustDpcThreshold;
-	ULONG	KiIdealDpcRate;
-} SYSTEM_DPC_INFORMATION, *PSYSTEM_DPC_INFORMATION;
-
-// SystemLoadImage (26)
-typedef struct _SYSTEM_LOAD_IMAGE {
-	UNICODE_STRING ModuleName;
-	PVOID ModuleBase;
-	PVOID SectionPointer;
-	PVOID EntryPoint;
-	PVOID ExportDirectory;
-} SYSTEM_LOAD_IMAGE, *PSYSTEM_LOAD_IMAGE;
-
-// SystemUnloadImage (27)
-typedef struct _SYSTEM_UNLOAD_IMAGE {
-	PVOID ModuleBase;
-} SYSTEM_UNLOAD_IMAGE, *PSYSTEM_UNLOAD_IMAGE;
-
-// SystemTimeAdjustmentInformation (28)
-typedef struct _SYSTEM_QUERY_TIME_ADJUSTMENT {
-	ULONG	TimeAdjustment;
-	ULONG	MaximumIncrement;
-	BOOLEAN	TimeSynchronization;
-} SYSTEM_QUERY_TIME_ADJUSTMENT, *PSYSTEM_QUERY_TIME_ADJUSTMENT;
-
-typedef struct _SYSTEM_SET_TIME_ADJUSTMENT {
-	ULONG	TimeAdjustment;
-	BOOLEAN	TimeSynchronization;
-} SYSTEM_SET_TIME_ADJUSTMENT, *PSYSTEM_SET_TIME_ADJUSTMENT;
-
-// atom information
-typedef enum _ATOM_INFORMATION_CLASS
-{
-	AtomBasicInformation		= 0,
-	AtomTableInformation		= 1,
-} ATOM_INFORMATION_CLASS;
-
-typedef struct _ATOM_BASIC_INFORMATION {
-	USHORT UsageCount;
-	USHORT Flags;
-	USHORT NameLength;
-	WCHAR Name[1];
-} ATOM_BASIC_INFORMATION, *PATOM_BASIC_INFORMATION;
-
-// SystemLoadAndCallImage(38)
-typedef struct _SYSTEM_LOAD_AND_CALL_IMAGE {
-	UNICODE_STRING ModuleName;
-} SYSTEM_LOAD_AND_CALL_IMAGE, *PSYSTEM_LOAD_AND_CALL_IMAGE;
-
-// SystemTimeZoneInformation (44)
-typedef struct _SYSTEM_TIME_ZONE_INFORMATION {
-	LONG	Bias;
-	WCHAR	StandardName [32];
-	LARGE_INTEGER	StandardDate;
-	LONG	StandardBias;
-	WCHAR	DaylightName [32];
-	LARGE_INTEGER	DaylightDate;
-	LONG	DaylightBias;
-} SYSTEM_TIME_ZONE_INFORMATION, * PSYSTEM_TIME_ZONE_INFORMATION;
-
-// SystemLookasideInformation (45)
-typedef struct _SYSTEM_LOOKASIDE_INFORMATION {
-	USHORT		Depth;
-	USHORT		MaximumDepth;
-	ULONG		TotalAllocates;
-	ULONG		AllocatesMisses;
-	ULONG		TotalFrees;
-	ULONG		FreeMisses;
-	POOL_TYPE	Type;
-	ULONG		Tag;
-	ULONG		Size;
-} SYSTEM_LOOKASIDE_INFORMATION, * PSYSTEM_LOOKASIDE_INFORMATION;
-
-// SystemSetTimeSlipEvent (46)
-typedef struct _SYSTEM_SET_TIME_SLIP_EVENT {
-	HANDLE	TimeSlipEvent; /* IN */
-} SYSTEM_SET_TIME_SLIP_EVENT, * PSYSTEM_SET_TIME_SLIP_EVENT;
-
-// SystemCreateSession (47)
-// (available only on TSE/NT5+)
-typedef struct _SYSTEM_CREATE_SESSION {
-	ULONG	SessionId; /* OUT */
-} SYSTEM_CREATE_SESSION, * PSYSTEM_CREATE_SESSION;
-
-// SystemDeleteSession (48)
-// (available only on TSE/NT5+)
-typedef struct _SYSTEM_DELETE_SESSION {
-	ULONG	SessionId; /* IN */
-} SYSTEM_DELETE_SESSION, * PSYSTEM_DELETE_SESSION;
-
-// SystemRangeStartInformation (50)
-typedef struct _SYSTEM_RANGE_START_INFORMATION {
-	PVOID	SystemRangeStart;
-} SYSTEM_RANGE_START_INFORMATION, * PSYSTEM_RANGE_START_INFORMATION;
-
-// SystemSessionProcessesInformation (53)
-// (available only on TSE/NT5+)
-typedef struct _SYSTEM_SESSION_PROCESSES_INFORMATION {
-	ULONG	SessionId;
-	ULONG	BufferSize;
-	PVOID	Buffer; /* same format as in SystemProcessInformation */
-} SYSTEM_SESSION_PROCESSES_INFORMATION, * PSYSTEM_SESSION_PROCESSES_INFORMATION;
-
-typedef struct _SYSTEM_THREADS {
-	LARGE_INTEGER  KernelTime;
-	LARGE_INTEGER  UserTime;
-	LARGE_INTEGER  CreateTime;
-	ULONG  WaitTime;
-	PVOID  StartAddress;
-	CLIENT_ID  ClientId;
-	KPRIORITY  Priority;
-	KPRIORITY  BasePriority;
-	ULONG  ContextSwitchCount;
-	THREAD_STATE  State;
-	KWAIT_REASON  WaitReason;
-} SYSTEM_THREADS, *PSYSTEM_THREADS;
-
-typedef struct _SYSTEM_PROCESSES {
-	ULONG  NextEntryDelta;
-	ULONG  ThreadCount;
-	ULONG  Reserved1[6];
-	LARGE_INTEGER  CreateTime;
-	LARGE_INTEGER  UserTime;
-	LARGE_INTEGER  KernelTime;
-	UNICODE_STRING  ProcessName;
-	KPRIORITY  BasePriority;
-	ULONG  ProcessId;
-	ULONG  InheritedFromProcessId;
-	ULONG  HandleCount;
-	ULONG  Reserved2[2];
-	VM_COUNTERS  VmCounters;
-	IO_COUNTERS  IoCounters;
-	SYSTEM_THREADS  Threads[1];
-} SYSTEM_PROCESSES, *PSYSTEM_PROCESSES;
-
-// memory information
-typedef enum _MEMORY_INFORMATION_CLASS {
-	MemoryBasicInformation,
-	MemoryWorkingSetList,
-	MemorySectionName,
-	MemoryBasicVlmInformation
-} MEMORY_INFORMATION_CLASS;
-
-// Information Class 1
-typedef struct _MEMORY_WORKING_SET_LIST {
-	ULONG NumberOfPages;
-	ULONG WorkingSetList[1];
-} MEMORY_WORKING_SET_LIST, *PMEMORY_WORKING_SET_LIST;
-
-typedef struct {
-	UNICODE_STRING SectionFileName;
-	WCHAR          NameBuffer[ANYSIZE_ARRAY];
-} MEMORY_SECTION_NAME, *PMEMORY_SECTION_NAME;
-
-// thread information
-// FIXME: incompatible with MS NT
-typedef struct _THREAD_BASIC_INFORMATION {
-	NTSTATUS  ExitStatus;
-	PVOID     TebBaseAddress;	// PNT_TIB (GN)
-	CLIENT_ID ClientId;
-	KAFFINITY AffinityMask;
-	KPRIORITY Priority;
-	KPRIORITY BasePriority;
-} THREAD_BASIC_INFORMATION, *PTHREAD_BASIC_INFORMATION;
-
-typedef enum _SECTION_INFORMATION_CLASS {
-	SectionBasicInformation,
-	SectionImageInformation,
-} SECTION_INFORMATION_CLASS;
-
-// shutdown action
-typedef enum SHUTDOWN_ACTION_TAG {
-	ShutdownNoReboot,
-	ShutdownReboot,
-	ShutdownPowerOff
-} SHUTDOWN_ACTION;
-
-#define DebugDbgLoadSymbols ((DEBUG_CONTROL_CODE)0xffffffff)
-
-// event access mask
-#define EVENT_READ_ACCESS			1
-#define EVENT_WRITE_ACCESS			2
-
-//process query / set information class
-
-#define ProcessBasicInformation			0
-#define ProcessQuotaLimits			1
-#define ProcessIoCounters			2
-#define ProcessVmCounters			3
-#define ProcessTimes				4
-#define ProcessBasePriority			5
-#define ProcessRaisePriority			6
-#define ProcessDebugPort			7
-#define ProcessExceptionPort			8
-#define ProcessAccessToken			9
-#define ProcessLdtInformation			10
-#define ProcessLdtSize				11
-#define ProcessDefaultHardErrorMode		12
-#define ProcessIoPortHandlers			13
-#define ProcessPooledUsageAndLimits		14
-#define ProcessWorkingSetWatch			15
-#define ProcessUserModeIOPL			16
-#define ProcessEnableAlignmentFaultFixup	17
-#define ProcessPriorityClass			18
-#define ProcessWx86Information			19
-#define ProcessHandleCount			20
-#define ProcessAffinityMask			21
-#define ProcessPriorityBoost			22
-#define ProcessDeviceMap			23
-#define ProcessSessionInformation		24
-#define ProcessForegroundInformation		25
-#define ProcessWow64Information			26
-/* ReactOS private. */
-#define ProcessImageFileName			27
-#define ProcessDesktop                          28
-#define MaxProcessInfoClass			29
-
-/*
- * thread query / set information class
- */
-#define ThreadBasicInformation			0
-#define ThreadTimes				1
-#define ThreadPriority				2
-#define ThreadBasePriority			3
-#define ThreadAffinityMask			4
-#define ThreadImpersonationToken		5
-#define ThreadDescriptorTableEntry		6
-#define ThreadEnableAlignmentFaultFixup		7
-#define ThreadEventPair				8
-#define ThreadQuerySetWin32StartAddress		9
-#define ThreadZeroTlsCell			10
-#define ThreadPerformanceCount			11
-#define ThreadAmILastThread			12
-#define ThreadIdealProcessor			13
-#define ThreadPriorityBoost			14
-#define ThreadSetTlsArrayAddress		15
-#define ThreadIsIoPending			16
-#define ThreadHideFromDebugger			17
-#define MaxThreadInfoClass			17
-
-typedef struct _ATOM_TABLE_INFORMATION {
-	ULONG NumberOfAtoms;
-	RTL_ATOM Atoms[1];
-} ATOM_TABLE_INFORMATION, *PATOM_TABLE_INFORMATION;
-
-// mutant information
-typedef enum _MUTANT_INFORMATION_CLASS {
-	MutantBasicInformation = 0
-} MUTANT_INFORMATION_CLASS;
-
-typedef struct _MUTANT_BASIC_INFORMATION {
-	LONG Count;
-	BOOLEAN Owned;
-	BOOLEAN Abandoned;
-} MUTANT_BASIC_INFORMATION, *PMUTANT_BASIC_INFORMATION;
-
-// SystemTimeOfDayInformation (3)
-typedef struct _SYSTEM_TIMEOFDAY_INFORMATION {
-	LARGE_INTEGER	BootTime;
-	LARGE_INTEGER	CurrentTime;
-	LARGE_INTEGER	TimeZoneBias;
-	ULONG		TimeZoneId;
-	ULONG		Reserved;
-} SYSTEM_TIMEOFDAY_INFORMATION, *PSYSTEM_TIMEOFDAY_INFORMATION;
-
-// SystemPathInformation (4)
-// IT DOES NOT WORK
-typedef struct _SYSTEM_PATH_INFORMATION {
-	PVOID	Dummy;
-} SYSTEM_PATH_INFORMATION, * PSYSTEM_PATH_INFORMATION;
-
-// SystemCallCountInformation (6)
-typedef struct _SYSTEM_SDT_INFORMATION {
-	ULONG	BufferLength;
-	ULONG	NumberOfSystemServiceTables;
-	ULONG	NumberOfServices [1];
-	ULONG	ServiceCounters [1];
-} SYSTEM_SDT_INFORMATION, *PSYSTEM_SDT_INFORMATION;
-
-// SystemDeviceInformation (7)
-typedef struct _SYSTEM_DEVICE_INFORMATION {
-	ULONG	NumberOfDisks;
-	ULONG	NumberOfFloppies;
-	ULONG	NumberOfCdRoms;
-	ULONG	NumberOfTapes;
-	ULONG	NumberOfSerialPorts;
-	ULONG	NumberOfParallelPorts;
-} SYSTEM_DEVICE_INFORMATION, *PSYSTEM_DEVICE_INFORMATION;
-
-// SystemProcessorPerformanceInformation (8)
-// (one per processor in the system)
-typedef struct _SYSTEM_PROCESSORTIME_INFO {
-	LARGE_INTEGER	TotalProcessorRunTime;
-	LARGE_INTEGER	TotalProcessorTime;
-	LARGE_INTEGER	TotalProcessorUserTime;
-	LARGE_INTEGER	TotalDPCTime;
-	LARGE_INTEGER	TotalInterruptTime;
-	ULONG		TotalInterrupts;
-	ULONG		Unused;
-} SYSTEM_PROCESSORTIME_INFO, *PSYSTEM_PROCESSORTIME_INFO;
-
-// SystemFlagsInformation (9)
-typedef struct _SYSTEM_FLAGS_INFORMATION {
-	ULONG	Flags;
-} SYSTEM_FLAGS_INFORMATION, * PSYSTEM_FLAGS_INFORMATION;
-
-#define FLG_STOP_ON_EXCEPTION		0x00000001
-#define FLG_SHOW_LDR_SNAPS		0x00000002
-#define FLG_DEBUG_INITIAL_COMMAND	0x00000004
-#define FLG_STOP_ON_HANG_GUI		0x00000008
-#define FLG_HEAP_ENABLE_TAIL_CHECK	0x00000010
-#define FLG_HEAP_ENABLE_FREE_CHECK	0x00000020
-#define FLG_HEAP_VALIDATE_PARAMETERS	0x00000040
-#define FLG_HEAP_VALIDATE_ALL		0x00000080
-#define FLG_POOL_ENABLE_TAIL_CHECK	0x00000100
-#define FLG_POOL_ENABLE_FREE_CHECK	0x00000200
-#define FLG_POOL_ENABLE_TAGGING		0x00000400
-#define FLG_HEAP_ENABLE_TAGGING		0x00000800
-#define FLG_USER_STACK_TRACE_DB		0x00001000
-#define FLG_KERNEL_STACK_TRACE_DB	0x00002000
-#define FLG_MAINTAIN_OBJECT_TYPELIST	0x00004000
-#define FLG_HEAP_ENABLE_TAG_BY_DLL	0x00008000
-#define FLG_IGNORE_DEBUG_PRIV		0x00010000
-#define FLG_ENABLE_CSRDEBUG		0x00020000
-#define FLG_ENABLE_KDEBUG_SYMBOL_LOAD	0x00040000
-#define FLG_DISABLE_PAGE_KERNEL_STACKS	0x00080000
-#define FLG_HEAP_ENABLE_CALL_TRACING	0x00100000
-#define FLG_HEAP_DISABLE_COALESCING	0x00200000
-#define FLG_ENABLE_CLOSE_EXCEPTION	0x00400000
-#define FLG_ENABLE_EXCEPTION_LOGGING	0x00800000
-#define FLG_UNKNOWN_01000000		0x01000000
-#define FLG_UNKNOWN_02000000		0x02000000
-#define FLG_UNKNOWN_04000000		0x04000000
-#define FLG_ENABLE_DBGPRINT_BUFFERING	0x08000000
-#define FLG_UNKNOWN_10000000		0x10000000
-#define FLG_UNKNOWN_20000000		0x20000000
-#define FLG_UNKNOWN_40000000		0x40000000
-#define FLG_UNKNOWN_80000000		0x80000000
-
-// SystemCallTimeInformation (10)
-// UNKNOWN
-
-// SystemLocksInformation (12)
-typedef struct _SYSTEM_RESOURCE_LOCK_ENTRY {
-	ULONG	ResourceAddress;
-	ULONG	Always1;
-	ULONG	Unknown;
-	ULONG	ActiveCount;
-	ULONG	ContentionCount;
-	ULONG	Unused[2];
-	ULONG	NumberOfSharedWaiters;
-	ULONG	NumberOfExclusiveWaiters;
-} SYSTEM_RESOURCE_LOCK_ENTRY, *PSYSTEM_RESOURCE_LOCK_ENTRY;
-
-typedef struct _SYSTEM_RESOURCE_LOCK_INFO {
-	ULONG				Count;
-	SYSTEM_RESOURCE_LOCK_ENTRY	Lock [1];
-} SYSTEM_RESOURCE_LOCK_INFO, *PSYSTEM_RESOURCE_LOCK_INFO;
-
-// SystemInformation13 (13)
-// UNKNOWN
-
-// SystemInformation14 (14)
-// UNKNOWN
-
-// SystemInformation15 (15)
-// UNKNOWN
-
-// SystemInstructionEmulationInfo (19)
-typedef struct _SYSTEM_VDM_INFORMATION {
-	ULONG VdmSegmentNotPresentCount;
-	ULONG VdmINSWCount;
-	ULONG VdmESPREFIXCount;
-	ULONG VdmCSPREFIXCount;
-	ULONG VdmSSPREFIXCount;
-	ULONG VdmDSPREFIXCount;
-	ULONG VdmFSPREFIXCount;
-	ULONG VdmGSPREFIXCount;
-	ULONG VdmOPER32PREFIXCount;
-	ULONG VdmADDR32PREFIXCount;
-	ULONG VdmINSBCount;
-	ULONG VdmINSWV86Count;
-	ULONG VdmOUTSBCount;
-	ULONG VdmOUTSWCount;
-	ULONG VdmPUSHFCount;
-	ULONG VdmPOPFCount;
-	ULONG VdmINTNNCount;
-	ULONG VdmINTOCount;
-	ULONG VdmIRETCount;
-	ULONG VdmINBIMMCount;
-	ULONG VdmINWIMMCount;
-	ULONG VdmOUTBIMMCount;
-	ULONG VdmOUTWIMMCount;
-	ULONG VdmINBCount;
-	ULONG VdmINWCount;
-	ULONG VdmOUTBCount;
-	ULONG VdmOUTWCount;
-	ULONG VdmLOCKPREFIXCount;
-	ULONG VdmREPNEPREFIXCount;
-	ULONG VdmREPPREFIXCount;
-	ULONG VdmHLTCount;
-	ULONG VdmCLICount;
-	ULONG VdmSTICount;
-	ULONG VdmBopCount;
-} SYSTEM_VDM_INFORMATION, *PSYSTEM_VDM_INFORMATION;
-
-// SystemInformation20 (20)
-// UNKNOWN
-
-// SystemPoolTagInformation (22)
-// found by Klaus P. Gerlicher
-// (implemented only in checked builds)
-typedef struct _POOL_TAG_STATS {
-	ULONG AllocationCount;
-	ULONG FreeCount;
-	ULONG SizeBytes;
-} POOL_TAG_STATS;
-
-typedef struct _SYSTEM_POOL_TAG_ENTRY {
-	ULONG		Tag;
-	POOL_TAG_STATS	Paged;
-	POOL_TAG_STATS	NonPaged;
-} SYSTEM_POOL_TAG_ENTRY, * PSYSTEM_POOL_TAG_ENTRY;
-
-typedef struct _SYSTEM_POOL_TAG_INFO {
-	ULONG			Count;
-	SYSTEM_POOL_TAG_ENTRY	PoolEntry [1];
-} SYSTEM_POOL_TAG_INFO, *PSYSTEM_POOL_TAG_INFO;
-
-// SystemProcessorScheduleInfo (23)
-typedef struct _SYSTEM_PROCESSOR_SCHEDULE_INFO {
-	ULONG nContextSwitches;
-	ULONG nDPCQueued;
-	ULONG nDPCRate;
-	ULONG TimerResolution;
-	ULONG nDPCBypasses;
-	ULONG nAPCBypasses;
-} SYSTEM_PROCESSOR_SCHEDULE_INFO, *PSYSTEM_PROCESSOR_SCHEDULE_INFO;
-
-// SystemInformation25 (25)
-// UNKNOWN
-
-// SystemProcessorFaultCountInfo (33)
-typedef struct _SYSTEM_PROCESSOR_FAULT_INFO {
-	ULONG	nAlignmentFixup;
-	ULONG	nExceptionDispatches;
-	ULONG	nFloatingEmulation;
-	ULONG	Unknown;
-} SYSTEM_PROCESSOR_FAULT_INFO, *PSYSTEM_PROCESSOR_FAULT_INFO;
-
-// SystemCrashDumpStateInfo (34)
-//
-
-// SystemDebuggerInformation (35)
-typedef struct _SYSTEM_DEBUGGER_INFO {
-	BOOLEAN	KdDebuggerEnabled;
-	BOOLEAN	KdDebuggerPresent;
-} SYSTEM_DEBUGGER_INFO, *PSYSTEM_DEBUGGER_INFO;
-
-// SystemInformation36 (36)
-// UNKNOWN
-
-// SystemQuotaInformation (37)
-typedef struct _SYSTEM_QUOTA_INFORMATION {
-	ULONG	CmpGlobalQuota;
-	ULONG	CmpGlobalQuotaUsed;
-	ULONG	MmSizeofPagedPoolInBytes;
-} SYSTEM_QUOTA_INFORMATION, *PSYSTEM_QUOTA_INFORMATION;
-
-
-// (49)
-// UNKNOWN
-
-// SystemVerifierInformation (51)
-// UNKNOWN
-
-// SystemAddVerifier (52)
-// UNKNOWN
-
-// wait type
-
-#define WaitAll					0
-#define WaitAny					1
-
-// number of wait objects
-
-#define THREAD_WAIT_OBJECTS			3
-//#define MAXIMUM_WAIT_OBJECTS			64
-
-// object type access rights
-
-#define OBJECT_TYPE_CREATE		0x0001
-#define OBJECT_TYPE_ALL_ACCESS (STANDARD_RIGHTS_REQUIRED | 0x1)
-
-#define DIRECTORY_ALL_ACCESS (STANDARD_RIGHTS_REQUIRED | 0xF)
-
-// symbolic link access rights
-
-#define SYMBOLIC_LINK_QUERY			0x0001
-#define SYMBOLIC_LINK_ALL_ACCESS (STANDARD_RIGHTS_REQUIRED | 0x1)
-
-
-// File System Control commands ( related to defragging )
-
-#define	FSCTL_READ_MFT_RECORD			0x90068 // NTFS only
-
-typedef struct _BITMAP_DESCRIPTOR {
-	ULONGLONG	StartLcn;
-	ULONGLONG	ClustersToEndOfVol;
-	BYTE		Map[0]; // variable size
-} BITMAP_DESCRIPTOR, *PBITMAP_DESCRIPTOR;
-
-typedef struct _TIMER_BASIC_INFORMATION {
-	LARGE_INTEGER TimeRemaining;
-	BOOLEAN SignalState;
-} TIMER_BASIC_INFORMATION, *PTIMER_BASIC_INFORMATION;
-
-typedef enum _TIMER_INFORMATION_CLASS {
-	TimerBasicInformation
-} TIMER_INFORMATION_CLASS;
-
-// semaphore information
-typedef enum _SEMAPHORE_INFORMATION_CLASS {
-	SemaphoreBasicInformation		= 0
-} SEMAPHORE_INFORMATION_CLASS;
-
-typedef struct _SEMAPHORE_BASIC_INFORMATION {
-	LONG CurrentCount;
-	LONG MaximumCount;
-} SEMAPHORE_BASIC_INFORMATION, *PSEMAPHORE_BASIC_INFORMATION;
-
-// event information
-typedef enum _EVENT_INFORMATION_CLASS {
-	EventBasicInformation			= 0
-} EVENT_INFORMATION_CLASS;
-
-typedef struct _EVENT_BASIC_INFORMATION {
-	EVENT_TYPE EventType;
-	LONG EventState;
-} EVENT_BASIC_INFORMATION, *PEVENT_BASIC_INFORMATION;
-
-typedef enum _IO_COMPLETION_INFORMATION_CLASS {
-	IoCompletionBasicInformation
-} IO_COMPLETION_INFORMATION_CLASS;
-
-// 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;
[truncated at 1000 lines; 1076 more skipped]
CVSspam 0.2.8