diff --git a/reactos/include/ndk/cmfuncs.h b/reactos/include/ndk/cmfuncs.h index 842a54e338d..4e5c8d69403 100644 --- a/reactos/include/ndk/cmfuncs.h +++ b/reactos/include/ndk/cmfuncs.h @@ -1,484 +1,484 @@ -/*++ NDK Version: 0095 - -Copyright (c) Alex Ionescu. All rights reserved. - -Header Name: - - cmfuncs.h - -Abstract: - - Function definitions for the Configuration Manager. - -Author: - - Alex Ionescu (alex.ionescu@reactos.com) 06-Oct-2004 - ---*/ - -#ifndef _CMFUNCS_H -#define _CMFUNCS_H - -// -// Dependencies -// -#include - -// -// Native calls -// -NTSYSCALLAPI -NTSTATUS -NTAPI -NtCreateKey( - OUT PHANDLE KeyHandle, - IN ACCESS_MASK DesiredAccess, - IN POBJECT_ATTRIBUTES ObjectAttributes, - IN ULONG TitleIndex, - IN PUNICODE_STRING Class OPTIONAL, - IN ULONG CreateOptions, - IN PULONG Disposition OPTIONAL -); - -NTSYSCALLAPI -NTSTATUS -NTAPI -NtDeleteKey( - IN HANDLE KeyHandle -); - -NTSYSCALLAPI -NTSTATUS -NTAPI -NtDeleteValueKey( - IN HANDLE KeyHandle, - IN PUNICODE_STRING ValueName -); - -NTSYSCALLAPI -NTSTATUS -NTAPI -NtEnumerateKey( - IN HANDLE KeyHandle, - IN ULONG Index, - IN KEY_INFORMATION_CLASS KeyInformationClass, - OUT PVOID KeyInformation, - IN ULONG Length, - OUT PULONG ResultLength -); - -NTSYSCALLAPI -NTSTATUS -NTAPI -NtEnumerateValueKey( - IN HANDLE KeyHandle, - IN ULONG Index, - IN KEY_VALUE_INFORMATION_CLASS KeyValueInformationClass, - OUT PVOID KeyValueInformation, - IN ULONG Length, - OUT PULONG ResultLength -); - -NTSYSCALLAPI -NTSTATUS -NTAPI -NtFlushKey( - IN HANDLE KeyHandle -); - -NTSYSCALLAPI -NTSTATUS -NTAPI -NtGetPlugPlayEvent( - IN ULONG Reserved1, - IN ULONG Reserved2, - OUT PPLUGPLAY_EVENT_BLOCK Buffer, - IN ULONG BufferSize -); - -NTSYSCALLAPI -NTSTATUS -NTAPI -NtInitializeRegistry( - BOOLEAN SetUpBoot -); - -NTSYSCALLAPI -NTSTATUS -NTAPI -NtLoadKey( - IN POBJECT_ATTRIBUTES KeyObjectAttributes, - IN POBJECT_ATTRIBUTES FileObjectAttributes -); - -NTSYSCALLAPI -NTSTATUS -NTAPI -NtLoadKey2( - IN POBJECT_ATTRIBUTES KeyObjectAttributes, - IN POBJECT_ATTRIBUTES FileObjectAttributes, - IN ULONG Flags -); - -NTSYSCALLAPI -NTSTATUS -NTAPI -NtNotifyChangeKey( - IN HANDLE KeyHandle, - IN HANDLE Event, - IN PIO_APC_ROUTINE ApcRoutine OPTIONAL, - IN PVOID ApcContext OPTIONAL, - OUT PIO_STATUS_BLOCK IoStatusBlock, - IN ULONG CompletionFilter, - IN BOOLEAN Asynchroneous, - OUT PVOID ChangeBuffer, - IN ULONG Length, - IN BOOLEAN WatchSubtree -); - -NTSYSCALLAPI -NTSTATUS -NTAPI -NtOpenKey( - OUT PHANDLE KeyHandle, - IN ACCESS_MASK DesiredAccess, - IN POBJECT_ATTRIBUTES ObjectAttributes -); - -NTSYSCALLAPI -NTSTATUS -NTAPI -NtPlugPlayControl( - IN PLUGPLAY_CONTROL_CLASS PlugPlayControlClass, - IN OUT PVOID Buffer, - IN ULONG BufferSize -); - -NTSYSCALLAPI -NTSTATUS -NTAPI -NtQueryKey( - IN HANDLE KeyHandle, - IN KEY_INFORMATION_CLASS KeyInformationClass, - OUT PVOID KeyInformation, - IN ULONG Length, - OUT PULONG ResultLength -); - -NTSYSCALLAPI -NTSTATUS -NTAPI -NtQueryMultipleValueKey( - IN HANDLE KeyHandle, - IN OUT PKEY_VALUE_ENTRY ValueList, - IN ULONG NumberOfValues, - OUT PVOID Buffer, - IN OUT PULONG Length, - OUT PULONG ReturnLength -); - -NTSYSCALLAPI -NTSTATUS -NTAPI -NtQueryValueKey( - IN HANDLE KeyHandle, - IN PUNICODE_STRING ValueName, - IN KEY_VALUE_INFORMATION_CLASS KeyValueInformationClass, - OUT PVOID KeyValueInformation, - IN ULONG Length, - OUT PULONG ResultLength -); - -NTSYSCALLAPI -NTSTATUS -NTAPI -NtReplaceKey( - IN POBJECT_ATTRIBUTES ObjectAttributes, - IN HANDLE Key, - IN POBJECT_ATTRIBUTES ReplacedObjectAttributes -); - -NTSYSCALLAPI -NTSTATUS -NTAPI -NtRestoreKey( - IN HANDLE KeyHandle, - IN HANDLE FileHandle, - IN ULONG RestoreFlags -); - -NTSYSCALLAPI -NTSTATUS -NTAPI -NtSaveKey( - IN HANDLE KeyHandle, - IN HANDLE FileHandle -); - -NTSYSCALLAPI -NTSTATUS -NTAPI -NtSaveKeyEx( - IN HANDLE KeyHandle, - IN HANDLE FileHandle, - IN ULONG Flags -); - -NTSYSCALLAPI -NTSTATUS -NTAPI -NtSetInformationKey( - IN HANDLE KeyHandle, - IN KEY_SET_INFORMATION_CLASS KeyInformationClass, - IN PVOID KeyInformation, - IN ULONG KeyInformationLength -); - -NTSYSCALLAPI -NTSTATUS -NTAPI -NtSetValueKey( - IN HANDLE KeyHandle, - IN PUNICODE_STRING ValueName, - IN ULONG TitleIndex OPTIONAL, - IN ULONG Type, - IN PVOID Data, - IN ULONG DataSize -); - -NTSYSCALLAPI -NTSTATUS -NTAPI -NtUnloadKey( - IN POBJECT_ATTRIBUTES KeyObjectAttributes -); - -#ifdef NTOS_MODE_USER -NTSYSAPI -NTSTATUS -NTAPI -ZwCreateKey( - OUT PHANDLE KeyHandle, - IN ACCESS_MASK DesiredAccess, - IN POBJECT_ATTRIBUTES ObjectAttributes, - IN ULONG TitleIndex, - IN PUNICODE_STRING Class OPTIONAL, - IN ULONG CreateOptions, - IN PULONG Disposition OPTIONAL -); - -NTSYSAPI -NTSTATUS -NTAPI -ZwDeleteKey( - IN HANDLE KeyHandle -); - -NTSYSAPI -NTSTATUS -NTAPI -ZwDeleteValueKey( - IN HANDLE KeyHandle, - IN PUNICODE_STRING ValueName -); - -NTSYSAPI -NTSTATUS -NTAPI -ZwEnumerateKey( - IN HANDLE KeyHandle, - IN ULONG Index, - IN KEY_INFORMATION_CLASS KeyInformationClass, - OUT PVOID KeyInformation, - IN ULONG Length, - OUT PULONG ResultLength -); - -NTSYSAPI -NTSTATUS -NTAPI -ZwEnumerateValueKey( - IN HANDLE KeyHandle, - IN ULONG Index, - IN KEY_VALUE_INFORMATION_CLASS KeyValueInformationClass, - OUT PVOID KeyValueInformation, - IN ULONG Length, - OUT PULONG ResultLength -); - -NTSYSAPI -NTSTATUS -NTAPI -ZwFlushKey( - IN HANDLE KeyHandle -); - -NTSYSAPI -NTSTATUS -NTAPI -ZwGetPlugPlayEvent( - IN ULONG Reserved1, - IN ULONG Reserved2, - OUT PPLUGPLAY_EVENT_BLOCK Buffer, - IN ULONG BufferSize -); - -NTSYSAPI -NTSTATUS -NTAPI -ZwInitializeRegistry( - BOOLEAN SetUpBoot -); - -NTSYSAPI -NTSTATUS -NTAPI -ZwLoadKey( - IN POBJECT_ATTRIBUTES KeyObjectAttributes, - IN POBJECT_ATTRIBUTES FileObjectAttributes -); - -NTSYSAPI -NTSTATUS -NTAPI -ZwLoadKey2( - IN POBJECT_ATTRIBUTES KeyObjectAttributes, - IN POBJECT_ATTRIBUTES FileObjectAttributes, - IN ULONG Flags -); - -NTSYSAPI -NTSTATUS -NTAPI -ZwNotifyChangeKey( - IN HANDLE KeyHandle, - IN HANDLE Event, - IN PIO_APC_ROUTINE ApcRoutine OPTIONAL, - IN PVOID ApcContext OPTIONAL, - OUT PIO_STATUS_BLOCK IoStatusBlock, - IN ULONG CompletionFilter, - IN BOOLEAN Asynchroneous, - OUT PVOID ChangeBuffer, - IN ULONG Length, - IN BOOLEAN WatchSubtree -); - -NTSYSAPI -NTSTATUS -NTAPI -ZwOpenKey( - OUT PHANDLE KeyHandle, - IN ACCESS_MASK DesiredAccess, - IN POBJECT_ATTRIBUTES ObjectAttributes -); - -NTSYSAPI -NTSTATUS -NTAPI -ZwPlugPlayControl( - IN PLUGPLAY_CONTROL_CLASS PlugPlayControlClass, - IN OUT PVOID Buffer, - IN ULONG BufferSize -); - -NTSYSAPI -NTSTATUS -NTAPI -ZwQueryKey( - IN HANDLE KeyHandle, - IN KEY_INFORMATION_CLASS KeyInformationClass, - OUT PVOID KeyInformation, - IN ULONG Length, - OUT PULONG ResultLength -); - -NTSYSAPI -NTSTATUS -NTAPI -ZwQueryMultipleValueKey( - IN HANDLE KeyHandle, - IN OUT PKEY_VALUE_ENTRY ValueList, - IN ULONG NumberOfValues, - OUT PVOID Buffer, - IN OUT PULONG Length, - OUT PULONG ReturnLength -); - -NTSYSAPI -NTSTATUS -NTAPI -ZwQueryValueKey( - IN HANDLE KeyHandle, - IN PUNICODE_STRING ValueName, - IN KEY_VALUE_INFORMATION_CLASS KeyValueInformationClass, - OUT PVOID KeyValueInformation, - IN ULONG Length, - OUT PULONG ResultLength -); - -NTSYSAPI -NTSTATUS -NTAPI -ZwReplaceKey( - IN POBJECT_ATTRIBUTES ObjectAttributes, - IN HANDLE Key, - IN POBJECT_ATTRIBUTES ReplacedObjectAttributes -); - -NTSYSAPI -NTSTATUS -NTAPI -ZwRestoreKey( - IN HANDLE KeyHandle, - IN HANDLE FileHandle, - IN ULONG RestoreFlags -); - -NTSYSAPI -NTSTATUS -NTAPI -ZwSaveKey( - IN HANDLE KeyHandle, - IN HANDLE FileHandle -); - -NTSYSAPI -NTSTATUS -NTAPI -ZwSaveKeyEx( - IN HANDLE KeyHandle, - IN HANDLE FileHandle, - IN ULONG Flags -); - -NTSYSAPI -NTSTATUS -NTAPI -ZwSetInformationKey( - IN HANDLE KeyHandle, - IN KEY_SET_INFORMATION_CLASS KeyInformationClass, - IN PVOID KeyInformation, - IN ULONG KeyInformationLength -); - -NTSYSAPI -NTSTATUS -NTAPI -ZwSetValueKey( - IN HANDLE KeyHandle, - IN PUNICODE_STRING ValueName, - IN ULONG TitleIndex OPTIONAL, - IN ULONG Type, - IN PVOID Data, - IN ULONG DataSize -); -#endif - -NTSYSAPI -NTSTATUS -NTAPI -ZwUnloadKey( - IN POBJECT_ATTRIBUTES KeyObjectAttributes -); - -#endif +/*++ NDK Version: 0095 + +Copyright (c) Alex Ionescu. All rights reserved. + +Header Name: + + cmfuncs.h + +Abstract: + + Function definitions for the Configuration Manager. + +Author: + + Alex Ionescu (alex.ionescu@reactos.com) 06-Oct-2004 + +--*/ + +#ifndef _CMFUNCS_H +#define _CMFUNCS_H + +// +// Dependencies +// +#include + +// +// Native calls +// +NTSYSCALLAPI +NTSTATUS +NTAPI +NtCreateKey( + OUT PHANDLE KeyHandle, + IN ACCESS_MASK DesiredAccess, + IN POBJECT_ATTRIBUTES ObjectAttributes, + IN ULONG TitleIndex, + IN PUNICODE_STRING Class OPTIONAL, + IN ULONG CreateOptions, + IN PULONG Disposition OPTIONAL +); + +NTSYSCALLAPI +NTSTATUS +NTAPI +NtDeleteKey( + IN HANDLE KeyHandle +); + +NTSYSCALLAPI +NTSTATUS +NTAPI +NtDeleteValueKey( + IN HANDLE KeyHandle, + IN PUNICODE_STRING ValueName +); + +NTSYSCALLAPI +NTSTATUS +NTAPI +NtEnumerateKey( + IN HANDLE KeyHandle, + IN ULONG Index, + IN KEY_INFORMATION_CLASS KeyInformationClass, + OUT PVOID KeyInformation, + IN ULONG Length, + OUT PULONG ResultLength +); + +NTSYSCALLAPI +NTSTATUS +NTAPI +NtEnumerateValueKey( + IN HANDLE KeyHandle, + IN ULONG Index, + IN KEY_VALUE_INFORMATION_CLASS KeyValueInformationClass, + OUT PVOID KeyValueInformation, + IN ULONG Length, + OUT PULONG ResultLength +); + +NTSYSCALLAPI +NTSTATUS +NTAPI +NtFlushKey( + IN HANDLE KeyHandle +); + +NTSYSCALLAPI +NTSTATUS +NTAPI +NtGetPlugPlayEvent( + IN ULONG Reserved1, + IN ULONG Reserved2, + OUT PPLUGPLAY_EVENT_BLOCK Buffer, + IN ULONG BufferSize +); + +NTSYSCALLAPI +NTSTATUS +NTAPI +NtInitializeRegistry( + BOOLEAN SetUpBoot +); + +NTSYSCALLAPI +NTSTATUS +NTAPI +NtLoadKey( + IN POBJECT_ATTRIBUTES KeyObjectAttributes, + IN POBJECT_ATTRIBUTES FileObjectAttributes +); + +NTSYSCALLAPI +NTSTATUS +NTAPI +NtLoadKey2( + IN POBJECT_ATTRIBUTES KeyObjectAttributes, + IN POBJECT_ATTRIBUTES FileObjectAttributes, + IN ULONG Flags +); + +NTSYSCALLAPI +NTSTATUS +NTAPI +NtNotifyChangeKey( + IN HANDLE KeyHandle, + IN HANDLE Event, + IN PIO_APC_ROUTINE ApcRoutine OPTIONAL, + IN PVOID ApcContext OPTIONAL, + OUT PIO_STATUS_BLOCK IoStatusBlock, + IN ULONG CompletionFilter, + IN BOOLEAN Asynchroneous, + OUT PVOID ChangeBuffer, + IN ULONG Length, + IN BOOLEAN WatchSubtree +); + +NTSYSCALLAPI +NTSTATUS +NTAPI +NtOpenKey( + OUT PHANDLE KeyHandle, + IN ACCESS_MASK DesiredAccess, + IN POBJECT_ATTRIBUTES ObjectAttributes +); + +NTSYSCALLAPI +NTSTATUS +NTAPI +NtPlugPlayControl( + IN PLUGPLAY_CONTROL_CLASS PlugPlayControlClass, + IN OUT PVOID Buffer, + IN ULONG BufferSize +); + +NTSYSCALLAPI +NTSTATUS +NTAPI +NtQueryKey( + IN HANDLE KeyHandle, + IN KEY_INFORMATION_CLASS KeyInformationClass, + OUT PVOID KeyInformation, + IN ULONG Length, + OUT PULONG ResultLength +); + +NTSYSCALLAPI +NTSTATUS +NTAPI +NtQueryMultipleValueKey( + IN HANDLE KeyHandle, + IN OUT PKEY_VALUE_ENTRY ValueList, + IN ULONG NumberOfValues, + OUT PVOID Buffer, + IN OUT PULONG Length, + OUT PULONG ReturnLength +); + +NTSYSCALLAPI +NTSTATUS +NTAPI +NtQueryValueKey( + IN HANDLE KeyHandle, + IN PUNICODE_STRING ValueName, + IN KEY_VALUE_INFORMATION_CLASS KeyValueInformationClass, + OUT PVOID KeyValueInformation, + IN ULONG Length, + OUT PULONG ResultLength +); + +NTSYSCALLAPI +NTSTATUS +NTAPI +NtReplaceKey( + IN POBJECT_ATTRIBUTES ObjectAttributes, + IN HANDLE Key, + IN POBJECT_ATTRIBUTES ReplacedObjectAttributes +); + +NTSYSCALLAPI +NTSTATUS +NTAPI +NtRestoreKey( + IN HANDLE KeyHandle, + IN HANDLE FileHandle, + IN ULONG RestoreFlags +); + +NTSYSCALLAPI +NTSTATUS +NTAPI +NtSaveKey( + IN HANDLE KeyHandle, + IN HANDLE FileHandle +); + +NTSYSCALLAPI +NTSTATUS +NTAPI +NtSaveKeyEx( + IN HANDLE KeyHandle, + IN HANDLE FileHandle, + IN ULONG Flags +); + +NTSYSCALLAPI +NTSTATUS +NTAPI +NtSetInformationKey( + IN HANDLE KeyHandle, + IN KEY_SET_INFORMATION_CLASS KeyInformationClass, + IN PVOID KeyInformation, + IN ULONG KeyInformationLength +); + +NTSYSCALLAPI +NTSTATUS +NTAPI +NtSetValueKey( + IN HANDLE KeyHandle, + IN PUNICODE_STRING ValueName, + IN ULONG TitleIndex OPTIONAL, + IN ULONG Type, + IN PVOID Data, + IN ULONG DataSize +); + +NTSYSCALLAPI +NTSTATUS +NTAPI +NtUnloadKey( + IN POBJECT_ATTRIBUTES KeyObjectAttributes +); + +#ifdef NTOS_MODE_USER +NTSYSAPI +NTSTATUS +NTAPI +ZwCreateKey( + OUT PHANDLE KeyHandle, + IN ACCESS_MASK DesiredAccess, + IN POBJECT_ATTRIBUTES ObjectAttributes, + IN ULONG TitleIndex, + IN PUNICODE_STRING Class OPTIONAL, + IN ULONG CreateOptions, + IN PULONG Disposition OPTIONAL +); + +NTSYSAPI +NTSTATUS +NTAPI +ZwDeleteKey( + IN HANDLE KeyHandle +); + +NTSYSAPI +NTSTATUS +NTAPI +ZwDeleteValueKey( + IN HANDLE KeyHandle, + IN PUNICODE_STRING ValueName +); + +NTSYSAPI +NTSTATUS +NTAPI +ZwEnumerateKey( + IN HANDLE KeyHandle, + IN ULONG Index, + IN KEY_INFORMATION_CLASS KeyInformationClass, + OUT PVOID KeyInformation, + IN ULONG Length, + OUT PULONG ResultLength +); + +NTSYSAPI +NTSTATUS +NTAPI +ZwEnumerateValueKey( + IN HANDLE KeyHandle, + IN ULONG Index, + IN KEY_VALUE_INFORMATION_CLASS KeyValueInformationClass, + OUT PVOID KeyValueInformation, + IN ULONG Length, + OUT PULONG ResultLength +); + +NTSYSAPI +NTSTATUS +NTAPI +ZwFlushKey( + IN HANDLE KeyHandle +); + +NTSYSAPI +NTSTATUS +NTAPI +ZwGetPlugPlayEvent( + IN ULONG Reserved1, + IN ULONG Reserved2, + OUT PPLUGPLAY_EVENT_BLOCK Buffer, + IN ULONG BufferSize +); + +NTSYSAPI +NTSTATUS +NTAPI +ZwInitializeRegistry( + BOOLEAN SetUpBoot +); + +NTSYSAPI +NTSTATUS +NTAPI +ZwLoadKey( + IN POBJECT_ATTRIBUTES KeyObjectAttributes, + IN POBJECT_ATTRIBUTES FileObjectAttributes +); + +NTSYSAPI +NTSTATUS +NTAPI +ZwLoadKey2( + IN POBJECT_ATTRIBUTES KeyObjectAttributes, + IN POBJECT_ATTRIBUTES FileObjectAttributes, + IN ULONG Flags +); + +NTSYSAPI +NTSTATUS +NTAPI +ZwNotifyChangeKey( + IN HANDLE KeyHandle, + IN HANDLE Event, + IN PIO_APC_ROUTINE ApcRoutine OPTIONAL, + IN PVOID ApcContext OPTIONAL, + OUT PIO_STATUS_BLOCK IoStatusBlock, + IN ULONG CompletionFilter, + IN BOOLEAN Asynchroneous, + OUT PVOID ChangeBuffer, + IN ULONG Length, + IN BOOLEAN WatchSubtree +); + +NTSYSAPI +NTSTATUS +NTAPI +ZwOpenKey( + OUT PHANDLE KeyHandle, + IN ACCESS_MASK DesiredAccess, + IN POBJECT_ATTRIBUTES ObjectAttributes +); + +NTSYSAPI +NTSTATUS +NTAPI +ZwPlugPlayControl( + IN PLUGPLAY_CONTROL_CLASS PlugPlayControlClass, + IN OUT PVOID Buffer, + IN ULONG BufferSize +); + +NTSYSAPI +NTSTATUS +NTAPI +ZwQueryKey( + IN HANDLE KeyHandle, + IN KEY_INFORMATION_CLASS KeyInformationClass, + OUT PVOID KeyInformation, + IN ULONG Length, + OUT PULONG ResultLength +); + +NTSYSAPI +NTSTATUS +NTAPI +ZwQueryMultipleValueKey( + IN HANDLE KeyHandle, + IN OUT PKEY_VALUE_ENTRY ValueList, + IN ULONG NumberOfValues, + OUT PVOID Buffer, + IN OUT PULONG Length, + OUT PULONG ReturnLength +); + +NTSYSAPI +NTSTATUS +NTAPI +ZwQueryValueKey( + IN HANDLE KeyHandle, + IN PUNICODE_STRING ValueName, + IN KEY_VALUE_INFORMATION_CLASS KeyValueInformationClass, + OUT PVOID KeyValueInformation, + IN ULONG Length, + OUT PULONG ResultLength +); + +NTSYSAPI +NTSTATUS +NTAPI +ZwReplaceKey( + IN POBJECT_ATTRIBUTES ObjectAttributes, + IN HANDLE Key, + IN POBJECT_ATTRIBUTES ReplacedObjectAttributes +); + +NTSYSAPI +NTSTATUS +NTAPI +ZwRestoreKey( + IN HANDLE KeyHandle, + IN HANDLE FileHandle, + IN ULONG RestoreFlags +); + +NTSYSAPI +NTSTATUS +NTAPI +ZwSaveKey( + IN HANDLE KeyHandle, + IN HANDLE FileHandle +); + +NTSYSAPI +NTSTATUS +NTAPI +ZwSaveKeyEx( + IN HANDLE KeyHandle, + IN HANDLE FileHandle, + IN ULONG Flags +); + +NTSYSAPI +NTSTATUS +NTAPI +ZwSetInformationKey( + IN HANDLE KeyHandle, + IN KEY_SET_INFORMATION_CLASS KeyInformationClass, + IN PVOID KeyInformation, + IN ULONG KeyInformationLength +); + +NTSYSAPI +NTSTATUS +NTAPI +ZwSetValueKey( + IN HANDLE KeyHandle, + IN PUNICODE_STRING ValueName, + IN ULONG TitleIndex OPTIONAL, + IN ULONG Type, + IN PVOID Data, + IN ULONG DataSize +); +#endif + +NTSYSAPI +NTSTATUS +NTAPI +ZwUnloadKey( + IN POBJECT_ATTRIBUTES KeyObjectAttributes +); + +#endif diff --git a/reactos/include/ndk/cmtypes.h b/reactos/include/ndk/cmtypes.h index 17b3aca621b..b83d4f57e2b 100644 --- a/reactos/include/ndk/cmtypes.h +++ b/reactos/include/ndk/cmtypes.h @@ -1,501 +1,501 @@ -/*++ NDK Version: 0095 - -Copyright (c) Alex Ionescu. All rights reserved. - -Header Name: - - cmtypes.h - -Abstract: - - Type definitions for the Configuration Manager. - -Author: - - Alex Ionescu (alex.ionescu@reactos.com) 06-Oct-2004 - ---*/ - -#ifndef _CMTYPES_H -#define _CMTYPES_H - -// -// Dependencies -// -#include -#include -#include - -#define MAX_BUS_NAME 24 - -// -// PLUGPLAY_CONTROL_RELATED_DEVICE_DATA.Relations -// -#define PNP_GET_PARENT_DEVICE 1 -#define PNP_GET_CHILD_DEVICE 2 -#define PNP_GET_SIBLING_DEVICE 3 - -// -// PLUGPLAY_CONTROL_STATUS_DATA Operations -// -#define PNP_GET_DEVICE_STATUS 0 -#define PNP_SET_DEVICE_STATUS 1 -#define PNP_CLEAR_DEVICE_STATUS 2 - -// -// Resource Type -// -#define CmResourceTypeNull 0 -#define CmResourceTypePort 1 -#define CmResourceTypeInterrupt 2 -#define CmResourceTypeMemory 3 -#define CmResourceTypeDma 4 -#define CmResourceTypeDeviceSpecific 5 -#define CmResourceTypeBusNumber 6 -#define CmResourceTypeMaximum 7 -#define CmResourceTypeNonArbitrated 128 -#define CmResourceTypeConfigData 128 -#define CmResourceTypeDevicePrivate 129 -#define CmResourceTypePcCardConfig 130 -#define CmResourceTypeMfCardConfig 131 - -#ifdef NTOS_MODE_USER - -// -// Resource Descriptor Share Dispositions -// -typedef enum _CM_SHARE_DISPOSITION -{ - CmResourceShareUndetermined, - CmResourceShareDeviceExclusive, - CmResourceShareDriverExclusive, - CmResourceShareShared -} CM_SHARE_DISPOSITION; - -#endif - -// -// Port Resource Descriptor Flags -// -#define CM_RESOURCE_PORT_MEMORY 0x0000 -#define CM_RESOURCE_PORT_IO 0x0001 -#define CM_RESOURCE_PORT_10_BIT_DECODE 0x0004 -#define CM_RESOURCE_PORT_12_BIT_DECODE 0x0008 -#define CM_RESOURCE_PORT_16_BIT_DECODE 0x0010 -#define CM_RESOURCE_PORT_POSITIVE_DECODE 0x0020 -#define CM_RESOURCE_PORT_PASSIVE_DECODE 0x0040 -#define CM_RESOURCE_PORT_WINDOW_DECODE 0x0080 - -// -// Memory Resource Descriptor Flags -// -#define CM_RESOURCE_MEMORY_READ_WRITE 0x0000 -#define CM_RESOURCE_MEMORY_READ_ONLY 0x0001 -#define CM_RESOURCE_MEMORY_WRITE_ONLY 0x0002 -#define CM_RESOURCE_MEMORY_PREFETCHABLE 0x0004 -#define CM_RESOURCE_MEMORY_COMBINEDWRITE 0x0008 -#define CM_RESOURCE_MEMORY_24 0x0010 -#define CM_RESOURCE_MEMORY_CACHEABLE 0x0020 - -// -// DMA Resource Descriptor Flags -// -#define CM_RESOURCE_DMA_8 0x0000 -#define CM_RESOURCE_DMA_16 0x0001 -#define CM_RESOURCE_DMA_32 0x0002 -#define CM_RESOURCE_DMA_8_AND_16 0x0004 -#define CM_RESOURCE_DMA_BUS_MASTER 0x0008 -#define CM_RESOURCE_DMA_TYPE_A 0x0010 -#define CM_RESOURCE_DMA_TYPE_B 0x0020 -#define CM_RESOURCE_DMA_TYPE_F 0x0040 - -#ifdef NTOS_MODE_USER - -// -// Information Classes for NtQueryKey -// -typedef enum _KEY_INFORMATION_CLASS -{ - KeyBasicInformation, - KeyNodeInformation, - KeyFullInformation, - KeyNameInformation, - KeyCachedInformation, - KeyFlagsInformation -} KEY_INFORMATION_CLASS; - -typedef enum _KEY_VALUE_INFORMATION_CLASS -{ - KeyValueBasicInformation, - KeyValueFullInformation, - KeyValuePartialInformation, - KeyValueFullInformationAlign64, - KeyValuePartialInformationAlign64 -} KEY_VALUE_INFORMATION_CLASS; - -typedef enum _KEY_SET_INFORMATION_CLASS -{ - KeyWriteTimeInformation, - KeyUserFlagsInformation, - MaxKeySetInfoClass -} KEY_SET_INFORMATION_CLASS; - -#endif - -// -// Plag and Play Classes -// -typedef enum _PLUGPLAY_CONTROL_CLASS -{ - PlugPlayControlUserResponse = 0x07, - PlugPlayControlProperty = 0x0A, - PlugPlayControlGetRelatedDevice = 0x0C, - PlugPlayControlDeviceStatus = 0x0E, - PlugPlayControlGetDeviceDepth, - PlugPlayControlResetDevice = 0x14 -} PLUGPLAY_CONTROL_CLASS; - -typedef enum _PLUGPLAY_BUS_CLASS -{ - SystemBus, - PlugPlayVirtualBus, - MaxPlugPlayBusClass -} PLUGPLAY_BUS_CLASS, *PPLUGPLAY_BUS_CLASS; - -// -// Plag and Play Bus Types -// -typedef enum _PLUGPLAY_VIRTUAL_BUS_TYPE -{ - Root, - MaxPlugPlayVirtualBusType -} PLUGPLAY_VIRTUAL_BUS_TYPE, *PPLUGPLAY_VIRTUAL_BUS_TYPE; - -// -// Plag and Play Event Categories -// -typedef enum _PLUGPLAY_EVENT_CATEGORY -{ - HardwareProfileChangeEvent, - TargetDeviceChangeEvent, - DeviceClassChangeEvent, - CustomDeviceEvent, - DeviceInstallEvent, - DeviceArrivalEvent, - PowerEvent, - VetoEvent, - BlockedDriverEvent, - MaxPlugEventCategory -} PLUGPLAY_EVENT_CATEGORY; - -#ifdef NTOS_MODE_USER - -// -// Information Structures for NtQueryKeyInformation -// -typedef struct _KEY_WRITE_TIME_INFORMATION -{ - LARGE_INTEGER LastWriteTime; -} KEY_WRITE_TIME_INFORMATION, *PKEY_WRITE_TIME_INFORMATION; - -typedef struct _KEY_USER_FLAGS_INFORMATION -{ - ULONG UserFlags; -} KEY_USER_FLAGS_INFORMATION, *PKEY_USER_FLAGS_INFORMATION; - -typedef struct _KEY_FULL_INFORMATION -{ - LARGE_INTEGER LastWriteTime; - ULONG TitleIndex; - ULONG ClassOffset; - ULONG ClassLength; - ULONG SubKeys; - ULONG MaxNameLen; - ULONG MaxClassLen; - ULONG Values; - ULONG MaxValueNameLen; - ULONG MaxValueDataLen; - WCHAR Class[1]; -} KEY_FULL_INFORMATION, *PKEY_FULL_INFORMATION; - -typedef struct _KEY_NODE_INFORMATION -{ - LARGE_INTEGER LastWriteTime; - ULONG TitleIndex; - ULONG ClassOffset; - ULONG ClassLength; - ULONG NameLength; - WCHAR Name[1]; -} KEY_NODE_INFORMATION, *PKEY_NODE_INFORMATION; - -typedef struct _KEY_VALUE_ENTRY -{ - PUNICODE_STRING ValueName; - ULONG DataLength; - ULONG DataOffset; - ULONG Type; -} KEY_VALUE_ENTRY, *PKEY_VALUE_ENTRY; - -typedef struct _KEY_VALUE_PARTIAL_INFORMATION -{ - ULONG TitleIndex; - ULONG Type; - ULONG DataLength; - UCHAR Data[1]; -} KEY_VALUE_PARTIAL_INFORMATION, *PKEY_VALUE_PARTIAL_INFORMATION; - -typedef struct _KEY_VALUE_BASIC_INFORMATION -{ - ULONG TitleIndex; - ULONG Type; - ULONG NameLength; - WCHAR Name[1]; -} KEY_VALUE_BASIC_INFORMATION, *PKEY_VALUE_BASIC_INFORMATION; - -typedef struct _KEY_VALUE_FULL_INFORMATION -{ - ULONG TitleIndex; - ULONG Type; - ULONG DataOffset; - ULONG DataLength; - ULONG NameLength; - WCHAR Name[1]; -} KEY_VALUE_FULL_INFORMATION, *PKEY_VALUE_FULL_INFORMATION; - -typedef struct _KEY_BASIC_INFORMATION -{ - LARGE_INTEGER LastWriteTime; - ULONG TitleIndex; - ULONG NameLength; - WCHAR Name[1]; -} KEY_BASIC_INFORMATION, *PKEY_BASIC_INFORMATION; - -#endif - -// -// Plug and Play Event Block -// -typedef struct _PLUGPLAY_EVENT_BLOCK -{ - GUID EventGuid; - PLUGPLAY_EVENT_CATEGORY EventCategory; - PULONG Result; - ULONG Flags; - ULONG TotalSize; - PVOID DeviceObject; - union - { - struct - { - GUID ClassGuid; - WCHAR SymbolicLinkName[ANYSIZE_ARRAY]; - } DeviceClass; - struct - { - WCHAR DeviceIds[ANYSIZE_ARRAY]; - } TargetDevice; - struct - { - WCHAR DeviceId[ANYSIZE_ARRAY]; - } InstallDevice; - struct - { - PVOID NotificationStructure; - WCHAR DeviceIds[ANYSIZE_ARRAY]; - } CustomNotification; - struct - { - PVOID Notification; - } ProfileNotification; - struct - { - ULONG NotificationCode; - ULONG NotificationData; - } PowerNotification; - struct - { - PNP_VETO_TYPE VetoType; - WCHAR DeviceIdVetoNameBuffer[ANYSIZE_ARRAY]; - } VetoNotification; - struct - { - GUID BlockedDriverGuid; - } BlockedDriverNotification; - }; -} PLUGPLAY_EVENT_BLOCK, *PPLUGPLAY_EVENT_BLOCK; - -// -// Plug and Play Control Classes -// - -//Class 0x0A -typedef struct _PLUGPLAY_CONTROL_PROPERTY_DATA -{ - UNICODE_STRING DeviceInstance; - ULONG Property; - PVOID Buffer; - ULONG BufferSize; -} PLUGPLAY_CONTROL_PROPERTY_DATA, *PPLUGPLAY_CONTROL_PROPERTY_DATA; - -// Class 0x0C -typedef struct _PLUGPLAY_CONTROL_RELATED_DEVICE_DATA -{ - UNICODE_STRING TargetDeviceInstance; - ULONG Relation; - UNICODE_STRING RelatedDeviceInstance; -} PLUGPLAY_CONTROL_RELATED_DEVICE_DATA, *PPLUGPLAY_CONTROL_RELATED_DEVICE_DATA; - -// Class 0x0E -typedef struct _PLUGPLAY_CONTOL_STATUS_DATA -{ - UNICODE_STRING DeviceInstance; - ULONG Operation; - ULONG DeviceStatus; - ULONG DeviceProblem; -} PLUGPLAY_CONTROL_STATUS_DATA, *PPLUGPLAY_CONTROL_STATUS_DATA; - -// Class 0x0F -typedef struct _PLUGPLAY_CONTROL_DEPTH_DATA -{ - UNICODE_STRING DeviceInstance; - ULONG Depth; -} PLUGPLAY_CONTROL_DEPTH_DATA, *PPLUGPLAY_CONTROL_DEPTH_DATA; - -// Class 0x14 -typedef struct _PLUGPLAY_CONTROL_RESET_DEVICE_DATA -{ - UNICODE_STRING DeviceInstance; -} PLUGPLAY_CONTROL_RESET_DEVICE_DATA, *PPLUGPLAY_CONTROL_RESET_DEVICE_DATA; - -// -// Plug and Play Bus Type Definition -// -typedef struct _PLUGPLAY_BUS_TYPE -{ - PLUGPLAY_BUS_CLASS BusClass; - union - { - INTERFACE_TYPE SystemBusType; - PLUGPLAY_VIRTUAL_BUS_TYPE PlugPlayVirtualBusType; - }; -} PLUGPLAY_BUS_TYPE, *PPLUGPLAY_BUS_TYPE; - -// -// Plug and Play Bus Instance Definition -// -typedef struct _PLUGPLAY_BUS_INSTANCE -{ - PLUGPLAY_BUS_TYPE BusType; - ULONG BusNumber; - WCHAR BusName[MAX_BUS_NAME]; -} PLUGPLAY_BUS_INSTANCE, *PPLUGPLAY_BUS_INSTANCE; - -#ifdef NTOS_MODE_USER - -// -// Partial Resource Descriptor and List for Hardware -// -#include -typedef struct _CM_PARTIAL_RESOURCE_DESCRIPTOR -{ - UCHAR Type; - UCHAR ShareDisposition; - USHORT Flags; - union - { - struct - { - PHYSICAL_ADDRESS Start; - ULONG Length; - } Generic; - struct - { - PHYSICAL_ADDRESS Start; - ULONG Length; - } Port; - struct - { - ULONG Level; - ULONG Vector; - ULONG Affinity; - } Interrupt; - struct - { - PHYSICAL_ADDRESS Start; - ULONG Length; - } Memory; - struct - { - ULONG Channel; - ULONG Port; - ULONG Reserved1; - } Dma; - struct - { - ULONG Data[3]; - } DevicePrivate; - struct - { - ULONG Start; - ULONG Length; - ULONG Reserved; - } BusNumber; - struct - { - ULONG DataSize; - ULONG Reserved1; - ULONG Reserved2; - } DeviceSpecificData; - } u; -} CM_PARTIAL_RESOURCE_DESCRIPTOR, *PCM_PARTIAL_RESOURCE_DESCRIPTOR; - -typedef struct _CM_PARTIAL_RESOURCE_LIST -{ - USHORT Version; - USHORT Revision; - ULONG Count; - CM_PARTIAL_RESOURCE_DESCRIPTOR PartialDescriptors[1]; -} CM_PARTIAL_RESOURCE_LIST, *PCM_PARTIAL_RESOURCE_LIST; - -// -// Full Resource Descriptor and List for Hardware -// -typedef struct _CM_FULL_RESOURCE_DESCRIPTOR -{ - INTERFACE_TYPE InterfaceType; - ULONG BusNumber; - CM_PARTIAL_RESOURCE_LIST PartialResourceList; -} CM_FULL_RESOURCE_DESCRIPTOR, *PCM_FULL_RESOURCE_DESCRIPTOR; - -typedef struct _CM_RESOURCE_LIST -{ - ULONG Count; - CM_FULL_RESOURCE_DESCRIPTOR List[1]; -} CM_RESOURCE_LIST, *PCM_RESOURCE_LIST; - -// -// Disk/INT13 Structures -// -typedef struct _CM_INT13_DRIVE_PARAMETER -{ - USHORT DriveSelect; - ULONG MaxCylinders; - USHORT SectorsPerTrack; - USHORT MaxHeads; - USHORT NumberDrives; -} CM_INT13_DRIVE_PARAMETER, *PCM_INT13_DRIVE_PARAMETER; - -typedef struct _CM_DISK_GEOMETRY_DEVICE_DATA -{ - ULONG BytesPerSector; - ULONG NumberOfCylinders; - ULONG SectorsPerTrack; - ULONG NumberOfHeads; -} CM_DISK_GEOMETRY_DEVICE_DATA, *PCM_DISK_GEOMETRY_DEVICE_DATA; - -#include - -#endif // _!NTOS_MODE_USER - -#endif // _CMTYPES_H - +/*++ NDK Version: 0095 + +Copyright (c) Alex Ionescu. All rights reserved. + +Header Name: + + cmtypes.h + +Abstract: + + Type definitions for the Configuration Manager. + +Author: + + Alex Ionescu (alex.ionescu@reactos.com) 06-Oct-2004 + +--*/ + +#ifndef _CMTYPES_H +#define _CMTYPES_H + +// +// Dependencies +// +#include +#include +#include + +#define MAX_BUS_NAME 24 + +// +// PLUGPLAY_CONTROL_RELATED_DEVICE_DATA.Relations +// +#define PNP_GET_PARENT_DEVICE 1 +#define PNP_GET_CHILD_DEVICE 2 +#define PNP_GET_SIBLING_DEVICE 3 + +// +// PLUGPLAY_CONTROL_STATUS_DATA Operations +// +#define PNP_GET_DEVICE_STATUS 0 +#define PNP_SET_DEVICE_STATUS 1 +#define PNP_CLEAR_DEVICE_STATUS 2 + +// +// Resource Type +// +#define CmResourceTypeNull 0 +#define CmResourceTypePort 1 +#define CmResourceTypeInterrupt 2 +#define CmResourceTypeMemory 3 +#define CmResourceTypeDma 4 +#define CmResourceTypeDeviceSpecific 5 +#define CmResourceTypeBusNumber 6 +#define CmResourceTypeMaximum 7 +#define CmResourceTypeNonArbitrated 128 +#define CmResourceTypeConfigData 128 +#define CmResourceTypeDevicePrivate 129 +#define CmResourceTypePcCardConfig 130 +#define CmResourceTypeMfCardConfig 131 + +#ifdef NTOS_MODE_USER + +// +// Resource Descriptor Share Dispositions +// +typedef enum _CM_SHARE_DISPOSITION +{ + CmResourceShareUndetermined, + CmResourceShareDeviceExclusive, + CmResourceShareDriverExclusive, + CmResourceShareShared +} CM_SHARE_DISPOSITION; + +#endif + +// +// Port Resource Descriptor Flags +// +#define CM_RESOURCE_PORT_MEMORY 0x0000 +#define CM_RESOURCE_PORT_IO 0x0001 +#define CM_RESOURCE_PORT_10_BIT_DECODE 0x0004 +#define CM_RESOURCE_PORT_12_BIT_DECODE 0x0008 +#define CM_RESOURCE_PORT_16_BIT_DECODE 0x0010 +#define CM_RESOURCE_PORT_POSITIVE_DECODE 0x0020 +#define CM_RESOURCE_PORT_PASSIVE_DECODE 0x0040 +#define CM_RESOURCE_PORT_WINDOW_DECODE 0x0080 + +// +// Memory Resource Descriptor Flags +// +#define CM_RESOURCE_MEMORY_READ_WRITE 0x0000 +#define CM_RESOURCE_MEMORY_READ_ONLY 0x0001 +#define CM_RESOURCE_MEMORY_WRITE_ONLY 0x0002 +#define CM_RESOURCE_MEMORY_PREFETCHABLE 0x0004 +#define CM_RESOURCE_MEMORY_COMBINEDWRITE 0x0008 +#define CM_RESOURCE_MEMORY_24 0x0010 +#define CM_RESOURCE_MEMORY_CACHEABLE 0x0020 + +// +// DMA Resource Descriptor Flags +// +#define CM_RESOURCE_DMA_8 0x0000 +#define CM_RESOURCE_DMA_16 0x0001 +#define CM_RESOURCE_DMA_32 0x0002 +#define CM_RESOURCE_DMA_8_AND_16 0x0004 +#define CM_RESOURCE_DMA_BUS_MASTER 0x0008 +#define CM_RESOURCE_DMA_TYPE_A 0x0010 +#define CM_RESOURCE_DMA_TYPE_B 0x0020 +#define CM_RESOURCE_DMA_TYPE_F 0x0040 + +#ifdef NTOS_MODE_USER + +// +// Information Classes for NtQueryKey +// +typedef enum _KEY_INFORMATION_CLASS +{ + KeyBasicInformation, + KeyNodeInformation, + KeyFullInformation, + KeyNameInformation, + KeyCachedInformation, + KeyFlagsInformation +} KEY_INFORMATION_CLASS; + +typedef enum _KEY_VALUE_INFORMATION_CLASS +{ + KeyValueBasicInformation, + KeyValueFullInformation, + KeyValuePartialInformation, + KeyValueFullInformationAlign64, + KeyValuePartialInformationAlign64 +} KEY_VALUE_INFORMATION_CLASS; + +typedef enum _KEY_SET_INFORMATION_CLASS +{ + KeyWriteTimeInformation, + KeyUserFlagsInformation, + MaxKeySetInfoClass +} KEY_SET_INFORMATION_CLASS; + +#endif + +// +// Plag and Play Classes +// +typedef enum _PLUGPLAY_CONTROL_CLASS +{ + PlugPlayControlUserResponse = 0x07, + PlugPlayControlProperty = 0x0A, + PlugPlayControlGetRelatedDevice = 0x0C, + PlugPlayControlDeviceStatus = 0x0E, + PlugPlayControlGetDeviceDepth, + PlugPlayControlResetDevice = 0x14 +} PLUGPLAY_CONTROL_CLASS; + +typedef enum _PLUGPLAY_BUS_CLASS +{ + SystemBus, + PlugPlayVirtualBus, + MaxPlugPlayBusClass +} PLUGPLAY_BUS_CLASS, *PPLUGPLAY_BUS_CLASS; + +// +// Plag and Play Bus Types +// +typedef enum _PLUGPLAY_VIRTUAL_BUS_TYPE +{ + Root, + MaxPlugPlayVirtualBusType +} PLUGPLAY_VIRTUAL_BUS_TYPE, *PPLUGPLAY_VIRTUAL_BUS_TYPE; + +// +// Plag and Play Event Categories +// +typedef enum _PLUGPLAY_EVENT_CATEGORY +{ + HardwareProfileChangeEvent, + TargetDeviceChangeEvent, + DeviceClassChangeEvent, + CustomDeviceEvent, + DeviceInstallEvent, + DeviceArrivalEvent, + PowerEvent, + VetoEvent, + BlockedDriverEvent, + MaxPlugEventCategory +} PLUGPLAY_EVENT_CATEGORY; + +#ifdef NTOS_MODE_USER + +// +// Information Structures for NtQueryKeyInformation +// +typedef struct _KEY_WRITE_TIME_INFORMATION +{ + LARGE_INTEGER LastWriteTime; +} KEY_WRITE_TIME_INFORMATION, *PKEY_WRITE_TIME_INFORMATION; + +typedef struct _KEY_USER_FLAGS_INFORMATION +{ + ULONG UserFlags; +} KEY_USER_FLAGS_INFORMATION, *PKEY_USER_FLAGS_INFORMATION; + +typedef struct _KEY_FULL_INFORMATION +{ + LARGE_INTEGER LastWriteTime; + ULONG TitleIndex; + ULONG ClassOffset; + ULONG ClassLength; + ULONG SubKeys; + ULONG MaxNameLen; + ULONG MaxClassLen; + ULONG Values; + ULONG MaxValueNameLen; + ULONG MaxValueDataLen; + WCHAR Class[1]; +} KEY_FULL_INFORMATION, *PKEY_FULL_INFORMATION; + +typedef struct _KEY_NODE_INFORMATION +{ + LARGE_INTEGER LastWriteTime; + ULONG TitleIndex; + ULONG ClassOffset; + ULONG ClassLength; + ULONG NameLength; + WCHAR Name[1]; +} KEY_NODE_INFORMATION, *PKEY_NODE_INFORMATION; + +typedef struct _KEY_VALUE_ENTRY +{ + PUNICODE_STRING ValueName; + ULONG DataLength; + ULONG DataOffset; + ULONG Type; +} KEY_VALUE_ENTRY, *PKEY_VALUE_ENTRY; + +typedef struct _KEY_VALUE_PARTIAL_INFORMATION +{ + ULONG TitleIndex; + ULONG Type; + ULONG DataLength; + UCHAR Data[1]; +} KEY_VALUE_PARTIAL_INFORMATION, *PKEY_VALUE_PARTIAL_INFORMATION; + +typedef struct _KEY_VALUE_BASIC_INFORMATION +{ + ULONG TitleIndex; + ULONG Type; + ULONG NameLength; + WCHAR Name[1]; +} KEY_VALUE_BASIC_INFORMATION, *PKEY_VALUE_BASIC_INFORMATION; + +typedef struct _KEY_VALUE_FULL_INFORMATION +{ + ULONG TitleIndex; + ULONG Type; + ULONG DataOffset; + ULONG DataLength; + ULONG NameLength; + WCHAR Name[1]; +} KEY_VALUE_FULL_INFORMATION, *PKEY_VALUE_FULL_INFORMATION; + +typedef struct _KEY_BASIC_INFORMATION +{ + LARGE_INTEGER LastWriteTime; + ULONG TitleIndex; + ULONG NameLength; + WCHAR Name[1]; +} KEY_BASIC_INFORMATION, *PKEY_BASIC_INFORMATION; + +#endif + +// +// Plug and Play Event Block +// +typedef struct _PLUGPLAY_EVENT_BLOCK +{ + GUID EventGuid; + PLUGPLAY_EVENT_CATEGORY EventCategory; + PULONG Result; + ULONG Flags; + ULONG TotalSize; + PVOID DeviceObject; + union + { + struct + { + GUID ClassGuid; + WCHAR SymbolicLinkName[ANYSIZE_ARRAY]; + } DeviceClass; + struct + { + WCHAR DeviceIds[ANYSIZE_ARRAY]; + } TargetDevice; + struct + { + WCHAR DeviceId[ANYSIZE_ARRAY]; + } InstallDevice; + struct + { + PVOID NotificationStructure; + WCHAR DeviceIds[ANYSIZE_ARRAY]; + } CustomNotification; + struct + { + PVOID Notification; + } ProfileNotification; + struct + { + ULONG NotificationCode; + ULONG NotificationData; + } PowerNotification; + struct + { + PNP_VETO_TYPE VetoType; + WCHAR DeviceIdVetoNameBuffer[ANYSIZE_ARRAY]; + } VetoNotification; + struct + { + GUID BlockedDriverGuid; + } BlockedDriverNotification; + }; +} PLUGPLAY_EVENT_BLOCK, *PPLUGPLAY_EVENT_BLOCK; + +// +// Plug and Play Control Classes +// + +//Class 0x0A +typedef struct _PLUGPLAY_CONTROL_PROPERTY_DATA +{ + UNICODE_STRING DeviceInstance; + ULONG Property; + PVOID Buffer; + ULONG BufferSize; +} PLUGPLAY_CONTROL_PROPERTY_DATA, *PPLUGPLAY_CONTROL_PROPERTY_DATA; + +// Class 0x0C +typedef struct _PLUGPLAY_CONTROL_RELATED_DEVICE_DATA +{ + UNICODE_STRING TargetDeviceInstance; + ULONG Relation; + UNICODE_STRING RelatedDeviceInstance; +} PLUGPLAY_CONTROL_RELATED_DEVICE_DATA, *PPLUGPLAY_CONTROL_RELATED_DEVICE_DATA; + +// Class 0x0E +typedef struct _PLUGPLAY_CONTOL_STATUS_DATA +{ + UNICODE_STRING DeviceInstance; + ULONG Operation; + ULONG DeviceStatus; + ULONG DeviceProblem; +} PLUGPLAY_CONTROL_STATUS_DATA, *PPLUGPLAY_CONTROL_STATUS_DATA; + +// Class 0x0F +typedef struct _PLUGPLAY_CONTROL_DEPTH_DATA +{ + UNICODE_STRING DeviceInstance; + ULONG Depth; +} PLUGPLAY_CONTROL_DEPTH_DATA, *PPLUGPLAY_CONTROL_DEPTH_DATA; + +// Class 0x14 +typedef struct _PLUGPLAY_CONTROL_RESET_DEVICE_DATA +{ + UNICODE_STRING DeviceInstance; +} PLUGPLAY_CONTROL_RESET_DEVICE_DATA, *PPLUGPLAY_CONTROL_RESET_DEVICE_DATA; + +// +// Plug and Play Bus Type Definition +// +typedef struct _PLUGPLAY_BUS_TYPE +{ + PLUGPLAY_BUS_CLASS BusClass; + union + { + INTERFACE_TYPE SystemBusType; + PLUGPLAY_VIRTUAL_BUS_TYPE PlugPlayVirtualBusType; + }; +} PLUGPLAY_BUS_TYPE, *PPLUGPLAY_BUS_TYPE; + +// +// Plug and Play Bus Instance Definition +// +typedef struct _PLUGPLAY_BUS_INSTANCE +{ + PLUGPLAY_BUS_TYPE BusType; + ULONG BusNumber; + WCHAR BusName[MAX_BUS_NAME]; +} PLUGPLAY_BUS_INSTANCE, *PPLUGPLAY_BUS_INSTANCE; + +#ifdef NTOS_MODE_USER + +// +// Partial Resource Descriptor and List for Hardware +// +#include +typedef struct _CM_PARTIAL_RESOURCE_DESCRIPTOR +{ + UCHAR Type; + UCHAR ShareDisposition; + USHORT Flags; + union + { + struct + { + PHYSICAL_ADDRESS Start; + ULONG Length; + } Generic; + struct + { + PHYSICAL_ADDRESS Start; + ULONG Length; + } Port; + struct + { + ULONG Level; + ULONG Vector; + ULONG Affinity; + } Interrupt; + struct + { + PHYSICAL_ADDRESS Start; + ULONG Length; + } Memory; + struct + { + ULONG Channel; + ULONG Port; + ULONG Reserved1; + } Dma; + struct + { + ULONG Data[3]; + } DevicePrivate; + struct + { + ULONG Start; + ULONG Length; + ULONG Reserved; + } BusNumber; + struct + { + ULONG DataSize; + ULONG Reserved1; + ULONG Reserved2; + } DeviceSpecificData; + } u; +} CM_PARTIAL_RESOURCE_DESCRIPTOR, *PCM_PARTIAL_RESOURCE_DESCRIPTOR; + +typedef struct _CM_PARTIAL_RESOURCE_LIST +{ + USHORT Version; + USHORT Revision; + ULONG Count; + CM_PARTIAL_RESOURCE_DESCRIPTOR PartialDescriptors[1]; +} CM_PARTIAL_RESOURCE_LIST, *PCM_PARTIAL_RESOURCE_LIST; + +// +// Full Resource Descriptor and List for Hardware +// +typedef struct _CM_FULL_RESOURCE_DESCRIPTOR +{ + INTERFACE_TYPE InterfaceType; + ULONG BusNumber; + CM_PARTIAL_RESOURCE_LIST PartialResourceList; +} CM_FULL_RESOURCE_DESCRIPTOR, *PCM_FULL_RESOURCE_DESCRIPTOR; + +typedef struct _CM_RESOURCE_LIST +{ + ULONG Count; + CM_FULL_RESOURCE_DESCRIPTOR List[1]; +} CM_RESOURCE_LIST, *PCM_RESOURCE_LIST; + +// +// Disk/INT13 Structures +// +typedef struct _CM_INT13_DRIVE_PARAMETER +{ + USHORT DriveSelect; + ULONG MaxCylinders; + USHORT SectorsPerTrack; + USHORT MaxHeads; + USHORT NumberDrives; +} CM_INT13_DRIVE_PARAMETER, *PCM_INT13_DRIVE_PARAMETER; + +typedef struct _CM_DISK_GEOMETRY_DEVICE_DATA +{ + ULONG BytesPerSector; + ULONG NumberOfCylinders; + ULONG SectorsPerTrack; + ULONG NumberOfHeads; +} CM_DISK_GEOMETRY_DEVICE_DATA, *PCM_DISK_GEOMETRY_DEVICE_DATA; + +#include + +#endif // _!NTOS_MODE_USER + +#endif // _CMTYPES_H + diff --git a/reactos/include/ndk/dbgkfuncs.h b/reactos/include/ndk/dbgkfuncs.h index 9fa0057e40c..06008537793 100644 --- a/reactos/include/ndk/dbgkfuncs.h +++ b/reactos/include/ndk/dbgkfuncs.h @@ -1,87 +1,87 @@ -/*++ NDK Version: 0095 - -Copyright (c) Alex Ionescu. All rights reserved. - -Header Name: - - dbgkfuncs.h - -Abstract: - - Function definitions for the User Mode Debugging Facility. - -Author: - - Alex Ionescu (alex.ionescu@reactos.com) 06-Oct-2004 - ---*/ - -#ifndef _DBGKFUNCS_H -#define _DBGKFUNCS_H - -// -// Dependencies -// -#include - -// -// Native calls -// -NTSYSCALLAPI -NTSTATUS -NTAPI -NtCreateDebugObject( - OUT PHANDLE DebugHandle, - IN ACCESS_MASK DesiredAccess, - IN POBJECT_ATTRIBUTES ObjectAttributes, - IN BOOLEAN KillProcessOnExit -); - -NTSYSCALLAPI -NTSTATUS -NTAPI -NtDebugContinue( - IN HANDLE DebugObject, - IN PCLIENT_ID AppClientId, - IN NTSTATUS ContinueStatus -); - -NTSYSCALLAPI -NTSTATUS -NTAPI -NtWaitForDebugEvent( - IN HANDLE DebugObject, - IN BOOLEAN Alertable, - IN PLARGE_INTEGER Timeout OPTIONAL, - OUT PDBGUI_WAIT_STATE_CHANGE StateChange -); - -NTSYSCALLAPI -NTSTATUS -NTAPI -ZwCreateDebugObject( - OUT PHANDLE DebugHandle, - IN ACCESS_MASK DesiredAccess, - IN POBJECT_ATTRIBUTES ObjectAttributes, - IN BOOLEAN KillProcessOnExit -); - -NTSYSCALLAPI -NTSTATUS -NTAPI -ZwDebugContinue( - IN HANDLE DebugObject, - IN PCLIENT_ID AppClientId, - IN NTSTATUS ContinueStatus -); - -NTSYSCALLAPI -NTSTATUS -NTAPI -ZwWaitForDebugEvent( - IN HANDLE DebugObject, - IN BOOLEAN Alertable, - IN PLARGE_INTEGER Timeout OPTIONAL, - OUT PDBGUI_WAIT_STATE_CHANGE StateChange -); -#endif +/*++ NDK Version: 0095 + +Copyright (c) Alex Ionescu. All rights reserved. + +Header Name: + + dbgkfuncs.h + +Abstract: + + Function definitions for the User Mode Debugging Facility. + +Author: + + Alex Ionescu (alex.ionescu@reactos.com) 06-Oct-2004 + +--*/ + +#ifndef _DBGKFUNCS_H +#define _DBGKFUNCS_H + +// +// Dependencies +// +#include + +// +// Native calls +// +NTSYSCALLAPI +NTSTATUS +NTAPI +NtCreateDebugObject( + OUT PHANDLE DebugHandle, + IN ACCESS_MASK DesiredAccess, + IN POBJECT_ATTRIBUTES ObjectAttributes, + IN BOOLEAN KillProcessOnExit +); + +NTSYSCALLAPI +NTSTATUS +NTAPI +NtDebugContinue( + IN HANDLE DebugObject, + IN PCLIENT_ID AppClientId, + IN NTSTATUS ContinueStatus +); + +NTSYSCALLAPI +NTSTATUS +NTAPI +NtWaitForDebugEvent( + IN HANDLE DebugObject, + IN BOOLEAN Alertable, + IN PLARGE_INTEGER Timeout OPTIONAL, + OUT PDBGUI_WAIT_STATE_CHANGE StateChange +); + +NTSYSCALLAPI +NTSTATUS +NTAPI +ZwCreateDebugObject( + OUT PHANDLE DebugHandle, + IN ACCESS_MASK DesiredAccess, + IN POBJECT_ATTRIBUTES ObjectAttributes, + IN BOOLEAN KillProcessOnExit +); + +NTSYSCALLAPI +NTSTATUS +NTAPI +ZwDebugContinue( + IN HANDLE DebugObject, + IN PCLIENT_ID AppClientId, + IN NTSTATUS ContinueStatus +); + +NTSYSCALLAPI +NTSTATUS +NTAPI +ZwWaitForDebugEvent( + IN HANDLE DebugObject, + IN BOOLEAN Alertable, + IN PLARGE_INTEGER Timeout OPTIONAL, + OUT PDBGUI_WAIT_STATE_CHANGE StateChange +); +#endif diff --git a/reactos/include/ndk/exfuncs.h b/reactos/include/ndk/exfuncs.h index 56af91f7668..f4c52a481ea 100644 --- a/reactos/include/ndk/exfuncs.h +++ b/reactos/include/ndk/exfuncs.h @@ -1,931 +1,931 @@ -/*++ NDK Version: 0095 - -Copyright (c) Alex Ionescu. All rights reserved. - -Header Name: - - exfuncs.h - -Abstract: - - Function definitions for the Executive. - -Author: - - Alex Ionescu (alex.ionescu@reactos.com) 06-Oct-2004 - ---*/ - -#ifndef _EXFUNCS_H -#define _EXFUNCS_H - -// -// Dependencies -// -#include -#include -#include - -// -// Don't include WMI headers just for one define -// -typedef struct _EVENT_TRACE_HEADER *PEVENT_TRACE_HEADER; - -#ifndef NTOS_MODE_USER -// -// Fast Mutex functions -// -VOID -FASTCALL -ExEnterCriticalRegionAndAcquireFastMutexUnsafe( - PFAST_MUTEX FastMutex -); - -VOID -FASTCALL -ExReleaseFastMutexUnsafeAndLeaveCriticalRegion( - PFAST_MUTEX FastMutex -); - -// -// Pushlock functions -// -VOID -FASTCALL -ExfAcquirePushLockExclusive( - PEX_PUSH_LOCK PushLock -); - -VOID -FASTCALL -ExfAcquirePushLockShared( - PEX_PUSH_LOCK PushLock -); - -VOID -FASTCALL -ExfReleasePushLock( - PEX_PUSH_LOCK PushLock -); - -VOID -FASTCALL -ExfReleasePushLockExclusive( - PEX_PUSH_LOCK PushLock -); - -VOID -FASTCALL -ExfReleasePushLockShared( - PEX_PUSH_LOCK PushLock -); - -VOID -FASTCALL -ExfTryToWakePushLock( - PEX_PUSH_LOCK PushLock -); - -VOID -FASTCALL -ExfUnblockPushLock( - PEX_PUSH_LOCK PushLock, - PVOID CurrentWaitBlock -); - -#endif - -// -// Native Calls -// -NTSYSCALLAPI -NTSTATUS -NTAPI -NtAddAtom( - IN PWSTR AtomName, - IN ULONG AtomNameLength, - IN OUT PRTL_ATOM Atom -); - -NTSYSCALLAPI -NTSTATUS -NTAPI -NtCancelTimer( - IN HANDLE TimerHandle, - OUT PBOOLEAN CurrentState OPTIONAL -); - -NTSYSCALLAPI -NTSTATUS -NTAPI -NtClearEvent( - IN HANDLE EventHandle -); - -NTSYSCALLAPI -NTSTATUS -NTAPI -NtCreateEvent( - OUT PHANDLE EventHandle, - IN ACCESS_MASK DesiredAccess, - IN POBJECT_ATTRIBUTES ObjectAttributes, - IN EVENT_TYPE EventType, - IN BOOLEAN InitialState -); - -NTSYSCALLAPI -NTSTATUS -NTAPI -NtCreateEventPair( - OUT PHANDLE EventPairHandle, - IN ACCESS_MASK DesiredAccess, - IN POBJECT_ATTRIBUTES ObjectAttributes -); - -NTSYSCALLAPI -NTSTATUS -NTAPI -NtCreateMutant( - OUT PHANDLE MutantHandle, - IN ACCESS_MASK DesiredAccess, - IN POBJECT_ATTRIBUTES ObjectAttributes, - IN BOOLEAN InitialOwner -); - -NTSYSCALLAPI -NTSTATUS -NTAPI -NtCreateSemaphore( - OUT PHANDLE SemaphoreHandle, - IN ACCESS_MASK DesiredAccess, - IN POBJECT_ATTRIBUTES ObjectAttributes OPTIONAL, - IN LONG InitialCount, - IN LONG MaximumCount -); - -NTSYSCALLAPI -NTSTATUS -NTAPI -NtCreateTimer( - OUT PHANDLE TimerHandle, - IN ACCESS_MASK DesiredAccess, - IN POBJECT_ATTRIBUTES ObjectAttributes OPTIONAL, - IN TIMER_TYPE TimerType -); - -NTSYSCALLAPI -NTSTATUS -NTAPI -NtDeleteAtom( - IN RTL_ATOM Atom -); - -NTSYSCALLAPI -NTSTATUS -NTAPI -NtDisplayString( - IN PUNICODE_STRING DisplayString -); - -NTSYSCALLAPI -NTSTATUS -NTAPI -NtFindAtom( - IN PWSTR AtomName, - IN ULONG AtomNameLength, - OUT PRTL_ATOM Atom OPTIONAL -); - -NTSYSCALLAPI -NTSTATUS -NTAPI -NtOpenEvent( - OUT PHANDLE EventHandle, - IN ACCESS_MASK DesiredAccess, - IN POBJECT_ATTRIBUTES ObjectAttributes -); - -NTSYSCALLAPI -NTSTATUS -NTAPI -NtOpenEventPair( - OUT PHANDLE EventPairHandle, - IN ACCESS_MASK DesiredAccess, - IN POBJECT_ATTRIBUTES ObjectAttributes -); - -NTSYSCALLAPI -NTSTATUS -NTAPI -NtOpenMutant( - OUT PHANDLE MutantHandle, - IN ACCESS_MASK DesiredAccess, - IN POBJECT_ATTRIBUTES ObjectAttributes -); - -NTSYSCALLAPI -NTSTATUS -NTAPI -NtOpenSemaphore( - OUT PHANDLE SemaphoreHandle, - IN ACCESS_MASK DesiredAcces, - IN POBJECT_ATTRIBUTES ObjectAttributes -); - -NTSYSCALLAPI -NTSTATUS -NTAPI -NtOpenTimer( - OUT PHANDLE TimerHandle, - IN ACCESS_MASK DesiredAccess, - IN POBJECT_ATTRIBUTES ObjectAttributes -); - -NTSYSCALLAPI -NTSTATUS -NTAPI -NtPulseEvent( - IN HANDLE EventHandle, - IN PLONG PulseCount OPTIONAL -); - -NTSYSCALLAPI -NTSTATUS -NTAPI -NtQueryDefaultLocale( - IN BOOLEAN UserProfile, - OUT PLCID DefaultLocaleId -); - -NTSYSCALLAPI -NTSTATUS -NTAPI -NtQueryDefaultUILanguage( - PLANGID LanguageId -); - -NTSYSCALLAPI -NTSTATUS -NTAPI -NtQueryEvent( - IN HANDLE EventHandle, - IN EVENT_INFORMATION_CLASS EventInformationClass, - OUT PVOID EventInformation, - IN ULONG EventInformationLength, - OUT PULONG ReturnLength -); - -NTSYSCALLAPI -NTSTATUS -NTAPI -NtQueryInformationAtom( - IN RTL_ATOM Atom, - IN ATOM_INFORMATION_CLASS AtomInformationClass, - OUT PVOID AtomInformation, - IN ULONG AtomInformationLength, - OUT PULONG ReturnLength OPTIONAL -); - -NTSYSCALLAPI -NTSTATUS -NTAPI -NtQueryInstallUILanguage( - PLANGID LanguageId -); - -NTSYSCALLAPI -NTSTATUS -NTAPI -NtQueryMutant( - IN HANDLE MutantHandle, - IN MUTANT_INFORMATION_CLASS MutantInformationClass, - OUT PVOID MutantInformation, - IN ULONG Length, - OUT PULONG ResultLength -); - -NTSYSCALLAPI -NTSTATUS -NTAPI -NtQuerySemaphore( - IN HANDLE SemaphoreHandle, - IN SEMAPHORE_INFORMATION_CLASS SemaphoreInformationClass, - OUT PVOID SemaphoreInformation, - IN ULONG Length, - OUT PULONG ReturnLength -); - -NTSYSCALLAPI -NTSTATUS -NTAPI -NtQuerySystemEnvironmentValue( - IN PUNICODE_STRING Name, - OUT PWSTR Value, - ULONG Length, - PULONG ReturnLength -); - -NTSYSCALLAPI -NTSTATUS -NTAPI -NtQuerySystemInformation( - IN SYSTEM_INFORMATION_CLASS SystemInformationClass, - OUT PVOID SystemInformation, - IN ULONG Length, - OUT PULONG ResultLength -); - -NTSYSCALLAPI -NTSTATUS -NTAPI -NtQueryTimer( - IN HANDLE TimerHandle, - IN TIMER_INFORMATION_CLASS TimerInformationClass, - OUT PVOID TimerInformation, - IN ULONG Length, - OUT PULONG ResultLength -); - -NTSYSCALLAPI -NTSTATUS -NTAPI -NtRaiseHardError( - IN NTSTATUS ErrorStatus, - IN ULONG NumberOfParameters, - IN ULONG UnicodeStringParameterMask, - IN PULONG_PTR Parameters, - IN ULONG ValidResponseOptions, - OUT PULONG Response -); - -NTSYSCALLAPI -NTSTATUS -NTAPI -NtReleaseMutant( - IN HANDLE MutantHandle, - IN PLONG ReleaseCount OPTIONAL -); - -NTSYSCALLAPI -NTSTATUS -NTAPI -NtReleaseSemaphore( - IN HANDLE SemaphoreHandle, - IN LONG ReleaseCount, - OUT PLONG PreviousCount -); - -NTSYSCALLAPI -NTSTATUS -NTAPI -NtResetEvent( - IN HANDLE EventHandle, - OUT PLONG NumberOfWaitingThreads OPTIONAL -); - -NTSYSCALLAPI -NTSTATUS -NTAPI -NtSetDefaultLocale( - IN BOOLEAN UserProfile, - IN LCID DefaultLocaleId -); - -NTSYSCALLAPI -NTSTATUS -NTAPI -NtSetDefaultUILanguage( - LANGID LanguageId -); - -NTSYSCALLAPI -NTSTATUS -NTAPI -NtSetDefaultHardErrorPort( - IN HANDLE PortHandle -); - -NTSYSCALLAPI -NTSTATUS -NTAPI -NtSetEvent( - IN HANDLE EventHandle, - OUT PLONG PreviousState OPTIONAL -); - -NTSYSCALLAPI -NTSTATUS -NTAPI -NtSetHighEventPair( - IN HANDLE EventPairHandle -); - -NTSYSCALLAPI -NTSTATUS -NTAPI -NtSetHighWaitLowEventPair( - IN HANDLE EventPairHandle -); - -NTSYSCALLAPI -NTSTATUS -NTAPI -NtSetLowEventPair( - HANDLE EventPair -); - -NTSYSCALLAPI -NTSTATUS -NTAPI -NtSetLowWaitHighEventPair( - HANDLE EventPair -); - -NTSYSCALLAPI -NTSTATUS -NTAPI -NtSetSystemEnvironmentValue( - IN PUNICODE_STRING VariableName, - IN PUNICODE_STRING Value -); - -NTSYSCALLAPI -NTSTATUS -NTAPI -NtSetSystemInformation( - IN SYSTEM_INFORMATION_CLASS SystemInformationClass, - IN PVOID SystemInformation, - IN ULONG SystemInformationLength -); - -NTSYSCALLAPI -NTSTATUS -NTAPI -NtSetTimer( - IN HANDLE TimerHandle, - IN PLARGE_INTEGER DueTime, - IN PTIMER_APC_ROUTINE TimerApcRoutine, - IN PVOID TimerContext, - IN BOOLEAN WakeTimer, - IN LONG Period OPTIONAL, - OUT PBOOLEAN PreviousState OPTIONAL -); - -NTSYSCALLAPI -NTSTATUS -NTAPI -NtSetUuidSeed( - IN PUCHAR UuidSeed -); - -NTSYSCALLAPI -NTSTATUS -NTAPI -NtShutdownSystem( - IN SHUTDOWN_ACTION Action -); - -NTSYSCALLAPI -NTSTATUS -NTAPI -NtWaitHighEventPair( - IN HANDLE EventPairHandle -); - -NTSYSCALLAPI -NTSTATUS -NTAPI -NtWaitLowEventPair( - IN HANDLE EventPairHandle -); - -NTSYSCALLAPI -NTSTATUS -NTAPI -NtTraceEvent( - IN ULONG TraceHandle, - IN ULONG Flags, - IN ULONG TraceHeaderLength, - IN PEVENT_TRACE_HEADER TraceHeader -); - -NTSYSAPI -NTSTATUS -NTAPI -ZwAddAtom( - IN PWSTR AtomName, - IN ULONG AtomNameLength, - IN OUT PRTL_ATOM Atom -); - -#ifdef NTOS_MODE_USER -NTSYSAPI -NTSTATUS -NTAPI -ZwCancelTimer( - IN HANDLE TimerHandle, - OUT PBOOLEAN CurrentState OPTIONAL -); -#endif - -NTSYSAPI -NTSTATUS -NTAPI -ZwClearEvent( - IN HANDLE EventHandle -); - -NTSYSAPI -NTSYSAPI -NTSTATUS -NTAPI -ZwCreateEvent( - OUT PHANDLE EventHandle, - IN ACCESS_MASK DesiredAccess, - IN POBJECT_ATTRIBUTES ObjectAttributes, - IN EVENT_TYPE EventType, - IN BOOLEAN InitialState -); - -NTSYSAPI -NTSTATUS -NTAPI -ZwCreateEventPair( - OUT PHANDLE EventPairHandle, - IN ACCESS_MASK DesiredAccess, - IN POBJECT_ATTRIBUTES ObjectAttributes -); - -NTSYSAPI -NTSTATUS -NTAPI -ZwCreateMutant( - OUT PHANDLE MutantHandle, - IN ACCESS_MASK DesiredAccess, - IN POBJECT_ATTRIBUTES ObjectAttributes, - IN BOOLEAN InitialOwner -); - -NTSYSAPI -NTSTATUS -NTAPI -ZwCreateSemaphore( - OUT PHANDLE SemaphoreHandle, - IN ACCESS_MASK DesiredAccess, - IN POBJECT_ATTRIBUTES ObjectAttributes OPTIONAL, - IN LONG InitialCount, - IN LONG MaximumCount -); - -#ifdef NTOS_MODE_USER -NTSYSAPI -NTSTATUS -NTAPI -ZwCreateTimer( - OUT PHANDLE TimerHandle, - IN ACCESS_MASK DesiredAccess, - IN POBJECT_ATTRIBUTES ObjectAttributes OPTIONAL, - IN TIMER_TYPE TimerType -); -#endif - -NTSYSAPI -NTSTATUS -NTAPI -ZwDeleteAtom( - IN RTL_ATOM Atom -); - -NTSYSAPI -NTSTATUS -NTAPI -ZwDisplayString( - IN PUNICODE_STRING DisplayString -); - -NTSYSAPI -NTSTATUS -NTAPI -ZwFindAtom( - IN PWSTR AtomName, - IN ULONG AtomNameLength, - OUT PRTL_ATOM Atom OPTIONAL -); - -NTSYSAPI -NTSTATUS -NTAPI -ZwOpenEvent( - OUT PHANDLE EventHandle, - IN ACCESS_MASK DesiredAccess, - IN POBJECT_ATTRIBUTES ObjectAttributes -); - -NTSYSAPI -NTSTATUS -NTAPI -ZwOpenEventPair( - OUT PHANDLE EventPairHandle, - IN ACCESS_MASK DesiredAccess, - IN POBJECT_ATTRIBUTES ObjectAttributes -); - -NTSYSAPI -NTSTATUS -NTAPI -ZwOpenMutant( - OUT PHANDLE MutantHandle, - IN ACCESS_MASK DesiredAccess, - IN POBJECT_ATTRIBUTES ObjectAttributes -); - -NTSYSAPI -NTSTATUS -NTAPI -ZwOpenSemaphore( - OUT PHANDLE SemaphoreHandle, - IN ACCESS_MASK DesiredAcces, - IN POBJECT_ATTRIBUTES ObjectAttributes -); - -#ifdef NTOS_MODE_USER -NTSYSAPI -NTSTATUS -NTAPI -ZwOpenTimer( - OUT PHANDLE TimerHandle, - IN ACCESS_MASK DesiredAccess, - IN POBJECT_ATTRIBUTES ObjectAttributes -); -#endif - -NTSYSAPI -NTSTATUS -NTAPI -ZwPulseEvent( - IN HANDLE EventHandle, - IN PLONG PulseCount OPTIONAL -); - -NTSYSAPI -NTSTATUS -NTAPI -ZwQueryDefaultLocale( - IN BOOLEAN UserProfile, - OUT PLCID DefaultLocaleId -); - -NTSYSAPI -NTSTATUS -NTAPI -ZwQueryDefaultUILanguage( - PLANGID LanguageId -); - -NTSYSAPI -NTSTATUS -NTAPI -ZwQueryEvent( - IN HANDLE EventHandle, - IN EVENT_INFORMATION_CLASS EventInformationClass, - OUT PVOID EventInformation, - IN ULONG EventInformationLength, - OUT PULONG ReturnLength -); - -NTSYSAPI -NTSTATUS -NTAPI -ZwQueryInformationAtom( - IN RTL_ATOM Atom, - IN ATOM_INFORMATION_CLASS AtomInformationClass, - OUT PVOID AtomInformation, - IN ULONG AtomInformationLength, - OUT PULONG ReturnLength OPTIONAL -); - -NTSYSAPI -NTSTATUS -NTAPI -ZwQueryInstallUILanguage( - PLANGID LanguageId -); - -NTSYSAPI -NTSTATUS -NTAPI -ZwQueryMutant( - IN HANDLE MutantHandle, - IN MUTANT_INFORMATION_CLASS MutantInformationClass, - OUT PVOID MutantInformation, - IN ULONG Length, - OUT PULONG ResultLength -); - -NTSYSAPI -NTSTATUS -NTAPI -ZwQuerySemaphore( - IN HANDLE SemaphoreHandle, - IN SEMAPHORE_INFORMATION_CLASS SemaphoreInformationClass, - OUT PVOID SemaphoreInformation, - IN ULONG Length, - OUT PULONG ReturnLength -); - -NTSYSAPI -NTSTATUS -NTAPI -ZwQuerySystemEnvironmentValue( - IN PUNICODE_STRING Name, - OUT PWSTR Value, - ULONG Length, - PULONG ReturnLength -); - -NTSYSAPI -NTSTATUS -NTAPI -ZwQuerySystemInformation( - IN SYSTEM_INFORMATION_CLASS SystemInformationClass, - OUT PVOID SystemInformation, - IN ULONG Length, - OUT PULONG ResultLength -); - -NTSYSAPI -NTSTATUS -NTAPI -ZwQueryTimer( - IN HANDLE TimerHandle, - IN TIMER_INFORMATION_CLASS TimerInformationClass, - OUT PVOID TimerInformation, - IN ULONG Length, - OUT PULONG ResultLength -); - -NTSYSAPI -NTSTATUS -NTAPI -ZwRaiseHardError( - IN NTSTATUS ErrorStatus, - IN ULONG NumberOfParameters, - IN ULONG UnicodeStringParameterMask, - IN PULONG_PTR Parameters, - IN ULONG ValidResponseOptions, - OUT PULONG Response -); - -NTSYSAPI -NTSTATUS -NTAPI -ZwReleaseMutant( - IN HANDLE MutantHandle, - IN PLONG ReleaseCount OPTIONAL -); - -NTSYSAPI -NTSTATUS -NTAPI -ZwReleaseSemaphore( - IN HANDLE SemaphoreHandle, - IN LONG ReleaseCount, - OUT PLONG PreviousCount -); - -NTSYSAPI -NTSTATUS -NTAPI -ZwResetEvent( - IN HANDLE EventHandle, - OUT PLONG NumberOfWaitingThreads OPTIONAL -); - -NTSYSAPI -NTSTATUS -NTAPI -ZwSetDefaultLocale( - IN BOOLEAN UserProfile, - IN LCID DefaultLocaleId -); - -NTSYSAPI -NTSTATUS -NTAPI -ZwSetDefaultUILanguage( - LANGID LanguageId -); - -NTSYSAPI -NTSTATUS -NTAPI -ZwSetDefaultHardErrorPort( - IN HANDLE PortHandle -); - -NTSYSAPI -NTSTATUS -NTAPI -ZwSetEvent( - IN HANDLE EventHandle, - OUT PLONG PreviousState OPTIONAL -); - -NTSYSAPI -NTSTATUS -NTAPI -ZwSetHighEventPair( - IN HANDLE EventPairHandle -); - -NTSYSAPI -NTSTATUS -NTAPI -ZwSetHighWaitLowEventPair( - IN HANDLE EventPairHandle -); - -NTSYSAPI -NTSTATUS -NTAPI -ZwSetLowEventPair( - HANDLE EventPair -); - -NTSYSAPI -NTSTATUS -NTAPI -ZwSetLowWaitHighEventPair( - HANDLE EventPair -); - -NTSYSAPI -NTSTATUS -NTAPI -ZwSetSystemEnvironmentValue( - IN PUNICODE_STRING VariableName, - IN PUNICODE_STRING Value -); - -NTSYSAPI -NTSTATUS -NTAPI -ZwSetSystemInformation( - IN SYSTEM_INFORMATION_CLASS SystemInformationClass, - IN PVOID SystemInformation, - IN ULONG SystemInformationLength -); - -#ifdef NTOS_MODE_USER -NTSYSAPI -NTSTATUS -NTAPI -ZwSetTimer( - IN HANDLE TimerHandle, - IN PLARGE_INTEGER DueTime, - IN PTIMER_APC_ROUTINE TimerApcRoutine, - IN PVOID TimerContext, - IN BOOLEAN WakeTimer, - IN LONG Period OPTIONAL, - OUT PBOOLEAN PreviousState OPTIONAL -); -#endif - -NTSYSAPI -NTSTATUS -NTAPI -ZwSetUuidSeed( - IN PUCHAR UuidSeed -); - -NTSYSAPI -NTSTATUS -NTAPI -ZwShutdownSystem( - IN SHUTDOWN_ACTION Action -); - -NTSYSAPI -NTSTATUS -NTAPI -ZwWaitHighEventPair( - IN HANDLE EventPairHandle -); - -NTSYSAPI -NTSTATUS -NTAPI -ZwWaitLowEventPair( - IN HANDLE EventPairHandle -); - -NTSYSAPI -NTSTATUS -NTAPI -ZwTraceEvent( - IN ULONG TraceHandle, - IN ULONG Flags, - IN ULONG TraceHeaderLength, - IN PEVENT_TRACE_HEADER TraceHeader -); -#endif +/*++ NDK Version: 0095 + +Copyright (c) Alex Ionescu. All rights reserved. + +Header Name: + + exfuncs.h + +Abstract: + + Function definitions for the Executive. + +Author: + + Alex Ionescu (alex.ionescu@reactos.com) 06-Oct-2004 + +--*/ + +#ifndef _EXFUNCS_H +#define _EXFUNCS_H + +// +// Dependencies +// +#include +#include +#include + +// +// Don't include WMI headers just for one define +// +typedef struct _EVENT_TRACE_HEADER *PEVENT_TRACE_HEADER; + +#ifndef NTOS_MODE_USER +// +// Fast Mutex functions +// +VOID +FASTCALL +ExEnterCriticalRegionAndAcquireFastMutexUnsafe( + PFAST_MUTEX FastMutex +); + +VOID +FASTCALL +ExReleaseFastMutexUnsafeAndLeaveCriticalRegion( + PFAST_MUTEX FastMutex +); + +// +// Pushlock functions +// +VOID +FASTCALL +ExfAcquirePushLockExclusive( + PEX_PUSH_LOCK PushLock +); + +VOID +FASTCALL +ExfAcquirePushLockShared( + PEX_PUSH_LOCK PushLock +); + +VOID +FASTCALL +ExfReleasePushLock( + PEX_PUSH_LOCK PushLock +); + +VOID +FASTCALL +ExfReleasePushLockExclusive( + PEX_PUSH_LOCK PushLock +); + +VOID +FASTCALL +ExfReleasePushLockShared( + PEX_PUSH_LOCK PushLock +); + +VOID +FASTCALL +ExfTryToWakePushLock( + PEX_PUSH_LOCK PushLock +); + +VOID +FASTCALL +ExfUnblockPushLock( + PEX_PUSH_LOCK PushLock, + PVOID CurrentWaitBlock +); + +#endif + +// +// Native Calls +// +NTSYSCALLAPI +NTSTATUS +NTAPI +NtAddAtom( + IN PWSTR AtomName, + IN ULONG AtomNameLength, + IN OUT PRTL_ATOM Atom +); + +NTSYSCALLAPI +NTSTATUS +NTAPI +NtCancelTimer( + IN HANDLE TimerHandle, + OUT PBOOLEAN CurrentState OPTIONAL +); + +NTSYSCALLAPI +NTSTATUS +NTAPI +NtClearEvent( + IN HANDLE EventHandle +); + +NTSYSCALLAPI +NTSTATUS +NTAPI +NtCreateEvent( + OUT PHANDLE EventHandle, + IN ACCESS_MASK DesiredAccess, + IN POBJECT_ATTRIBUTES ObjectAttributes, + IN EVENT_TYPE EventType, + IN BOOLEAN InitialState +); + +NTSYSCALLAPI +NTSTATUS +NTAPI +NtCreateEventPair( + OUT PHANDLE EventPairHandle, + IN ACCESS_MASK DesiredAccess, + IN POBJECT_ATTRIBUTES ObjectAttributes +); + +NTSYSCALLAPI +NTSTATUS +NTAPI +NtCreateMutant( + OUT PHANDLE MutantHandle, + IN ACCESS_MASK DesiredAccess, + IN POBJECT_ATTRIBUTES ObjectAttributes, + IN BOOLEAN InitialOwner +); + +NTSYSCALLAPI +NTSTATUS +NTAPI +NtCreateSemaphore( + OUT PHANDLE SemaphoreHandle, + IN ACCESS_MASK DesiredAccess, + IN POBJECT_ATTRIBUTES ObjectAttributes OPTIONAL, + IN LONG InitialCount, + IN LONG MaximumCount +); + +NTSYSCALLAPI +NTSTATUS +NTAPI +NtCreateTimer( + OUT PHANDLE TimerHandle, + IN ACCESS_MASK DesiredAccess, + IN POBJECT_ATTRIBUTES ObjectAttributes OPTIONAL, + IN TIMER_TYPE TimerType +); + +NTSYSCALLAPI +NTSTATUS +NTAPI +NtDeleteAtom( + IN RTL_ATOM Atom +); + +NTSYSCALLAPI +NTSTATUS +NTAPI +NtDisplayString( + IN PUNICODE_STRING DisplayString +); + +NTSYSCALLAPI +NTSTATUS +NTAPI +NtFindAtom( + IN PWSTR AtomName, + IN ULONG AtomNameLength, + OUT PRTL_ATOM Atom OPTIONAL +); + +NTSYSCALLAPI +NTSTATUS +NTAPI +NtOpenEvent( + OUT PHANDLE EventHandle, + IN ACCESS_MASK DesiredAccess, + IN POBJECT_ATTRIBUTES ObjectAttributes +); + +NTSYSCALLAPI +NTSTATUS +NTAPI +NtOpenEventPair( + OUT PHANDLE EventPairHandle, + IN ACCESS_MASK DesiredAccess, + IN POBJECT_ATTRIBUTES ObjectAttributes +); + +NTSYSCALLAPI +NTSTATUS +NTAPI +NtOpenMutant( + OUT PHANDLE MutantHandle, + IN ACCESS_MASK DesiredAccess, + IN POBJECT_ATTRIBUTES ObjectAttributes +); + +NTSYSCALLAPI +NTSTATUS +NTAPI +NtOpenSemaphore( + OUT PHANDLE SemaphoreHandle, + IN ACCESS_MASK DesiredAcces, + IN POBJECT_ATTRIBUTES ObjectAttributes +); + +NTSYSCALLAPI +NTSTATUS +NTAPI +NtOpenTimer( + OUT PHANDLE TimerHandle, + IN ACCESS_MASK DesiredAccess, + IN POBJECT_ATTRIBUTES ObjectAttributes +); + +NTSYSCALLAPI +NTSTATUS +NTAPI +NtPulseEvent( + IN HANDLE EventHandle, + IN PLONG PulseCount OPTIONAL +); + +NTSYSCALLAPI +NTSTATUS +NTAPI +NtQueryDefaultLocale( + IN BOOLEAN UserProfile, + OUT PLCID DefaultLocaleId +); + +NTSYSCALLAPI +NTSTATUS +NTAPI +NtQueryDefaultUILanguage( + PLANGID LanguageId +); + +NTSYSCALLAPI +NTSTATUS +NTAPI +NtQueryEvent( + IN HANDLE EventHandle, + IN EVENT_INFORMATION_CLASS EventInformationClass, + OUT PVOID EventInformation, + IN ULONG EventInformationLength, + OUT PULONG ReturnLength +); + +NTSYSCALLAPI +NTSTATUS +NTAPI +NtQueryInformationAtom( + IN RTL_ATOM Atom, + IN ATOM_INFORMATION_CLASS AtomInformationClass, + OUT PVOID AtomInformation, + IN ULONG AtomInformationLength, + OUT PULONG ReturnLength OPTIONAL +); + +NTSYSCALLAPI +NTSTATUS +NTAPI +NtQueryInstallUILanguage( + PLANGID LanguageId +); + +NTSYSCALLAPI +NTSTATUS +NTAPI +NtQueryMutant( + IN HANDLE MutantHandle, + IN MUTANT_INFORMATION_CLASS MutantInformationClass, + OUT PVOID MutantInformation, + IN ULONG Length, + OUT PULONG ResultLength +); + +NTSYSCALLAPI +NTSTATUS +NTAPI +NtQuerySemaphore( + IN HANDLE SemaphoreHandle, + IN SEMAPHORE_INFORMATION_CLASS SemaphoreInformationClass, + OUT PVOID SemaphoreInformation, + IN ULONG Length, + OUT PULONG ReturnLength +); + +NTSYSCALLAPI +NTSTATUS +NTAPI +NtQuerySystemEnvironmentValue( + IN PUNICODE_STRING Name, + OUT PWSTR Value, + ULONG Length, + PULONG ReturnLength +); + +NTSYSCALLAPI +NTSTATUS +NTAPI +NtQuerySystemInformation( + IN SYSTEM_INFORMATION_CLASS SystemInformationClass, + OUT PVOID SystemInformation, + IN ULONG Length, + OUT PULONG ResultLength +); + +NTSYSCALLAPI +NTSTATUS +NTAPI +NtQueryTimer( + IN HANDLE TimerHandle, + IN TIMER_INFORMATION_CLASS TimerInformationClass, + OUT PVOID TimerInformation, + IN ULONG Length, + OUT PULONG ResultLength +); + +NTSYSCALLAPI +NTSTATUS +NTAPI +NtRaiseHardError( + IN NTSTATUS ErrorStatus, + IN ULONG NumberOfParameters, + IN ULONG UnicodeStringParameterMask, + IN PULONG_PTR Parameters, + IN ULONG ValidResponseOptions, + OUT PULONG Response +); + +NTSYSCALLAPI +NTSTATUS +NTAPI +NtReleaseMutant( + IN HANDLE MutantHandle, + IN PLONG ReleaseCount OPTIONAL +); + +NTSYSCALLAPI +NTSTATUS +NTAPI +NtReleaseSemaphore( + IN HANDLE SemaphoreHandle, + IN LONG ReleaseCount, + OUT PLONG PreviousCount +); + +NTSYSCALLAPI +NTSTATUS +NTAPI +NtResetEvent( + IN HANDLE EventHandle, + OUT PLONG NumberOfWaitingThreads OPTIONAL +); + +NTSYSCALLAPI +NTSTATUS +NTAPI +NtSetDefaultLocale( + IN BOOLEAN UserProfile, + IN LCID DefaultLocaleId +); + +NTSYSCALLAPI +NTSTATUS +NTAPI +NtSetDefaultUILanguage( + LANGID LanguageId +); + +NTSYSCALLAPI +NTSTATUS +NTAPI +NtSetDefaultHardErrorPort( + IN HANDLE PortHandle +); + +NTSYSCALLAPI +NTSTATUS +NTAPI +NtSetEvent( + IN HANDLE EventHandle, + OUT PLONG PreviousState OPTIONAL +); + +NTSYSCALLAPI +NTSTATUS +NTAPI +NtSetHighEventPair( + IN HANDLE EventPairHandle +); + +NTSYSCALLAPI +NTSTATUS +NTAPI +NtSetHighWaitLowEventPair( + IN HANDLE EventPairHandle +); + +NTSYSCALLAPI +NTSTATUS +NTAPI +NtSetLowEventPair( + HANDLE EventPair +); + +NTSYSCALLAPI +NTSTATUS +NTAPI +NtSetLowWaitHighEventPair( + HANDLE EventPair +); + +NTSYSCALLAPI +NTSTATUS +NTAPI +NtSetSystemEnvironmentValue( + IN PUNICODE_STRING VariableName, + IN PUNICODE_STRING Value +); + +NTSYSCALLAPI +NTSTATUS +NTAPI +NtSetSystemInformation( + IN SYSTEM_INFORMATION_CLASS SystemInformationClass, + IN PVOID SystemInformation, + IN ULONG SystemInformationLength +); + +NTSYSCALLAPI +NTSTATUS +NTAPI +NtSetTimer( + IN HANDLE TimerHandle, + IN PLARGE_INTEGER DueTime, + IN PTIMER_APC_ROUTINE TimerApcRoutine, + IN PVOID TimerContext, + IN BOOLEAN WakeTimer, + IN LONG Period OPTIONAL, + OUT PBOOLEAN PreviousState OPTIONAL +); + +NTSYSCALLAPI +NTSTATUS +NTAPI +NtSetUuidSeed( + IN PUCHAR UuidSeed +); + +NTSYSCALLAPI +NTSTATUS +NTAPI +NtShutdownSystem( + IN SHUTDOWN_ACTION Action +); + +NTSYSCALLAPI +NTSTATUS +NTAPI +NtWaitHighEventPair( + IN HANDLE EventPairHandle +); + +NTSYSCALLAPI +NTSTATUS +NTAPI +NtWaitLowEventPair( + IN HANDLE EventPairHandle +); + +NTSYSCALLAPI +NTSTATUS +NTAPI +NtTraceEvent( + IN ULONG TraceHandle, + IN ULONG Flags, + IN ULONG TraceHeaderLength, + IN PEVENT_TRACE_HEADER TraceHeader +); + +NTSYSAPI +NTSTATUS +NTAPI +ZwAddAtom( + IN PWSTR AtomName, + IN ULONG AtomNameLength, + IN OUT PRTL_ATOM Atom +); + +#ifdef NTOS_MODE_USER +NTSYSAPI +NTSTATUS +NTAPI +ZwCancelTimer( + IN HANDLE TimerHandle, + OUT PBOOLEAN CurrentState OPTIONAL +); +#endif + +NTSYSAPI +NTSTATUS +NTAPI +ZwClearEvent( + IN HANDLE EventHandle +); + +NTSYSAPI +NTSYSAPI +NTSTATUS +NTAPI +ZwCreateEvent( + OUT PHANDLE EventHandle, + IN ACCESS_MASK DesiredAccess, + IN POBJECT_ATTRIBUTES ObjectAttributes, + IN EVENT_TYPE EventType, + IN BOOLEAN InitialState +); + +NTSYSAPI +NTSTATUS +NTAPI +ZwCreateEventPair( + OUT PHANDLE EventPairHandle, + IN ACCESS_MASK DesiredAccess, + IN POBJECT_ATTRIBUTES ObjectAttributes +); + +NTSYSAPI +NTSTATUS +NTAPI +ZwCreateMutant( + OUT PHANDLE MutantHandle, + IN ACCESS_MASK DesiredAccess, + IN POBJECT_ATTRIBUTES ObjectAttributes, + IN BOOLEAN InitialOwner +); + +NTSYSAPI +NTSTATUS +NTAPI +ZwCreateSemaphore( + OUT PHANDLE SemaphoreHandle, + IN ACCESS_MASK DesiredAccess, + IN POBJECT_ATTRIBUTES ObjectAttributes OPTIONAL, + IN LONG InitialCount, + IN LONG MaximumCount +); + +#ifdef NTOS_MODE_USER +NTSYSAPI +NTSTATUS +NTAPI +ZwCreateTimer( + OUT PHANDLE TimerHandle, + IN ACCESS_MASK DesiredAccess, + IN POBJECT_ATTRIBUTES ObjectAttributes OPTIONAL, + IN TIMER_TYPE TimerType +); +#endif + +NTSYSAPI +NTSTATUS +NTAPI +ZwDeleteAtom( + IN RTL_ATOM Atom +); + +NTSYSAPI +NTSTATUS +NTAPI +ZwDisplayString( + IN PUNICODE_STRING DisplayString +); + +NTSYSAPI +NTSTATUS +NTAPI +ZwFindAtom( + IN PWSTR AtomName, + IN ULONG AtomNameLength, + OUT PRTL_ATOM Atom OPTIONAL +); + +NTSYSAPI +NTSTATUS +NTAPI +ZwOpenEvent( + OUT PHANDLE EventHandle, + IN ACCESS_MASK DesiredAccess, + IN POBJECT_ATTRIBUTES ObjectAttributes +); + +NTSYSAPI +NTSTATUS +NTAPI +ZwOpenEventPair( + OUT PHANDLE EventPairHandle, + IN ACCESS_MASK DesiredAccess, + IN POBJECT_ATTRIBUTES ObjectAttributes +); + +NTSYSAPI +NTSTATUS +NTAPI +ZwOpenMutant( + OUT PHANDLE MutantHandle, + IN ACCESS_MASK DesiredAccess, + IN POBJECT_ATTRIBUTES ObjectAttributes +); + +NTSYSAPI +NTSTATUS +NTAPI +ZwOpenSemaphore( + OUT PHANDLE SemaphoreHandle, + IN ACCESS_MASK DesiredAcces, + IN POBJECT_ATTRIBUTES ObjectAttributes +); + +#ifdef NTOS_MODE_USER +NTSYSAPI +NTSTATUS +NTAPI +ZwOpenTimer( + OUT PHANDLE TimerHandle, + IN ACCESS_MASK DesiredAccess, + IN POBJECT_ATTRIBUTES ObjectAttributes +); +#endif + +NTSYSAPI +NTSTATUS +NTAPI +ZwPulseEvent( + IN HANDLE EventHandle, + IN PLONG PulseCount OPTIONAL +); + +NTSYSAPI +NTSTATUS +NTAPI +ZwQueryDefaultLocale( + IN BOOLEAN UserProfile, + OUT PLCID DefaultLocaleId +); + +NTSYSAPI +NTSTATUS +NTAPI +ZwQueryDefaultUILanguage( + PLANGID LanguageId +); + +NTSYSAPI +NTSTATUS +NTAPI +ZwQueryEvent( + IN HANDLE EventHandle, + IN EVENT_INFORMATION_CLASS EventInformationClass, + OUT PVOID EventInformation, + IN ULONG EventInformationLength, + OUT PULONG ReturnLength +); + +NTSYSAPI +NTSTATUS +NTAPI +ZwQueryInformationAtom( + IN RTL_ATOM Atom, + IN ATOM_INFORMATION_CLASS AtomInformationClass, + OUT PVOID AtomInformation, + IN ULONG AtomInformationLength, + OUT PULONG ReturnLength OPTIONAL +); + +NTSYSAPI +NTSTATUS +NTAPI +ZwQueryInstallUILanguage( + PLANGID LanguageId +); + +NTSYSAPI +NTSTATUS +NTAPI +ZwQueryMutant( + IN HANDLE MutantHandle, + IN MUTANT_INFORMATION_CLASS MutantInformationClass, + OUT PVOID MutantInformation, + IN ULONG Length, + OUT PULONG ResultLength +); + +NTSYSAPI +NTSTATUS +NTAPI +ZwQuerySemaphore( + IN HANDLE SemaphoreHandle, + IN SEMAPHORE_INFORMATION_CLASS SemaphoreInformationClass, + OUT PVOID SemaphoreInformation, + IN ULONG Length, + OUT PULONG ReturnLength +); + +NTSYSAPI +NTSTATUS +NTAPI +ZwQuerySystemEnvironmentValue( + IN PUNICODE_STRING Name, + OUT PWSTR Value, + ULONG Length, + PULONG ReturnLength +); + +NTSYSAPI +NTSTATUS +NTAPI +ZwQuerySystemInformation( + IN SYSTEM_INFORMATION_CLASS SystemInformationClass, + OUT PVOID SystemInformation, + IN ULONG Length, + OUT PULONG ResultLength +); + +NTSYSAPI +NTSTATUS +NTAPI +ZwQueryTimer( + IN HANDLE TimerHandle, + IN TIMER_INFORMATION_CLASS TimerInformationClass, + OUT PVOID TimerInformation, + IN ULONG Length, + OUT PULONG ResultLength +); + +NTSYSAPI +NTSTATUS +NTAPI +ZwRaiseHardError( + IN NTSTATUS ErrorStatus, + IN ULONG NumberOfParameters, + IN ULONG UnicodeStringParameterMask, + IN PULONG_PTR Parameters, + IN ULONG ValidResponseOptions, + OUT PULONG Response +); + +NTSYSAPI +NTSTATUS +NTAPI +ZwReleaseMutant( + IN HANDLE MutantHandle, + IN PLONG ReleaseCount OPTIONAL +); + +NTSYSAPI +NTSTATUS +NTAPI +ZwReleaseSemaphore( + IN HANDLE SemaphoreHandle, + IN LONG ReleaseCount, + OUT PLONG PreviousCount +); + +NTSYSAPI +NTSTATUS +NTAPI +ZwResetEvent( + IN HANDLE EventHandle, + OUT PLONG NumberOfWaitingThreads OPTIONAL +); + +NTSYSAPI +NTSTATUS +NTAPI +ZwSetDefaultLocale( + IN BOOLEAN UserProfile, + IN LCID DefaultLocaleId +); + +NTSYSAPI +NTSTATUS +NTAPI +ZwSetDefaultUILanguage( + LANGID LanguageId +); + +NTSYSAPI +NTSTATUS +NTAPI +ZwSetDefaultHardErrorPort( + IN HANDLE PortHandle +); + +NTSYSAPI +NTSTATUS +NTAPI +ZwSetEvent( + IN HANDLE EventHandle, + OUT PLONG PreviousState OPTIONAL +); + +NTSYSAPI +NTSTATUS +NTAPI +ZwSetHighEventPair( + IN HANDLE EventPairHandle +); + +NTSYSAPI +NTSTATUS +NTAPI +ZwSetHighWaitLowEventPair( + IN HANDLE EventPairHandle +); + +NTSYSAPI +NTSTATUS +NTAPI +ZwSetLowEventPair( + HANDLE EventPair +); + +NTSYSAPI +NTSTATUS +NTAPI +ZwSetLowWaitHighEventPair( + HANDLE EventPair +); + +NTSYSAPI +NTSTATUS +NTAPI +ZwSetSystemEnvironmentValue( + IN PUNICODE_STRING VariableName, + IN PUNICODE_STRING Value +); + +NTSYSAPI +NTSTATUS +NTAPI +ZwSetSystemInformation( + IN SYSTEM_INFORMATION_CLASS SystemInformationClass, + IN PVOID SystemInformation, + IN ULONG SystemInformationLength +); + +#ifdef NTOS_MODE_USER +NTSYSAPI +NTSTATUS +NTAPI +ZwSetTimer( + IN HANDLE TimerHandle, + IN PLARGE_INTEGER DueTime, + IN PTIMER_APC_ROUTINE TimerApcRoutine, + IN PVOID TimerContext, + IN BOOLEAN WakeTimer, + IN LONG Period OPTIONAL, + OUT PBOOLEAN PreviousState OPTIONAL +); +#endif + +NTSYSAPI +NTSTATUS +NTAPI +ZwSetUuidSeed( + IN PUCHAR UuidSeed +); + +NTSYSAPI +NTSTATUS +NTAPI +ZwShutdownSystem( + IN SHUTDOWN_ACTION Action +); + +NTSYSAPI +NTSTATUS +NTAPI +ZwWaitHighEventPair( + IN HANDLE EventPairHandle +); + +NTSYSAPI +NTSTATUS +NTAPI +ZwWaitLowEventPair( + IN HANDLE EventPairHandle +); + +NTSYSAPI +NTSTATUS +NTAPI +ZwTraceEvent( + IN ULONG TraceHandle, + IN ULONG Flags, + IN ULONG TraceHeaderLength, + IN PEVENT_TRACE_HEADER TraceHeader +); +#endif diff --git a/reactos/include/ndk/fixmes.txt b/reactos/include/ndk/fixmes.txt index 642c75e970f..3f5c0b87467 100644 --- a/reactos/include/ndk/fixmes.txt +++ b/reactos/include/ndk/fixmes.txt @@ -1,88 +1,88 @@ -List of ReactOS Applications compiling with the NDK -(verify, fix, and optimize their usage) --------------------------------------------------------------- - -apps\utils\ps\ps.c: #include -drivers\dd\blue\blue.c: #include -drivers\dd\bootvid\bootvid.c: #include -drivers\storage\diskdump\diskdump.c: #include -drivers\storage\diskdump\diskdump.c: #include -hal\hal\hal.c: #include -hal\hal\hal.c: #include -lib\crt\except\unwind.c: #include -lib\crt\except\unwind.c: #include -lib\crt\except\unwind.c: #include -lib\dnsapi\dnsapi\stubs.c: #include -lib\epsapi\enum\drivers.c: #include -lib\epsapi\enum\modules.c: #include -lib\epsapi\enum\processes.c: #include -lib\lsasrv\lsaport.c: #include -lib\lsasrv\lsasrv.c: #include -lib\nt\entry_point.c: #include -lib\samlib\samlib.c: #include -lib\samsrv\samsrv.c: #include -lib\smdll\query.c: #include -lib\string\mbstowcs.c: #include -lib\string\mbstowcs.c: #include -lib\string\sscanf.c: #include -lib\string\sscanf.c: #include -lib\string\wcstombs.c: #include -lib\string\wcstombs.c: #include -lib\syssetup\install.c: #include -lib\syssetup\logfile.c: #include -lib\wdmguid\wdmguid.c: #include -regtests\shared\regtests.c: #include -services\umpnpmgr\umpnpmgr.c: #include -subsys\ntvdm\ntvdm.c: #include -subsys\system\autochk\autochk.c: #include -subsys\system\lsass\lsass.c: #include -subsys\system\setup\setup.c: #include -subsys\system\sm\sm.c: #include -boot\freeldr\freeldr\include\freeldr.h: #include -drivers\fs\ms\msfs.h: #include -drivers\fs\np\npfs.h: #include -drivers\fs\vfat\vfat.h: #include -drivers\net\ndis\include\ndissys.h: #include -drivers\net\tcpip\include\precomp.h: #include -drivers\video\miniport\xboxvmp\xboxvmp.h: #include -drivers\video\videoprt\videoprt.h: #include -hal\halx86\include\hal.h: #include -include\drivers\diskdump\diskdump.h: #include -lib\advapi32\advapi32.h: #include -lib\crt\precomp.h: #include -lib\dbghelp\stackframe.h: #include -lib\dbghelp\stackframe.h: #include -lib\dbghelp\stackframe.h: #include -lib\dnsapi\dnsapi\precomp.h: #include -lib\fmifs\precomp.h: #include -lib\fslib\vfatlib\vfatlib.h: #include -lib\fslib\vfatxlib\vfatxlib.h: #include -lib\gdi32\include\precomp.h: #include -lib\imagehlp\precomp.h: #include -lib\imagehlp\precomp.h: #include -lib\iphlpapi\iphlpapi_private.h: #include -lib\kernel32\k32.h: #include -lib\msafd\msafd.h: #include -lib\ntdll\inc\ntdll.h: #include -lib\opengl32\teb.h: #include -lib\psapi\precomp.h: #include -lib\rtl\rtl.h: #include -lib\secur32\precomp.h: #include -lib\setupapi\setupapi_private.h: #include -lib\smlib\precomp.h: #include -lib\user32\include\user32.h: #include -lib\userenv\precomp.h: #include -lib\wshirda\wshirda.h: #include -ntoskrnl\include\ntoskrnl.h: #include -ntoskrnl\include\internal\napi.h: #include -services\dhcp\include\rosdhcp.h: #include -services\eventlog\eventlog.h: #include -services\rpcss\rpcss.h: #include -subsys\csrss\csrss.h: #include -subsys\csrss\include\api.h: #include -subsys\csrss\win32csr\w32csr.h: #include -subsys\smss\smss.h: #include -subsys\system\cmd\precomp.h: #include -subsys\system\services\services.h: #include -subsys\system\taskmgr\precomp.h: #include -subsys\system\usetup\usetup.h: #include +List of ReactOS Applications compiling with the NDK +(verify, fix, and optimize their usage) +-------------------------------------------------------------- + +apps\utils\ps\ps.c: #include +drivers\dd\blue\blue.c: #include +drivers\dd\bootvid\bootvid.c: #include +drivers\storage\diskdump\diskdump.c: #include +drivers\storage\diskdump\diskdump.c: #include +hal\hal\hal.c: #include +hal\hal\hal.c: #include +lib\crt\except\unwind.c: #include +lib\crt\except\unwind.c: #include +lib\crt\except\unwind.c: #include +lib\dnsapi\dnsapi\stubs.c: #include +lib\epsapi\enum\drivers.c: #include +lib\epsapi\enum\modules.c: #include +lib\epsapi\enum\processes.c: #include +lib\lsasrv\lsaport.c: #include +lib\lsasrv\lsasrv.c: #include +lib\nt\entry_point.c: #include +lib\samlib\samlib.c: #include +lib\samsrv\samsrv.c: #include +lib\smdll\query.c: #include +lib\string\mbstowcs.c: #include +lib\string\mbstowcs.c: #include +lib\string\sscanf.c: #include +lib\string\sscanf.c: #include +lib\string\wcstombs.c: #include +lib\string\wcstombs.c: #include +lib\syssetup\install.c: #include +lib\syssetup\logfile.c: #include +lib\wdmguid\wdmguid.c: #include +regtests\shared\regtests.c: #include +services\umpnpmgr\umpnpmgr.c: #include +subsys\ntvdm\ntvdm.c: #include +subsys\system\autochk\autochk.c: #include +subsys\system\lsass\lsass.c: #include +subsys\system\setup\setup.c: #include +subsys\system\sm\sm.c: #include +boot\freeldr\freeldr\include\freeldr.h: #include +drivers\fs\ms\msfs.h: #include +drivers\fs\np\npfs.h: #include +drivers\fs\vfat\vfat.h: #include +drivers\net\ndis\include\ndissys.h: #include +drivers\net\tcpip\include\precomp.h: #include +drivers\video\miniport\xboxvmp\xboxvmp.h: #include +drivers\video\videoprt\videoprt.h: #include +hal\halx86\include\hal.h: #include +include\drivers\diskdump\diskdump.h: #include +lib\advapi32\advapi32.h: #include +lib\crt\precomp.h: #include +lib\dbghelp\stackframe.h: #include +lib\dbghelp\stackframe.h: #include +lib\dbghelp\stackframe.h: #include +lib\dnsapi\dnsapi\precomp.h: #include +lib\fmifs\precomp.h: #include +lib\fslib\vfatlib\vfatlib.h: #include +lib\fslib\vfatxlib\vfatxlib.h: #include +lib\gdi32\include\precomp.h: #include +lib\imagehlp\precomp.h: #include +lib\imagehlp\precomp.h: #include +lib\iphlpapi\iphlpapi_private.h: #include +lib\kernel32\k32.h: #include +lib\msafd\msafd.h: #include +lib\ntdll\inc\ntdll.h: #include +lib\opengl32\teb.h: #include +lib\psapi\precomp.h: #include +lib\rtl\rtl.h: #include +lib\secur32\precomp.h: #include +lib\setupapi\setupapi_private.h: #include +lib\smlib\precomp.h: #include +lib\user32\include\user32.h: #include +lib\userenv\precomp.h: #include +lib\wshirda\wshirda.h: #include +ntoskrnl\include\ntoskrnl.h: #include +ntoskrnl\include\internal\napi.h: #include +services\dhcp\include\rosdhcp.h: #include +services\eventlog\eventlog.h: #include +services\rpcss\rpcss.h: #include +subsys\csrss\csrss.h: #include +subsys\csrss\include\api.h: #include +subsys\csrss\win32csr\w32csr.h: #include +subsys\smss\smss.h: #include +subsys\system\cmd\precomp.h: #include +subsys\system\services\services.h: #include +subsys\system\taskmgr\precomp.h: #include +subsys\system\usetup\usetup.h: #include diff --git a/reactos/include/ndk/ifssupp.h b/reactos/include/ndk/ifssupp.h index fdc43dbae30..3b4f9100a9f 100644 --- a/reactos/include/ndk/ifssupp.h +++ b/reactos/include/ndk/ifssupp.h @@ -1,244 +1,244 @@ -/*++ NDK Version: 0095 - -Copyright (c) Alex Ionescu. All rights reserved. - -Header Name: - - ifssupp.h - -Abstract: - - NDK Support for usage without the IFS. Will be deprecated at WDK Release. - -Author: - - Alex Ionescu (alex.ionescu@reactos.com) 06-Oct-2004 - ---*/ -#ifndef _NTIFS_ -#ifndef NTOS_MODE_USER -#define _NTIFS_ - -#define TOKEN_SOURCE_LENGTH 8 - -typedef enum _TOKEN_TYPE -{ - TokenPrimary = 1, - TokenImpersonation -} TOKEN_TYPE, *PTOKEN_TYPE; - -typedef PVOID PRTL_HEAP_PARAMETERS; -typedef USHORT SECURITY_DESCRIPTOR_CONTROL, *PSECURITY_DESCRIPTOR_CONTROL; - -typedef struct _RTL_SPLAY_LINKS -{ - struct _RTL_SPLAY_LINKS *Parent; - struct _RTL_SPLAY_LINKS *LeftChild; - struct _RTL_SPLAY_LINKS *RightChild; -} RTL_SPLAY_LINKS, *PRTL_SPLAY_LINKS; - -#if defined(USE_LPC6432) -#define LPC_CLIENT_ID CLIENT_ID64 -#define LPC_SIZE_T ULONGLONG -#define LPC_PVOID ULONGLONG -#define LPC_HANDLE ULONGLONG -#else -#define LPC_CLIENT_ID CLIENT_ID -#define LPC_SIZE_T SIZE_T -#define LPC_PVOID PVOID -#define LPC_HANDLE HANDLE -#endif - -typedef struct _PORT_MESSAGE -{ - union - { - struct - { - CSHORT DataLength; - CSHORT TotalLength; - } s1; - ULONG Length; - } u1; - union - { - struct - { - CSHORT Type; - CSHORT DataInfoOffset; - } s2; - ULONG ZeroInit; - } u2; - union - { - LPC_CLIENT_ID ClientId; - double DoNotUseThisField; - }; - ULONG MessageId; - union - { - LPC_SIZE_T ClientViewSize; - ULONG CallbackId; - }; -} PORT_MESSAGE, *PPORT_MESSAGE; - -typedef struct _PORT_VIEW -{ - ULONG Length; - LPC_HANDLE SectionHandle; - ULONG SectionOffset; - LPC_SIZE_T ViewSize; - LPC_PVOID ViewBase; - LPC_PVOID ViewRemoteBase; -} PORT_VIEW, *PPORT_VIEW; - -typedef struct _REMOTE_PORT_VIEW -{ - ULONG Length; - LPC_SIZE_T ViewSize; - LPC_PVOID ViewBase; -} REMOTE_PORT_VIEW, *PREMOTE_PORT_VIEW; - -typedef struct _KAPC_STATE -{ - LIST_ENTRY ApcListHead[2]; - struct _KPROCESS *Process; - BOOLEAN KernelApcInProgress; - BOOLEAN KernelApcPending; - BOOLEAN UserApcPending; -} KAPC_STATE, *PKAPC_STATE, *RESTRICTED_POINTER PRKAPC_STATE; - -typedef struct _KQUEUE -{ - DISPATCHER_HEADER Header; - LIST_ENTRY EntryListHead; - ULONG CurrentCount; - ULONG MaximumCount; - LIST_ENTRY ThreadListHead; -} KQUEUE, *PKQUEUE, *RESTRICTED_POINTER PRKQUEUE; - -typedef struct _ACE_HEADER -{ - UCHAR AceType; - UCHAR AceFlags; - USHORT AceSize; -} ACE_HEADER, *PACE_HEADER; - -typedef enum _RTL_GENERIC_COMPARE_RESULTS -{ - GenericLessThan, - GenericGreaterThan, - GenericEqual -} RTL_GENERIC_COMPARE_RESULTS; - -typedef struct _SID_IDENTIFIER_AUTHORITY -{ - UCHAR Value[6]; -} SID_IDENTIFIER_AUTHORITY, *PSID_IDENTIFIER_AUTHORITY; - -typedef struct _SID_AND_ATTRIBUTES -{ - PSID Sid; - ULONG Attributes; -} SID_AND_ATTRIBUTES, * PSID_AND_ATTRIBUTES; - -typedef struct _TOKEN_SOURCE -{ - CHAR SourceName[TOKEN_SOURCE_LENGTH]; - LUID SourceIdentifier; -} TOKEN_SOURCE, *PTOKEN_SOURCE; - -typedef struct _TOKEN_CONTROL -{ - LUID TokenId; - LUID AuthenticationId; - LUID ModifiedId; - TOKEN_SOURCE TokenSource; -} TOKEN_CONTROL, *PTOKEN_CONTROL; - -typedef struct _SECURITY_CLIENT_CONTEXT -{ - SECURITY_QUALITY_OF_SERVICE SecurityQos; - PACCESS_TOKEN ClientToken; - BOOLEAN DirectlyAccessClientToken; - BOOLEAN DirectAccessEffectiveOnly; - BOOLEAN ServerIsRemote; - TOKEN_CONTROL ClientTokenControl; -} SECURITY_CLIENT_CONTEXT, *PSECURITY_CLIENT_CONTEXT; - -typedef struct _SECURITY_DESCRIPTOR_RELATIVE -{ - UCHAR Revision; - UCHAR Sbz1; - SECURITY_DESCRIPTOR_CONTROL Control; - ULONG Owner; - ULONG Group; - ULONG Sacl; - ULONG Dacl; -} SECURITY_DESCRIPTOR_RELATIVE, *PISECURITY_DESCRIPTOR_RELATIVE; - -typedef struct _TOKEN_GROUPS -{ - ULONG GroupCount; - SID_AND_ATTRIBUTES Groups[ANYSIZE_ARRAY]; -} TOKEN_GROUPS, *PTOKEN_GROUPS; - -typedef struct _TOKEN_PRIVILEGES -{ - ULONG PrivilegeCount; - LUID_AND_ATTRIBUTES Privileges[ANYSIZE_ARRAY]; -} TOKEN_PRIVILEGES, *PTOKEN_PRIVILEGES; - -typedef struct _TOKEN_USER -{ - SID_AND_ATTRIBUTES User; -} TOKEN_USER, *PTOKEN_USER; - -typedef enum _TOKEN_INFORMATION_CLASS -{ - TokenUser = 1, - TokenGroups, - TokenPrivileges, - TokenOwner, - TokenPrimaryGroup, - TokenDefaultDacl, - TokenSource, - TokenType, - TokenImpersonationLevel, - TokenStatistics, - TokenRestrictedSids, - TokenSessionId, - TokenGroupsAndPrivileges, - TokenSessionReference, - TokenSandBoxInert, - TokenAuditPolicy, - TokenOrigin, - TokenElevationType, - TokenLinkedToken, - TokenElevation, - TokenIsRestricted, - TokenAccessInformation, - TokenVirtualization, - TokenIntegrityLevel, - TokenIntegrityLevelDesktop, - TokenMandatoryPolicy, - MaxTokenInfoClass -} TOKEN_INFORMATION_CLASS, *PTOKEN_INFORMATION_CLASS; - -typedef struct _TOKEN_OWNER -{ - PSID Owner; -} TOKEN_OWNER, *PTOKEN_OWNER; - -typedef struct _TOKEN_PRIMARY_GROUP -{ - PSID PrimaryGroup; -} TOKEN_PRIMARY_GROUP, *PTOKEN_PRIMARY_GROUP; - -typedef struct _TOKEN_DEFAULT_DACL -{ - PACL DefaultDacl; -} TOKEN_DEFAULT_DACL, *PTOKEN_DEFAULT_DACL; - -#endif // !NTOS_MODE_USER -#endif // _NTIFS_ +/*++ NDK Version: 0095 + +Copyright (c) Alex Ionescu. All rights reserved. + +Header Name: + + ifssupp.h + +Abstract: + + NDK Support for usage without the IFS. Will be deprecated at WDK Release. + +Author: + + Alex Ionescu (alex.ionescu@reactos.com) 06-Oct-2004 + +--*/ +#ifndef _NTIFS_ +#ifndef NTOS_MODE_USER +#define _NTIFS_ + +#define TOKEN_SOURCE_LENGTH 8 + +typedef enum _TOKEN_TYPE +{ + TokenPrimary = 1, + TokenImpersonation +} TOKEN_TYPE, *PTOKEN_TYPE; + +typedef PVOID PRTL_HEAP_PARAMETERS; +typedef USHORT SECURITY_DESCRIPTOR_CONTROL, *PSECURITY_DESCRIPTOR_CONTROL; + +typedef struct _RTL_SPLAY_LINKS +{ + struct _RTL_SPLAY_LINKS *Parent; + struct _RTL_SPLAY_LINKS *LeftChild; + struct _RTL_SPLAY_LINKS *RightChild; +} RTL_SPLAY_LINKS, *PRTL_SPLAY_LINKS; + +#if defined(USE_LPC6432) +#define LPC_CLIENT_ID CLIENT_ID64 +#define LPC_SIZE_T ULONGLONG +#define LPC_PVOID ULONGLONG +#define LPC_HANDLE ULONGLONG +#else +#define LPC_CLIENT_ID CLIENT_ID +#define LPC_SIZE_T SIZE_T +#define LPC_PVOID PVOID +#define LPC_HANDLE HANDLE +#endif + +typedef struct _PORT_MESSAGE +{ + union + { + struct + { + CSHORT DataLength; + CSHORT TotalLength; + } s1; + ULONG Length; + } u1; + union + { + struct + { + CSHORT Type; + CSHORT DataInfoOffset; + } s2; + ULONG ZeroInit; + } u2; + union + { + LPC_CLIENT_ID ClientId; + double DoNotUseThisField; + }; + ULONG MessageId; + union + { + LPC_SIZE_T ClientViewSize; + ULONG CallbackId; + }; +} PORT_MESSAGE, *PPORT_MESSAGE; + +typedef struct _PORT_VIEW +{ + ULONG Length; + LPC_HANDLE SectionHandle; + ULONG SectionOffset; + LPC_SIZE_T ViewSize; + LPC_PVOID ViewBase; + LPC_PVOID ViewRemoteBase; +} PORT_VIEW, *PPORT_VIEW; + +typedef struct _REMOTE_PORT_VIEW +{ + ULONG Length; + LPC_SIZE_T ViewSize; + LPC_PVOID ViewBase; +} REMOTE_PORT_VIEW, *PREMOTE_PORT_VIEW; + +typedef struct _KAPC_STATE +{ + LIST_ENTRY ApcListHead[2]; + struct _KPROCESS *Process; + BOOLEAN KernelApcInProgress; + BOOLEAN KernelApcPending; + BOOLEAN UserApcPending; +} KAPC_STATE, *PKAPC_STATE, *RESTRICTED_POINTER PRKAPC_STATE; + +typedef struct _KQUEUE +{ + DISPATCHER_HEADER Header; + LIST_ENTRY EntryListHead; + ULONG CurrentCount; + ULONG MaximumCount; + LIST_ENTRY ThreadListHead; +} KQUEUE, *PKQUEUE, *RESTRICTED_POINTER PRKQUEUE; + +typedef struct _ACE_HEADER +{ + UCHAR AceType; + UCHAR AceFlags; + USHORT AceSize; +} ACE_HEADER, *PACE_HEADER; + +typedef enum _RTL_GENERIC_COMPARE_RESULTS +{ + GenericLessThan, + GenericGreaterThan, + GenericEqual +} RTL_GENERIC_COMPARE_RESULTS; + +typedef struct _SID_IDENTIFIER_AUTHORITY +{ + UCHAR Value[6]; +} SID_IDENTIFIER_AUTHORITY, *PSID_IDENTIFIER_AUTHORITY; + +typedef struct _SID_AND_ATTRIBUTES +{ + PSID Sid; + ULONG Attributes; +} SID_AND_ATTRIBUTES, * PSID_AND_ATTRIBUTES; + +typedef struct _TOKEN_SOURCE +{ + CHAR SourceName[TOKEN_SOURCE_LENGTH]; + LUID SourceIdentifier; +} TOKEN_SOURCE, *PTOKEN_SOURCE; + +typedef struct _TOKEN_CONTROL +{ + LUID TokenId; + LUID AuthenticationId; + LUID ModifiedId; + TOKEN_SOURCE TokenSource; +} TOKEN_CONTROL, *PTOKEN_CONTROL; + +typedef struct _SECURITY_CLIENT_CONTEXT +{ + SECURITY_QUALITY_OF_SERVICE SecurityQos; + PACCESS_TOKEN ClientToken; + BOOLEAN DirectlyAccessClientToken; + BOOLEAN DirectAccessEffectiveOnly; + BOOLEAN ServerIsRemote; + TOKEN_CONTROL ClientTokenControl; +} SECURITY_CLIENT_CONTEXT, *PSECURITY_CLIENT_CONTEXT; + +typedef struct _SECURITY_DESCRIPTOR_RELATIVE +{ + UCHAR Revision; + UCHAR Sbz1; + SECURITY_DESCRIPTOR_CONTROL Control; + ULONG Owner; + ULONG Group; + ULONG Sacl; + ULONG Dacl; +} SECURITY_DESCRIPTOR_RELATIVE, *PISECURITY_DESCRIPTOR_RELATIVE; + +typedef struct _TOKEN_GROUPS +{ + ULONG GroupCount; + SID_AND_ATTRIBUTES Groups[ANYSIZE_ARRAY]; +} TOKEN_GROUPS, *PTOKEN_GROUPS; + +typedef struct _TOKEN_PRIVILEGES +{ + ULONG PrivilegeCount; + LUID_AND_ATTRIBUTES Privileges[ANYSIZE_ARRAY]; +} TOKEN_PRIVILEGES, *PTOKEN_PRIVILEGES; + +typedef struct _TOKEN_USER +{ + SID_AND_ATTRIBUTES User; +} TOKEN_USER, *PTOKEN_USER; + +typedef enum _TOKEN_INFORMATION_CLASS +{ + TokenUser = 1, + TokenGroups, + TokenPrivileges, + TokenOwner, + TokenPrimaryGroup, + TokenDefaultDacl, + TokenSource, + TokenType, + TokenImpersonationLevel, + TokenStatistics, + TokenRestrictedSids, + TokenSessionId, + TokenGroupsAndPrivileges, + TokenSessionReference, + TokenSandBoxInert, + TokenAuditPolicy, + TokenOrigin, + TokenElevationType, + TokenLinkedToken, + TokenElevation, + TokenIsRestricted, + TokenAccessInformation, + TokenVirtualization, + TokenIntegrityLevel, + TokenIntegrityLevelDesktop, + TokenMandatoryPolicy, + MaxTokenInfoClass +} TOKEN_INFORMATION_CLASS, *PTOKEN_INFORMATION_CLASS; + +typedef struct _TOKEN_OWNER +{ + PSID Owner; +} TOKEN_OWNER, *PTOKEN_OWNER; + +typedef struct _TOKEN_PRIMARY_GROUP +{ + PSID PrimaryGroup; +} TOKEN_PRIMARY_GROUP, *PTOKEN_PRIMARY_GROUP; + +typedef struct _TOKEN_DEFAULT_DACL +{ + PACL DefaultDacl; +} TOKEN_DEFAULT_DACL, *PTOKEN_DEFAULT_DACL; + +#endif // !NTOS_MODE_USER +#endif // _NTIFS_ diff --git a/reactos/include/ndk/lpcfuncs.h b/reactos/include/ndk/lpcfuncs.h index 8e58f6e32eb..d1a6373e330 100644 --- a/reactos/include/ndk/lpcfuncs.h +++ b/reactos/include/ndk/lpcfuncs.h @@ -1,352 +1,352 @@ -/*++ NDK Version: 0095 - -Copyright (c) Alex Ionescu. All rights reserved. - -Header Name: - - lpcfuncs.h - -Abstract: - - Function definitions for the Executive. - -Author: - - Alex Ionescu (alex.ionescu@reactos.com) 06-Oct-2004 - ---*/ - -#ifndef _LPCFUNCS_H -#define _LPCFUNCS_H - -// -// Dependencies -// -#include - -// -// Native calls -// -NTSTATUS -NTAPI -NtAcceptConnectPort( - PHANDLE PortHandle, - PVOID PortContext OPTIONAL, - PPORT_MESSAGE ConnectionRequest, - BOOLEAN AcceptConnection, - PPORT_VIEW ServerView OPTIONAL, - PREMOTE_PORT_VIEW ClientView OPTIONAL -); - -NTSTATUS -NTAPI -NtCompleteConnectPort( - HANDLE PortHandle -); - -NTSYSCALLAPI -NTSTATUS -NTAPI -NtConnectPort( - PHANDLE PortHandle, - PUNICODE_STRING PortName, - PSECURITY_QUALITY_OF_SERVICE SecurityQos, - PPORT_VIEW ClientView OPTIONAL, - PREMOTE_PORT_VIEW ServerView OPTIONAL, - PULONG MaxMessageLength OPTIONAL, - PVOID ConnectionInformation OPTIONAL, - PULONG ConnectionInformationLength OPTIONAL -); - -NTSTATUS -NTAPI -NtCreatePort( - PHANDLE PortHandle, - POBJECT_ATTRIBUTES ObjectAttributes, - ULONG MaxConnectionInfoLength, - ULONG MaxMessageLength, - ULONG MaxPoolUsage -); - -NTSTATUS -NTAPI -NtCreateWaitablePort( - PHANDLE PortHandle, - POBJECT_ATTRIBUTES ObjectAttributes, - ULONG MaxConnectInfoLength, - ULONG MaxDataLength, - ULONG NPMessageQueueSize OPTIONAL -); - -NTSTATUS -NTAPI -NtImpersonateClientOfPort( - HANDLE PortHandle, - PPORT_MESSAGE ClientMessage -); - -NTSTATUS -NTAPI -NtListenPort( - HANDLE PortHandle, - PPORT_MESSAGE ConnectionRequest -); - -NTSTATUS -NTAPI -NtQueryInformationPort( - HANDLE PortHandle, - PORT_INFORMATION_CLASS PortInformationClass, - PVOID PortInformation, - ULONG PortInformationLength, - PULONG ReturnLength -); - -NTSTATUS -NTAPI -NtReadRequestData( - HANDLE PortHandle, - PPORT_MESSAGE Message, - ULONG Index, - PVOID Buffer, - ULONG BufferLength, - PULONG ReturnLength -); - -NTSTATUS -NTAPI -NtReplyPort( - IN HANDLE PortHandle, - IN PPORT_MESSAGE LpcReply -); - -NTSTATUS -NTAPI -NtReplyWaitReceivePort( - IN HANDLE PortHandle, - OUT PVOID *PortContext OPTIONAL, - IN PPORT_MESSAGE ReplyMessage OPTIONAL, - OUT PPORT_MESSAGE ReceiveMessage -); - -NTSTATUS -NTAPI -NtReplyWaitReceivePortEx( - IN HANDLE PortHandle, - OUT PVOID *PortContext OPTIONAL, - IN PPORT_MESSAGE ReplyMessage OPTIONAL, - OUT PPORT_MESSAGE ReceiveMessage, - IN PLARGE_INTEGER Timeout OPTIONAL -); - -NTSTATUS -NTAPI -NtReplyWaitReplyPort( - IN HANDLE PortHandle, - OUT PPORT_MESSAGE ReplyMessage -); - -NTSTATUS -NTAPI -NtRequestPort( - IN HANDLE PortHandle, - IN PPORT_MESSAGE LpcMessage -); - -NTSYSCALLAPI -NTSTATUS -NTAPI -NtRequestWaitReplyPort( - IN HANDLE PortHandle, - OUT PPORT_MESSAGE LpcReply, - IN PPORT_MESSAGE LpcRequest -); - -NTSYSCALLAPI -NTSTATUS -NTAPI -NtSecureConnectPort( - PHANDLE PortHandle, - PUNICODE_STRING PortName, - PSECURITY_QUALITY_OF_SERVICE SecurityQos, - PPORT_VIEW ClientView OPTIONAL, - PSID Sid OPTIONAL, - PREMOTE_PORT_VIEW ServerView OPTIONAL, - PULONG MaxMessageLength OPTIONAL, - PVOID ConnectionInformation OPTIONAL, - PULONG ConnectionInformationLength OPTIONAL -); - -NTSTATUS -NTAPI -NtWriteRequestData( - HANDLE PortHandle, - PPORT_MESSAGE Message, - ULONG Index, - PVOID Buffer, - ULONG BufferLength, - PULONG ReturnLength -); - -NTSTATUS -NTAPI -ZwAcceptConnectPort( - PHANDLE PortHandle, - PVOID PortContext OPTIONAL, - PPORT_MESSAGE ConnectionRequest, - BOOLEAN AcceptConnection, - PPORT_VIEW ServerView OPTIONAL, - PREMOTE_PORT_VIEW ClientView OPTIONAL -); - -NTSTATUS -NTAPI -ZwCompleteConnectPort( - HANDLE PortHandle -); - -NTSYSCALLAPI -NTSTATUS -NTAPI -ZwConnectPort( - PHANDLE PortHandle, - PUNICODE_STRING PortName, - PSECURITY_QUALITY_OF_SERVICE SecurityQos, - PPORT_VIEW ClientView OPTIONAL, - PREMOTE_PORT_VIEW ServerView OPTIONAL, - PULONG MaxMessageLength OPTIONAL, - PVOID ConnectionInformation OPTIONAL, - PULONG ConnectionInformationLength OPTIONAL -); - -NTSTATUS -NTAPI -ZwCreatePort( - PHANDLE PortHandle, - POBJECT_ATTRIBUTES ObjectAttributes, - ULONG MaxConnectionInfoLength, - ULONG MaxMessageLength, - ULONG MaxPoolUsage -); - -NTSTATUS -NTAPI -ZwCreateWaitablePort( - PHANDLE PortHandle, - POBJECT_ATTRIBUTES ObjectAttributes, - ULONG MaxConnectInfoLength, - ULONG MaxDataLength, - ULONG NPMessageQueueSize OPTIONAL -); - -NTSTATUS -NTAPI -ZwImpersonateClientOfPort( - HANDLE PortHandle, - PPORT_MESSAGE ClientMessage -); - -NTSTATUS -NTAPI -ZwListenPort( - HANDLE PortHandle, - PPORT_MESSAGE ConnectionRequest -); - -NTSTATUS -NTAPI -ZwQueryInformationPort( - HANDLE PortHandle, - PORT_INFORMATION_CLASS PortInformationClass, - PVOID PortInformation, - ULONG PortInformationLength, - PULONG ReturnLength -); - -NTSTATUS -NTAPI -ZwReadRequestData( - HANDLE PortHandle, - PPORT_MESSAGE Message, - ULONG Index, - PVOID Buffer, - ULONG BufferLength, - PULONG ReturnLength -); - -NTSTATUS -NTAPI -ZwReplyPort( - IN HANDLE PortHandle, - IN PPORT_MESSAGE LpcReply -); - -NTSTATUS -NTAPI -ZwReplyWaitReceivePort( - IN HANDLE PortHandle, - OUT PVOID *PortContext OPTIONAL, - IN PPORT_MESSAGE ReplyMessage OPTIONAL, - OUT PPORT_MESSAGE ReceiveMessage -); - -NTSTATUS -NTAPI -ZwReplyWaitReceivePortEx( - IN HANDLE PortHandle, - OUT PVOID *PortContext OPTIONAL, - IN PPORT_MESSAGE ReplyMessage OPTIONAL, - OUT PPORT_MESSAGE ReceiveMessage, - IN PLARGE_INTEGER Timeout OPTIONAL -); - -NTSTATUS -NTAPI -ZwReplyWaitReplyPort( - IN HANDLE PortHandle, - OUT PPORT_MESSAGE ReplyMessage -); - -NTSTATUS -NTAPI -ZwRequestPort( - IN HANDLE PortHandle, - IN PPORT_MESSAGE LpcMessage -); - -NTSYSCALLAPI -NTSTATUS -NTAPI -ZwRequestWaitReplyPort( - IN HANDLE PortHandle, - OUT PPORT_MESSAGE LpcReply, - IN PPORT_MESSAGE LpcRequest -); - -NTSYSCALLAPI -NTSTATUS -NTAPI -ZwSecureConnectPort( - PHANDLE PortHandle, - PUNICODE_STRING PortName, - PSECURITY_QUALITY_OF_SERVICE SecurityQos, - PPORT_VIEW ClientView OPTIONAL, - PSID Sid OPTIONAL, - PREMOTE_PORT_VIEW ServerView OPTIONAL, - PULONG MaxMessageLength OPTIONAL, - PVOID ConnectionInformation OPTIONAL, - PULONG ConnectionInformationLength OPTIONAL -); - -NTSTATUS -NTAPI -ZwWriteRequestData( - HANDLE PortHandle, - PPORT_MESSAGE Message, - ULONG Index, - PVOID Buffer, - ULONG BufferLength, - PULONG ReturnLength -); - -#endif +/*++ NDK Version: 0095 + +Copyright (c) Alex Ionescu. All rights reserved. + +Header Name: + + lpcfuncs.h + +Abstract: + + Function definitions for the Executive. + +Author: + + Alex Ionescu (alex.ionescu@reactos.com) 06-Oct-2004 + +--*/ + +#ifndef _LPCFUNCS_H +#define _LPCFUNCS_H + +// +// Dependencies +// +#include + +// +// Native calls +// +NTSTATUS +NTAPI +NtAcceptConnectPort( + PHANDLE PortHandle, + PVOID PortContext OPTIONAL, + PPORT_MESSAGE ConnectionRequest, + BOOLEAN AcceptConnection, + PPORT_VIEW ServerView OPTIONAL, + PREMOTE_PORT_VIEW ClientView OPTIONAL +); + +NTSTATUS +NTAPI +NtCompleteConnectPort( + HANDLE PortHandle +); + +NTSYSCALLAPI +NTSTATUS +NTAPI +NtConnectPort( + PHANDLE PortHandle, + PUNICODE_STRING PortName, + PSECURITY_QUALITY_OF_SERVICE SecurityQos, + PPORT_VIEW ClientView OPTIONAL, + PREMOTE_PORT_VIEW ServerView OPTIONAL, + PULONG MaxMessageLength OPTIONAL, + PVOID ConnectionInformation OPTIONAL, + PULONG ConnectionInformationLength OPTIONAL +); + +NTSTATUS +NTAPI +NtCreatePort( + PHANDLE PortHandle, + POBJECT_ATTRIBUTES ObjectAttributes, + ULONG MaxConnectionInfoLength, + ULONG MaxMessageLength, + ULONG MaxPoolUsage +); + +NTSTATUS +NTAPI +NtCreateWaitablePort( + PHANDLE PortHandle, + POBJECT_ATTRIBUTES ObjectAttributes, + ULONG MaxConnectInfoLength, + ULONG MaxDataLength, + ULONG NPMessageQueueSize OPTIONAL +); + +NTSTATUS +NTAPI +NtImpersonateClientOfPort( + HANDLE PortHandle, + PPORT_MESSAGE ClientMessage +); + +NTSTATUS +NTAPI +NtListenPort( + HANDLE PortHandle, + PPORT_MESSAGE ConnectionRequest +); + +NTSTATUS +NTAPI +NtQueryInformationPort( + HANDLE PortHandle, + PORT_INFORMATION_CLASS PortInformationClass, + PVOID PortInformation, + ULONG PortInformationLength, + PULONG ReturnLength +); + +NTSTATUS +NTAPI +NtReadRequestData( + HANDLE PortHandle, + PPORT_MESSAGE Message, + ULONG Index, + PVOID Buffer, + ULONG BufferLength, + PULONG ReturnLength +); + +NTSTATUS +NTAPI +NtReplyPort( + IN HANDLE PortHandle, + IN PPORT_MESSAGE LpcReply +); + +NTSTATUS +NTAPI +NtReplyWaitReceivePort( + IN HANDLE PortHandle, + OUT PVOID *PortContext OPTIONAL, + IN PPORT_MESSAGE ReplyMessage OPTIONAL, + OUT PPORT_MESSAGE ReceiveMessage +); + +NTSTATUS +NTAPI +NtReplyWaitReceivePortEx( + IN HANDLE PortHandle, + OUT PVOID *PortContext OPTIONAL, + IN PPORT_MESSAGE ReplyMessage OPTIONAL, + OUT PPORT_MESSAGE ReceiveMessage, + IN PLARGE_INTEGER Timeout OPTIONAL +); + +NTSTATUS +NTAPI +NtReplyWaitReplyPort( + IN HANDLE PortHandle, + OUT PPORT_MESSAGE ReplyMessage +); + +NTSTATUS +NTAPI +NtRequestPort( + IN HANDLE PortHandle, + IN PPORT_MESSAGE LpcMessage +); + +NTSYSCALLAPI +NTSTATUS +NTAPI +NtRequestWaitReplyPort( + IN HANDLE PortHandle, + OUT PPORT_MESSAGE LpcReply, + IN PPORT_MESSAGE LpcRequest +); + +NTSYSCALLAPI +NTSTATUS +NTAPI +NtSecureConnectPort( + PHANDLE PortHandle, + PUNICODE_STRING PortName, + PSECURITY_QUALITY_OF_SERVICE SecurityQos, + PPORT_VIEW ClientView OPTIONAL, + PSID Sid OPTIONAL, + PREMOTE_PORT_VIEW ServerView OPTIONAL, + PULONG MaxMessageLength OPTIONAL, + PVOID ConnectionInformation OPTIONAL, + PULONG ConnectionInformationLength OPTIONAL +); + +NTSTATUS +NTAPI +NtWriteRequestData( + HANDLE PortHandle, + PPORT_MESSAGE Message, + ULONG Index, + PVOID Buffer, + ULONG BufferLength, + PULONG ReturnLength +); + +NTSTATUS +NTAPI +ZwAcceptConnectPort( + PHANDLE PortHandle, + PVOID PortContext OPTIONAL, + PPORT_MESSAGE ConnectionRequest, + BOOLEAN AcceptConnection, + PPORT_VIEW ServerView OPTIONAL, + PREMOTE_PORT_VIEW ClientView OPTIONAL +); + +NTSTATUS +NTAPI +ZwCompleteConnectPort( + HANDLE PortHandle +); + +NTSYSCALLAPI +NTSTATUS +NTAPI +ZwConnectPort( + PHANDLE PortHandle, + PUNICODE_STRING PortName, + PSECURITY_QUALITY_OF_SERVICE SecurityQos, + PPORT_VIEW ClientView OPTIONAL, + PREMOTE_PORT_VIEW ServerView OPTIONAL, + PULONG MaxMessageLength OPTIONAL, + PVOID ConnectionInformation OPTIONAL, + PULONG ConnectionInformationLength OPTIONAL +); + +NTSTATUS +NTAPI +ZwCreatePort( + PHANDLE PortHandle, + POBJECT_ATTRIBUTES ObjectAttributes, + ULONG MaxConnectionInfoLength, + ULONG MaxMessageLength, + ULONG MaxPoolUsage +); + +NTSTATUS +NTAPI +ZwCreateWaitablePort( + PHANDLE PortHandle, + POBJECT_ATTRIBUTES ObjectAttributes, + ULONG MaxConnectInfoLength, + ULONG MaxDataLength, + ULONG NPMessageQueueSize OPTIONAL +); + +NTSTATUS +NTAPI +ZwImpersonateClientOfPort( + HANDLE PortHandle, + PPORT_MESSAGE ClientMessage +); + +NTSTATUS +NTAPI +ZwListenPort( + HANDLE PortHandle, + PPORT_MESSAGE ConnectionRequest +); + +NTSTATUS +NTAPI +ZwQueryInformationPort( + HANDLE PortHandle, + PORT_INFORMATION_CLASS PortInformationClass, + PVOID PortInformation, + ULONG PortInformationLength, + PULONG ReturnLength +); + +NTSTATUS +NTAPI +ZwReadRequestData( + HANDLE PortHandle, + PPORT_MESSAGE Message, + ULONG Index, + PVOID Buffer, + ULONG BufferLength, + PULONG ReturnLength +); + +NTSTATUS +NTAPI +ZwReplyPort( + IN HANDLE PortHandle, + IN PPORT_MESSAGE LpcReply +); + +NTSTATUS +NTAPI +ZwReplyWaitReceivePort( + IN HANDLE PortHandle, + OUT PVOID *PortContext OPTIONAL, + IN PPORT_MESSAGE ReplyMessage OPTIONAL, + OUT PPORT_MESSAGE ReceiveMessage +); + +NTSTATUS +NTAPI +ZwReplyWaitReceivePortEx( + IN HANDLE PortHandle, + OUT PVOID *PortContext OPTIONAL, + IN PPORT_MESSAGE ReplyMessage OPTIONAL, + OUT PPORT_MESSAGE ReceiveMessage, + IN PLARGE_INTEGER Timeout OPTIONAL +); + +NTSTATUS +NTAPI +ZwReplyWaitReplyPort( + IN HANDLE PortHandle, + OUT PPORT_MESSAGE ReplyMessage +); + +NTSTATUS +NTAPI +ZwRequestPort( + IN HANDLE PortHandle, + IN PPORT_MESSAGE LpcMessage +); + +NTSYSCALLAPI +NTSTATUS +NTAPI +ZwRequestWaitReplyPort( + IN HANDLE PortHandle, + OUT PPORT_MESSAGE LpcReply, + IN PPORT_MESSAGE LpcRequest +); + +NTSYSCALLAPI +NTSTATUS +NTAPI +ZwSecureConnectPort( + PHANDLE PortHandle, + PUNICODE_STRING PortName, + PSECURITY_QUALITY_OF_SERVICE SecurityQos, + PPORT_VIEW ClientView OPTIONAL, + PSID Sid OPTIONAL, + PREMOTE_PORT_VIEW ServerView OPTIONAL, + PULONG MaxMessageLength OPTIONAL, + PVOID ConnectionInformation OPTIONAL, + PULONG ConnectionInformationLength OPTIONAL +); + +NTSTATUS +NTAPI +ZwWriteRequestData( + HANDLE PortHandle, + PPORT_MESSAGE Message, + ULONG Index, + PVOID Buffer, + ULONG BufferLength, + PULONG ReturnLength +); + +#endif diff --git a/reactos/include/ndk/pofuncs.h b/reactos/include/ndk/pofuncs.h index 7b1192109cf..33ae0d21089 100644 --- a/reactos/include/ndk/pofuncs.h +++ b/reactos/include/ndk/pofuncs.h @@ -1,89 +1,89 @@ -/*++ NDK Version: 0095 - -Copyright (c) Alex Ionescu. All rights reserved. - -Header Name: - - pofuncs.h - -Abstract: - - Function definitions for the Power Subsystem. - -Author: - - Alex Ionescu (alex.ionescu@reactos.com) 06-Oct-2004 - ---*/ - -#ifndef _POFUNCS_H -#define _POFUNCS_H - -// -// Dependencies -// -#include - -// -// Native Calls -// -NTSYSCALLAPI -NTSTATUS -NTAPI -NtInitiatePowerAction( - POWER_ACTION SystemAction, - SYSTEM_POWER_STATE MinSystemState, - ULONG Flags, - BOOLEAN Asynchronous -); - -NTSYSCALLAPI -NTSTATUS -NTAPI -NtPowerInformation( - POWER_INFORMATION_LEVEL PowerInformationLevel, - PVOID InputBuffer, - ULONG InputBufferLength, - PVOID OutputBuffer, - ULONG OutputBufferLength -); - -NTSYSCALLAPI -NTSTATUS -NTAPI -NtSetSystemPowerState( - IN POWER_ACTION SystemAction, - IN SYSTEM_POWER_STATE MinSystemState, - IN ULONG Flags -); - -NTSYSAPI -NTSTATUS -NTAPI -ZwInitiatePowerAction( - POWER_ACTION SystemAction, - SYSTEM_POWER_STATE MinSystemState, - ULONG Flags, - BOOLEAN Asynchronous -); - -NTSYSAPI -NTSTATUS -NTAPI -ZwPowerInformation( - POWER_INFORMATION_LEVEL PowerInformationLevel, - PVOID InputBuffer, - ULONG InputBufferLength, - PVOID OutputBuffer, - ULONG OutputBufferLength -); - -NTSYSAPI -NTSTATUS -NTAPI -ZwSetSystemPowerState( - IN POWER_ACTION SystemAction, - IN SYSTEM_POWER_STATE MinSystemState, - IN ULONG Flags -); -#endif +/*++ NDK Version: 0095 + +Copyright (c) Alex Ionescu. All rights reserved. + +Header Name: + + pofuncs.h + +Abstract: + + Function definitions for the Power Subsystem. + +Author: + + Alex Ionescu (alex.ionescu@reactos.com) 06-Oct-2004 + +--*/ + +#ifndef _POFUNCS_H +#define _POFUNCS_H + +// +// Dependencies +// +#include + +// +// Native Calls +// +NTSYSCALLAPI +NTSTATUS +NTAPI +NtInitiatePowerAction( + POWER_ACTION SystemAction, + SYSTEM_POWER_STATE MinSystemState, + ULONG Flags, + BOOLEAN Asynchronous +); + +NTSYSCALLAPI +NTSTATUS +NTAPI +NtPowerInformation( + POWER_INFORMATION_LEVEL PowerInformationLevel, + PVOID InputBuffer, + ULONG InputBufferLength, + PVOID OutputBuffer, + ULONG OutputBufferLength +); + +NTSYSCALLAPI +NTSTATUS +NTAPI +NtSetSystemPowerState( + IN POWER_ACTION SystemAction, + IN SYSTEM_POWER_STATE MinSystemState, + IN ULONG Flags +); + +NTSYSAPI +NTSTATUS +NTAPI +ZwInitiatePowerAction( + POWER_ACTION SystemAction, + SYSTEM_POWER_STATE MinSystemState, + ULONG Flags, + BOOLEAN Asynchronous +); + +NTSYSAPI +NTSTATUS +NTAPI +ZwPowerInformation( + POWER_INFORMATION_LEVEL PowerInformationLevel, + PVOID InputBuffer, + ULONG InputBufferLength, + PVOID OutputBuffer, + ULONG OutputBufferLength +); + +NTSYSAPI +NTSTATUS +NTAPI +ZwSetSystemPowerState( + IN POWER_ACTION SystemAction, + IN SYSTEM_POWER_STATE MinSystemState, + IN ULONG Flags +); +#endif diff --git a/reactos/include/ndk/readme.txt b/reactos/include/ndk/readme.txt index 57813e35fd3..7caf3bbef40 100644 --- a/reactos/include/ndk/readme.txt +++ b/reactos/include/ndk/readme.txt @@ -1,171 +1,171 @@ -Native Development Kit README - NDK 1.00 ------------------------------ - -0. PREABMLE - -0.1 COPYRIGHT - -The NDK is Copyright © 2005 Alex Ionescu. - -0.2 CONTACT INFORMATION - -The author, Alex Ionescu, may be reached through the following means: - -Email: alex.ionescu@reactos.com -Mail: 2246, Duvernay. H3J 2Y3. Montreal, QC. CANADA. -Phone: (514)581-7156 - -1. LICENSE - -1.1 OPEN SOURCE USAGE - -Open Source Projects may choose to use one of either the two following licenses: - -GNU GENERAL PUBLIC LICENSE Version 2, June 1991 - - OR - -GNU LESSER GENERAL PUBLIC LICENSE Version 2.1, February 1999 - -The choice is yours to make based on the license which is most compatible with your -software. - -You MUST read GPL.TXT or LGPL.TXT after your decision. Violating your chosen license -voids your usage rights of the NDK and will lead to legal action on the part of the -author. - -If your Open Source product does not use a license which is compatible with the ones -listed above, please contact the author to reach a mutual agreement to find a better -solution for your product. Alternatively, you may choose to use the Proprietary Usage -license displayed below in section 1.2 - -If you are unsure of whether or not your product qualifies as an Open Source product, -please contact the Free Software Foundation, or visit their website at www.fsf.org. - - -1.2 PROPRIETARY USAGE - -Because it may be undesirable or impossible to adapt this software to your commercial -and/or proprietary product(s) and/or service(s) using a (L)GPL license, proprietary -products are free to use the following license: - -NDK LICENSE Version 1, November 2005 - -You MUST read NDK.TXT for the full text of this license. Violating your chosen license -voids your usage rights of the NDK, constitutes a copyright violation, and will lead to -legal action on the part of the author. - -If you are unsure of have any questions about the NDK License, please contact the -author for further clarification. - -2. ORIGINS OF NDK MATERIAL, AND ADDING YOUR OWN - -2.1 CONTRIBUTIONS AND SOURCES - -The NDK could not exist without the various contributions made by a variety of people -and sources. The following public sources of information were lawfully used: - -- GNU NTIFS.H, Revision 43 -- W32API, Version 2.5 -- Microsoft Driver Development Kit 2003 SP1 -- Microsoft Driver Development Kit 2000 -- Microsoft Driver Development Kit NT 4 -- Microsoft Driver Development Kit WinME -- Microsoft Installable File Systems Kit 2003 SP1 -- Microsoft Windows Debugger (WinDBG) 6.5.0003.7 -- Microsoft Public Symbolic Data -- Microsoft Public Windows Binaries (strings) -- OSR Technical Articles -- Undocumented windows 2000 Secrets, a Programmer's Cookbook -- Windows NT/2000 Native API Reference -- Windows NT File System Internals -- Windows Internals I - II -- Windows Internals 4th Edition - -If the information contained in these sources was copyrighted, the information was not -copied, but simply used as a basis for developing a compatible and identical definition. -No information protected by a patent or NDA was used. All information was publically -located through the Internet or purchased or licensed for lawful use. - -Additionally, the following people contributed to the NDK: - -- Art Yerkes -- Eric Kohl -- Filip Navara -- Steven Edwards - -2.2 BECOMING A CONTRIBUTOR - -To contribute information to the NDK, simply contact the author with your new structure, -definition, enumeration, or prototype. Please make sure that your addition is: - -1) Actually correct! -2) Present in Windows NT 5, 5.1, 5.2 and/or 6.0 -3) Not already accessible through another public header in the DDK, IFS, WDK and/or PSDK. -4) From a publically verifiable source. The author needs to be able to search for your - addition in a public information location (book, Internet, etc) and locate this definition. -5) Not Reversed. Reversing a type is STRONGLY discouraged and a reversed type will more then likely - not be accepted, due to the fact that functionality and naming will be entirely guessed, and things - like unions are almost impossible to determine. It can also bring up possible legal ramifications - depending on your location. However, using a tool to dump the strings inside an executable - for the purpose of locating the actual name or definition of a structure (sometimes possible due - to ASSERTs or debugging strings) is considered 'fair use' and will be a likely candidate. - -If your addition satsfies these points, then please submit it, and also include whether or not -you would like to be credited for it. - -3. USAGE - -3.1 ORGANIZATION - - * The NDK is organized in a main folder (include/ndk) with arch-specific subfolders (ex: include/ndk/i386). - * The NDK is structured by NT Subsystem Component (ex: ex, ps, rtl, etc). - * The NDK can either be included on-demand (#include ) or globally (#include ). - The former is recommended to reduce compile time. - * The NDK is structured by function and type. Every Subsystem Component has an associated "xxfuncs.h" and - "xxtypes.h" header, where "xx" is the Subsystem (ex: iofuncs.h, iotypes.h) - * The NDK has a special file called "umtypes.h" which exports to User-Mode or Native-Mode Applications the - basic NT types which are present in ntdef.h. This file cannot be included since it would conflict with - winnt.h and/or windef.h. Thus, umtypes.h provides the missing types. This file is automatically included - in a User-Mode NDK project. - * The NDK also includes a file called "umfuncs.h" which exports to User-Mode or Native-Mode Applications - undocumented functions which can only be accessed from ntdll.dll. - * The NDK has another special file called "ifssupp.h", which exports to Kernel-Mode drivers a few types which - are only documented in the IFS kit, and are part of some native definitions. It will be deprecated next year - with the release of the WDK. - -3.2 USING IN YOUR PROJECT - - * User Mode Application requiring Native Types: - - #define WIN32_NO_STATUS /* Tell Windows headers you'll use ntstatus.s from NDK */ - #include /* Declare Windows Headers like you normally would */ - #include /* Declare the NDK Headers */ - - * Native Mode Application: - - #include /* Declare Windows Headers for basic types. NEEDED UNTIL NDK 1.5 */ - #include /* Declare the NDK Headers */ - - * Kernel Mode Driver: - - #include /* Declare DDK Headers like you normally would */ - #include /* Declare the NDK Headers */ - - * You may also include only the files you need (example for User-Mode application): - - #define WIN32_NO_STATUS /* Tell Windows headers you'll use ntstatus.s from NDK */ - #include /* Declare Windows Headers like you normally would */ - #include /* Declare the Rtl* Functions */ - -3.3 CAVEATS - - * winternl.h: This header, part of the PSDK, was released by Microsoft as part of one of the governmen - lawsuits against it, and documents a certain (minimal) part of the Native API and/or types. Unforunately, - Microsoft decided to hack the Native Types and to define them incorrectly, replacing real members by "reserved" - ones. As such, you 'cannot include winternl.h in any project that uses the NDK. Note however, that the NDK fully - replaces it and retains compatibility with any project that used it. - * Native programs: Native programs must include "windows.h" until the next release of the NDK (1.5). The upcoming - version will automatically detect the lack of missing types and include them. Note however that you will still need - to have the PSDK installed. +Native Development Kit README + NDK 1.00 +----------------------------- + +0. PREABMLE + +0.1 COPYRIGHT + +The NDK is Copyright © 2005 Alex Ionescu. + +0.2 CONTACT INFORMATION + +The author, Alex Ionescu, may be reached through the following means: + +Email: alex.ionescu@reactos.com +Mail: 2246, Duvernay. H3J 2Y3. Montreal, QC. CANADA. +Phone: (514)581-7156 + +1. LICENSE + +1.1 OPEN SOURCE USAGE + +Open Source Projects may choose to use one of either the two following licenses: + +GNU GENERAL PUBLIC LICENSE Version 2, June 1991 + + OR + +GNU LESSER GENERAL PUBLIC LICENSE Version 2.1, February 1999 + +The choice is yours to make based on the license which is most compatible with your +software. + +You MUST read GPL.TXT or LGPL.TXT after your decision. Violating your chosen license +voids your usage rights of the NDK and will lead to legal action on the part of the +author. + +If your Open Source product does not use a license which is compatible with the ones +listed above, please contact the author to reach a mutual agreement to find a better +solution for your product. Alternatively, you may choose to use the Proprietary Usage +license displayed below in section 1.2 + +If you are unsure of whether or not your product qualifies as an Open Source product, +please contact the Free Software Foundation, or visit their website at www.fsf.org. + + +1.2 PROPRIETARY USAGE + +Because it may be undesirable or impossible to adapt this software to your commercial +and/or proprietary product(s) and/or service(s) using a (L)GPL license, proprietary +products are free to use the following license: + +NDK LICENSE Version 1, November 2005 + +You MUST read NDK.TXT for the full text of this license. Violating your chosen license +voids your usage rights of the NDK, constitutes a copyright violation, and will lead to +legal action on the part of the author. + +If you are unsure of have any questions about the NDK License, please contact the +author for further clarification. + +2. ORIGINS OF NDK MATERIAL, AND ADDING YOUR OWN + +2.1 CONTRIBUTIONS AND SOURCES + +The NDK could not exist without the various contributions made by a variety of people +and sources. The following public sources of information were lawfully used: + +- GNU NTIFS.H, Revision 43 +- W32API, Version 2.5 +- Microsoft Driver Development Kit 2003 SP1 +- Microsoft Driver Development Kit 2000 +- Microsoft Driver Development Kit NT 4 +- Microsoft Driver Development Kit WinME +- Microsoft Installable File Systems Kit 2003 SP1 +- Microsoft Windows Debugger (WinDBG) 6.5.0003.7 +- Microsoft Public Symbolic Data +- Microsoft Public Windows Binaries (strings) +- OSR Technical Articles +- Undocumented windows 2000 Secrets, a Programmer's Cookbook +- Windows NT/2000 Native API Reference +- Windows NT File System Internals +- Windows Internals I - II +- Windows Internals 4th Edition + +If the information contained in these sources was copyrighted, the information was not +copied, but simply used as a basis for developing a compatible and identical definition. +No information protected by a patent or NDA was used. All information was publically +located through the Internet or purchased or licensed for lawful use. + +Additionally, the following people contributed to the NDK: + +- Art Yerkes +- Eric Kohl +- Filip Navara +- Steven Edwards + +2.2 BECOMING A CONTRIBUTOR + +To contribute information to the NDK, simply contact the author with your new structure, +definition, enumeration, or prototype. Please make sure that your addition is: + +1) Actually correct! +2) Present in Windows NT 5, 5.1, 5.2 and/or 6.0 +3) Not already accessible through another public header in the DDK, IFS, WDK and/or PSDK. +4) From a publically verifiable source. The author needs to be able to search for your + addition in a public information location (book, Internet, etc) and locate this definition. +5) Not Reversed. Reversing a type is STRONGLY discouraged and a reversed type will more then likely + not be accepted, due to the fact that functionality and naming will be entirely guessed, and things + like unions are almost impossible to determine. It can also bring up possible legal ramifications + depending on your location. However, using a tool to dump the strings inside an executable + for the purpose of locating the actual name or definition of a structure (sometimes possible due + to ASSERTs or debugging strings) is considered 'fair use' and will be a likely candidate. + +If your addition satsfies these points, then please submit it, and also include whether or not +you would like to be credited for it. + +3. USAGE + +3.1 ORGANIZATION + + * The NDK is organized in a main folder (include/ndk) with arch-specific subfolders (ex: include/ndk/i386). + * The NDK is structured by NT Subsystem Component (ex: ex, ps, rtl, etc). + * The NDK can either be included on-demand (#include ) or globally (#include ). + The former is recommended to reduce compile time. + * The NDK is structured by function and type. Every Subsystem Component has an associated "xxfuncs.h" and + "xxtypes.h" header, where "xx" is the Subsystem (ex: iofuncs.h, iotypes.h) + * The NDK has a special file called "umtypes.h" which exports to User-Mode or Native-Mode Applications the + basic NT types which are present in ntdef.h. This file cannot be included since it would conflict with + winnt.h and/or windef.h. Thus, umtypes.h provides the missing types. This file is automatically included + in a User-Mode NDK project. + * The NDK also includes a file called "umfuncs.h" which exports to User-Mode or Native-Mode Applications + undocumented functions which can only be accessed from ntdll.dll. + * The NDK has another special file called "ifssupp.h", which exports to Kernel-Mode drivers a few types which + are only documented in the IFS kit, and are part of some native definitions. It will be deprecated next year + with the release of the WDK. + +3.2 USING IN YOUR PROJECT + + * User Mode Application requiring Native Types: + + #define WIN32_NO_STATUS /* Tell Windows headers you'll use ntstatus.s from NDK */ + #include /* Declare Windows Headers like you normally would */ + #include /* Declare the NDK Headers */ + + * Native Mode Application: + + #include /* Declare Windows Headers for basic types. NEEDED UNTIL NDK 1.5 */ + #include /* Declare the NDK Headers */ + + * Kernel Mode Driver: + + #include /* Declare DDK Headers like you normally would */ + #include /* Declare the NDK Headers */ + + * You may also include only the files you need (example for User-Mode application): + + #define WIN32_NO_STATUS /* Tell Windows headers you'll use ntstatus.s from NDK */ + #include /* Declare Windows Headers like you normally would */ + #include /* Declare the Rtl* Functions */ + +3.3 CAVEATS + + * winternl.h: This header, part of the PSDK, was released by Microsoft as part of one of the governmen + lawsuits against it, and documents a certain (minimal) part of the Native API and/or types. Unforunately, + Microsoft decided to hack the Native Types and to define them incorrectly, replacing real members by "reserved" + ones. As such, you 'cannot include winternl.h in any project that uses the NDK. Note however, that the NDK fully + replaces it and retains compatibility with any project that used it. + * Native programs: Native programs must include "windows.h" until the next release of the NDK (1.5). The upcoming + version will automatically detect the lack of missing types and include them. Note however that you will still need + to have the PSDK installed.