-/*++ NDK Version: 0095\r
-\r
-Copyright (c) Alex Ionescu. All rights reserved.\r
-\r
-Header Name:\r
-\r
- cmfuncs.h\r
-\r
-Abstract:\r
-\r
- Function definitions for the Configuration Manager.\r
-\r
-Author:\r
-\r
- Alex Ionescu (alex.ionescu@reactos.com) 06-Oct-2004\r
-\r
---*/\r
-\r
-#ifndef _CMFUNCS_H\r
-#define _CMFUNCS_H\r
-\r
-//\r
-// Dependencies\r
-//\r
-#include <umtypes.h>\r
-\r
-//\r
-// Native calls\r
-//\r
-NTSYSCALLAPI\r
-NTSTATUS\r
-NTAPI\r
-NtCreateKey(\r
- OUT PHANDLE KeyHandle,\r
- IN ACCESS_MASK DesiredAccess,\r
- IN POBJECT_ATTRIBUTES ObjectAttributes,\r
- IN ULONG TitleIndex,\r
- IN PUNICODE_STRING Class OPTIONAL,\r
- IN ULONG CreateOptions,\r
- IN PULONG Disposition OPTIONAL\r
-);\r
-\r
-NTSYSCALLAPI\r
-NTSTATUS\r
-NTAPI\r
-NtDeleteKey(\r
- IN HANDLE KeyHandle\r
-);\r
-\r
-NTSYSCALLAPI\r
-NTSTATUS\r
-NTAPI\r
-NtDeleteValueKey(\r
- IN HANDLE KeyHandle,\r
- IN PUNICODE_STRING ValueName\r
-);\r
-\r
-NTSYSCALLAPI\r
-NTSTATUS\r
-NTAPI\r
-NtEnumerateKey(\r
- IN HANDLE KeyHandle,\r
- IN ULONG Index,\r
- IN KEY_INFORMATION_CLASS KeyInformationClass,\r
- OUT PVOID KeyInformation,\r
- IN ULONG Length,\r
- OUT PULONG ResultLength\r
-);\r
-\r
-NTSYSCALLAPI\r
-NTSTATUS\r
-NTAPI\r
-NtEnumerateValueKey(\r
- IN HANDLE KeyHandle,\r
- IN ULONG Index,\r
- IN KEY_VALUE_INFORMATION_CLASS KeyValueInformationClass,\r
- OUT PVOID KeyValueInformation,\r
- IN ULONG Length,\r
- OUT PULONG ResultLength\r
-);\r
-\r
-NTSYSCALLAPI\r
-NTSTATUS\r
-NTAPI\r
-NtFlushKey(\r
- IN HANDLE KeyHandle\r
-);\r
-\r
-NTSYSCALLAPI\r
-NTSTATUS\r
-NTAPI\r
-NtGetPlugPlayEvent(\r
- IN ULONG Reserved1,\r
- IN ULONG Reserved2,\r
- OUT PPLUGPLAY_EVENT_BLOCK Buffer,\r
- IN ULONG BufferSize\r
-);\r
-\r
-NTSYSCALLAPI\r
-NTSTATUS\r
-NTAPI\r
-NtInitializeRegistry(\r
- BOOLEAN SetUpBoot\r
-);\r
-\r
-NTSYSCALLAPI\r
-NTSTATUS\r
-NTAPI\r
-NtLoadKey(\r
- IN POBJECT_ATTRIBUTES KeyObjectAttributes,\r
- IN POBJECT_ATTRIBUTES FileObjectAttributes\r
-);\r
-\r
-NTSYSCALLAPI\r
-NTSTATUS\r
-NTAPI\r
-NtLoadKey2(\r
- IN POBJECT_ATTRIBUTES KeyObjectAttributes,\r
- IN POBJECT_ATTRIBUTES FileObjectAttributes,\r
- IN ULONG Flags\r
-);\r
-\r
-NTSYSCALLAPI\r
-NTSTATUS\r
-NTAPI\r
-NtNotifyChangeKey(\r
- IN HANDLE KeyHandle,\r
- IN HANDLE Event,\r
- IN PIO_APC_ROUTINE ApcRoutine OPTIONAL,\r
- IN PVOID ApcContext OPTIONAL,\r
- OUT PIO_STATUS_BLOCK IoStatusBlock,\r
- IN ULONG CompletionFilter,\r
- IN BOOLEAN Asynchroneous,\r
- OUT PVOID ChangeBuffer,\r
- IN ULONG Length,\r
- IN BOOLEAN WatchSubtree\r
-);\r
-\r
-NTSYSCALLAPI\r
-NTSTATUS\r
-NTAPI\r
-NtOpenKey(\r
- OUT PHANDLE KeyHandle,\r
- IN ACCESS_MASK DesiredAccess,\r
- IN POBJECT_ATTRIBUTES ObjectAttributes\r
-);\r
-\r
-NTSYSCALLAPI\r
-NTSTATUS\r
-NTAPI\r
-NtPlugPlayControl(\r
- IN PLUGPLAY_CONTROL_CLASS PlugPlayControlClass,\r
- IN OUT PVOID Buffer,\r
- IN ULONG BufferSize\r
-);\r
-\r
-NTSYSCALLAPI\r
-NTSTATUS\r
-NTAPI\r
-NtQueryKey(\r
- IN HANDLE KeyHandle,\r
- IN KEY_INFORMATION_CLASS KeyInformationClass,\r
- OUT PVOID KeyInformation,\r
- IN ULONG Length,\r
- OUT PULONG ResultLength\r
-);\r
-\r
-NTSYSCALLAPI\r
-NTSTATUS\r
-NTAPI\r
-NtQueryMultipleValueKey(\r
- IN HANDLE KeyHandle,\r
- IN OUT PKEY_VALUE_ENTRY ValueList,\r
- IN ULONG NumberOfValues,\r
- OUT PVOID Buffer,\r
- IN OUT PULONG Length,\r
- OUT PULONG ReturnLength\r
-);\r
-\r
-NTSYSCALLAPI\r
-NTSTATUS\r
-NTAPI\r
-NtQueryValueKey(\r
- IN HANDLE KeyHandle,\r
- IN PUNICODE_STRING ValueName,\r
- IN KEY_VALUE_INFORMATION_CLASS KeyValueInformationClass,\r
- OUT PVOID KeyValueInformation,\r
- IN ULONG Length,\r
- OUT PULONG ResultLength\r
-);\r
-\r
-NTSYSCALLAPI\r
-NTSTATUS\r
-NTAPI\r
-NtReplaceKey(\r
- IN POBJECT_ATTRIBUTES ObjectAttributes,\r
- IN HANDLE Key,\r
- IN POBJECT_ATTRIBUTES ReplacedObjectAttributes\r
-);\r
-\r
-NTSYSCALLAPI\r
-NTSTATUS\r
-NTAPI\r
-NtRestoreKey(\r
- IN HANDLE KeyHandle,\r
- IN HANDLE FileHandle,\r
- IN ULONG RestoreFlags\r
-);\r
-\r
-NTSYSCALLAPI\r
-NTSTATUS\r
-NTAPI\r
-NtSaveKey(\r
- IN HANDLE KeyHandle,\r
- IN HANDLE FileHandle\r
-);\r
-\r
-NTSYSCALLAPI\r
-NTSTATUS\r
-NTAPI\r
-NtSaveKeyEx(\r
- IN HANDLE KeyHandle,\r
- IN HANDLE FileHandle,\r
- IN ULONG Flags\r
-);\r
-\r
-NTSYSCALLAPI\r
-NTSTATUS\r
-NTAPI\r
-NtSetInformationKey(\r
- IN HANDLE KeyHandle,\r
- IN KEY_SET_INFORMATION_CLASS KeyInformationClass,\r
- IN PVOID KeyInformation,\r
- IN ULONG KeyInformationLength\r
-);\r
-\r
-NTSYSCALLAPI\r
-NTSTATUS\r
-NTAPI\r
-NtSetValueKey(\r
- IN HANDLE KeyHandle,\r
- IN PUNICODE_STRING ValueName,\r
- IN ULONG TitleIndex OPTIONAL,\r
- IN ULONG Type,\r
- IN PVOID Data,\r
- IN ULONG DataSize\r
-);\r
-\r
-NTSYSCALLAPI\r
-NTSTATUS\r
-NTAPI\r
-NtUnloadKey(\r
- IN POBJECT_ATTRIBUTES KeyObjectAttributes\r
-);\r
-\r
-#ifdef NTOS_MODE_USER\r
-NTSYSAPI\r
-NTSTATUS\r
-NTAPI\r
-ZwCreateKey(\r
- OUT PHANDLE KeyHandle,\r
- IN ACCESS_MASK DesiredAccess,\r
- IN POBJECT_ATTRIBUTES ObjectAttributes,\r
- IN ULONG TitleIndex,\r
- IN PUNICODE_STRING Class OPTIONAL,\r
- IN ULONG CreateOptions,\r
- IN PULONG Disposition OPTIONAL\r
-);\r
-\r
-NTSYSAPI\r
-NTSTATUS\r
-NTAPI\r
-ZwDeleteKey(\r
- IN HANDLE KeyHandle\r
-);\r
-\r
-NTSYSAPI\r
-NTSTATUS\r
-NTAPI\r
-ZwDeleteValueKey(\r
- IN HANDLE KeyHandle,\r
- IN PUNICODE_STRING ValueName\r
-);\r
-\r
-NTSYSAPI\r
-NTSTATUS\r
-NTAPI\r
-ZwEnumerateKey(\r
- IN HANDLE KeyHandle,\r
- IN ULONG Index,\r
- IN KEY_INFORMATION_CLASS KeyInformationClass,\r
- OUT PVOID KeyInformation,\r
- IN ULONG Length,\r
- OUT PULONG ResultLength\r
-);\r
-\r
-NTSYSAPI\r
-NTSTATUS\r
-NTAPI\r
-ZwEnumerateValueKey(\r
- IN HANDLE KeyHandle,\r
- IN ULONG Index,\r
- IN KEY_VALUE_INFORMATION_CLASS KeyValueInformationClass,\r
- OUT PVOID KeyValueInformation,\r
- IN ULONG Length,\r
- OUT PULONG ResultLength\r
-);\r
-\r
-NTSYSAPI\r
-NTSTATUS\r
-NTAPI\r
-ZwFlushKey(\r
- IN HANDLE KeyHandle\r
-);\r
-\r
-NTSYSAPI\r
-NTSTATUS\r
-NTAPI\r
-ZwGetPlugPlayEvent(\r
- IN ULONG Reserved1,\r
- IN ULONG Reserved2,\r
- OUT PPLUGPLAY_EVENT_BLOCK Buffer,\r
- IN ULONG BufferSize\r
-);\r
-\r
-NTSYSAPI\r
-NTSTATUS\r
-NTAPI\r
-ZwInitializeRegistry(\r
- BOOLEAN SetUpBoot\r
-);\r
-\r
-NTSYSAPI\r
-NTSTATUS\r
-NTAPI\r
-ZwLoadKey(\r
- IN POBJECT_ATTRIBUTES KeyObjectAttributes,\r
- IN POBJECT_ATTRIBUTES FileObjectAttributes\r
-);\r
-\r
-NTSYSAPI\r
-NTSTATUS\r
-NTAPI\r
-ZwLoadKey2(\r
- IN POBJECT_ATTRIBUTES KeyObjectAttributes,\r
- IN POBJECT_ATTRIBUTES FileObjectAttributes,\r
- IN ULONG Flags\r
-);\r
-\r
-NTSYSAPI\r
-NTSTATUS\r
-NTAPI\r
-ZwNotifyChangeKey(\r
- IN HANDLE KeyHandle,\r
- IN HANDLE Event,\r
- IN PIO_APC_ROUTINE ApcRoutine OPTIONAL,\r
- IN PVOID ApcContext OPTIONAL,\r
- OUT PIO_STATUS_BLOCK IoStatusBlock,\r
- IN ULONG CompletionFilter,\r
- IN BOOLEAN Asynchroneous,\r
- OUT PVOID ChangeBuffer,\r
- IN ULONG Length,\r
- IN BOOLEAN WatchSubtree\r
-);\r
-\r
-NTSYSAPI\r
-NTSTATUS\r
-NTAPI\r
-ZwOpenKey(\r
- OUT PHANDLE KeyHandle,\r
- IN ACCESS_MASK DesiredAccess,\r
- IN POBJECT_ATTRIBUTES ObjectAttributes\r
-);\r
-\r
-NTSYSAPI\r
-NTSTATUS\r
-NTAPI\r
-ZwPlugPlayControl(\r
- IN PLUGPLAY_CONTROL_CLASS PlugPlayControlClass,\r
- IN OUT PVOID Buffer,\r
- IN ULONG BufferSize\r
-);\r
-\r
-NTSYSAPI\r
-NTSTATUS\r
-NTAPI\r
-ZwQueryKey(\r
- IN HANDLE KeyHandle,\r
- IN KEY_INFORMATION_CLASS KeyInformationClass,\r
- OUT PVOID KeyInformation,\r
- IN ULONG Length,\r
- OUT PULONG ResultLength\r
-);\r
-\r
-NTSYSAPI\r
-NTSTATUS\r
-NTAPI\r
-ZwQueryMultipleValueKey(\r
- IN HANDLE KeyHandle,\r
- IN OUT PKEY_VALUE_ENTRY ValueList,\r
- IN ULONG NumberOfValues,\r
- OUT PVOID Buffer,\r
- IN OUT PULONG Length,\r
- OUT PULONG ReturnLength\r
-);\r
-\r
-NTSYSAPI\r
-NTSTATUS\r
-NTAPI\r
-ZwQueryValueKey(\r
- IN HANDLE KeyHandle,\r
- IN PUNICODE_STRING ValueName,\r
- IN KEY_VALUE_INFORMATION_CLASS KeyValueInformationClass,\r
- OUT PVOID KeyValueInformation,\r
- IN ULONG Length,\r
- OUT PULONG ResultLength\r
-);\r
-\r
-NTSYSAPI\r
-NTSTATUS\r
-NTAPI\r
-ZwReplaceKey(\r
- IN POBJECT_ATTRIBUTES ObjectAttributes,\r
- IN HANDLE Key,\r
- IN POBJECT_ATTRIBUTES ReplacedObjectAttributes\r
-);\r
-\r
-NTSYSAPI\r
-NTSTATUS\r
-NTAPI\r
-ZwRestoreKey(\r
- IN HANDLE KeyHandle,\r
- IN HANDLE FileHandle,\r
- IN ULONG RestoreFlags\r
-);\r
-\r
-NTSYSAPI\r
-NTSTATUS\r
-NTAPI\r
-ZwSaveKey(\r
- IN HANDLE KeyHandle,\r
- IN HANDLE FileHandle\r
-);\r
-\r
-NTSYSAPI\r
-NTSTATUS\r
-NTAPI\r
-ZwSaveKeyEx(\r
- IN HANDLE KeyHandle,\r
- IN HANDLE FileHandle,\r
- IN ULONG Flags\r
-);\r
-\r
-NTSYSAPI\r
-NTSTATUS\r
-NTAPI\r
-ZwSetInformationKey(\r
- IN HANDLE KeyHandle,\r
- IN KEY_SET_INFORMATION_CLASS KeyInformationClass,\r
- IN PVOID KeyInformation,\r
- IN ULONG KeyInformationLength\r
-);\r
-\r
-NTSYSAPI\r
-NTSTATUS\r
-NTAPI\r
-ZwSetValueKey(\r
- IN HANDLE KeyHandle,\r
- IN PUNICODE_STRING ValueName,\r
- IN ULONG TitleIndex OPTIONAL,\r
- IN ULONG Type,\r
- IN PVOID Data,\r
- IN ULONG DataSize\r
-);\r
-#endif\r
-\r
-NTSYSAPI\r
-NTSTATUS\r
-NTAPI\r
-ZwUnloadKey(\r
- IN POBJECT_ATTRIBUTES KeyObjectAttributes\r
-);\r
-\r
-#endif\r
+/*++ 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 <umtypes.h>
+
+//
+// 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