reactos/include/ndk
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
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]