Something went wrong. Try again.
Reactos
Something went wrong. Try again.
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604/*++ NDK Version: 0098
Copyright (c) Alex Ionescu. All rights reserved.
Header Name:
cmfuncs.h
Abstract:
Function definitions for the Configuration Manager.
Author:
Alex Ionescu (alexi@tinykrnl.org) - Updated - 27-Feb-2006
--*/
#ifndef _CMFUNCS_H#define _CMFUNCS_H
//// Dependencies//#include <umtypes.h>#include <cmtypes.h>
//// Native calls//NTSTATUSNTAPINtCompactKeys( _In_ ULONG Count, _In_reads_(Count) PHANDLE KeyArray);
NTSTATUSNTAPINtCompressKey( _In_ HANDLE Key);
_IRQL_requires_max_(PASSIVE_LEVEL)NTSYSAPINTSTATUSNTAPINtCreateKey( _Out_ PHANDLE KeyHandle, _In_ ACCESS_MASK DesiredAccess, _In_ POBJECT_ATTRIBUTES ObjectAttributes, _Reserved_ ULONG TitleIndex, _In_opt_ PUNICODE_STRING Class, _In_ ULONG CreateOptions, _Out_opt_ PULONG Disposition);
NTSYSCALLAPINTSTATUSNTAPINtDeleteKey( _In_ HANDLE KeyHandle);
NTSYSCALLAPINTSTATUSNTAPINtDeleteValueKey( _In_ HANDLE KeyHandle, _In_ PUNICODE_STRING ValueName);
NTSYSCALLAPINTSTATUSNTAPINtEnumerateKey( _In_ HANDLE KeyHandle, _In_ ULONG Index, _In_ KEY_INFORMATION_CLASS KeyInformationClass, _Out_bytecap_(Length) PVOID KeyInformation, _In_ ULONG Length, _Out_ PULONG ResultLength);
_IRQL_requires_max_(PASSIVE_LEVEL)_When_(Length == 0, _Post_satisfies_(return < 0))_When_(Length > 0, _Post_satisfies_(return <= 0))NTSYSAPINTSTATUSNTAPINtEnumerateValueKey( _In_ HANDLE KeyHandle, _In_ ULONG Index, _In_ KEY_VALUE_INFORMATION_CLASS KeyValueInformationClass, _Out_writes_bytes_opt_(Length) PVOID KeyValueInformation, _In_ ULONG Length, _Out_ PULONG ResultLength);
NTSYSCALLAPINTSTATUSNTAPINtFlushKey( _In_ HANDLE KeyHandle);
NTSYSCALLAPINTSTATUSNTAPINtGetPlugPlayEvent( _In_ ULONG Reserved1, _In_ ULONG Reserved2, _Out_ PPLUGPLAY_EVENT_BLOCK Buffer, _In_ ULONG BufferSize);
NTSYSCALLAPINTSTATUSNTAPINtInitializeRegistry( _In_ USHORT Flag);
NTSYSCALLAPINTSTATUSNTAPINtLoadKey( _In_ POBJECT_ATTRIBUTES KeyObjectAttributes, _In_ POBJECT_ATTRIBUTES FileObjectAttributes);
NTSYSCALLAPINTSTATUSNTAPINtLoadKey2( _In_ POBJECT_ATTRIBUTES KeyObjectAttributes, _In_ POBJECT_ATTRIBUTES FileObjectAttributes, _In_ ULONG Flags);
NTSTATUSNTAPINtLoadKeyEx( _In_ POBJECT_ATTRIBUTES TargetKey, _In_ POBJECT_ATTRIBUTES SourceFile, _In_ ULONG Flags, _In_ HANDLE TrustClassKey);
NTSTATUSNTAPINtLockProductActivationKeys( _In_ PULONG pPrivateVer, _In_ PULONG pSafeMode);
NTSTATUSNTAPINtLockRegistryKey( _In_ HANDLE KeyHandle);
NTSYSCALLAPINTSTATUSNTAPINtNotifyChangeKey( _In_ HANDLE KeyHandle, _In_ HANDLE Event, _In_opt_ PIO_APC_ROUTINE ApcRoutine, _In_opt_ PVOID ApcContext, _Out_ PIO_STATUS_BLOCK IoStatusBlock, _In_ ULONG CompletionFilter, _In_ BOOLEAN Asynchroneous, _Out_bytecap_(Length) PVOID ChangeBuffer, _In_ ULONG Length, _In_ BOOLEAN WatchSubtree);
__kernel_entryNTSYSCALLAPINTSTATUSNTAPINtNotifyChangeMultipleKeys( _In_ HANDLE MasterKeyHandle, _In_opt_ ULONG Count, _In_reads_opt_(Count) OBJECT_ATTRIBUTES SubordinateObjects[], _In_opt_ HANDLE Event, _In_opt_ PIO_APC_ROUTINE ApcRoutine, _In_opt_ PVOID ApcContext, _Out_ PIO_STATUS_BLOCK IoStatusBlock, _In_ ULONG CompletionFilter, _In_ BOOLEAN WatchTree, _Out_writes_bytes_opt_(BufferSize) PVOID Buffer, _In_ ULONG BufferSize, _In_ BOOLEAN Asynchronous);
NTSYSCALLAPINTSTATUSNTAPINtOpenKey( _Out_ PHANDLE KeyHandle, _In_ ACCESS_MASK DesiredAccess, _In_ POBJECT_ATTRIBUTES ObjectAttributes);
NTSYSCALLAPINTSTATUSNTAPINtPlugPlayControl( _In_ PLUGPLAY_CONTROL_CLASS PlugPlayControlClass, _Inout_ PVOID Buffer, _In_ ULONG BufferSize);
NTSYSCALLAPINTSTATUSNTAPINtQueryKey( _In_ HANDLE KeyHandle, _In_ KEY_INFORMATION_CLASS KeyInformationClass, _Out_bytecap_(Length) PVOID KeyInformation, _In_ ULONG Length, _Out_ PULONG ResultLength);
__kernel_entryNTSYSCALLAPINTSTATUSNTAPINtQueryMultipleValueKey( _In_ HANDLE KeyHandle, _Inout_updates_(EntryCount) PKEY_VALUE_ENTRY ValueEntries, _In_ ULONG EntryCount, _Out_writes_bytes_(*BufferLength) PVOID ValueBuffer, _Inout_ PULONG BufferLength, _Out_opt_ PULONG RequiredBufferLength);
NTSTATUSNTAPINtQueryOpenSubKeys( _In_ POBJECT_ATTRIBUTES TargetKey, _Out_ PULONG HandleCount);
NTSTATUSNTAPINtQueryOpenSubKeysEx( _In_ POBJECT_ATTRIBUTES TargetKey, _In_ ULONG BufferLength, _In_ PVOID Buffer, _In_ PULONG RequiredSize);
_IRQL_requires_max_(PASSIVE_LEVEL)_When_(Length == 0, _Post_satisfies_(return < 0))_When_(Length > 0, _Post_satisfies_(return <= 0))NTSYSAPINTSTATUSNTAPINtQueryValueKey( _In_ HANDLE KeyHandle, _In_ PUNICODE_STRING ValueName, _In_ KEY_VALUE_INFORMATION_CLASS KeyValueInformationClass, _Out_writes_bytes_opt_(Length) PVOID KeyValueInformation, _In_ ULONG Length, _Out_ PULONG ResultLength);
NTSYSCALLAPINTSTATUSNTAPINtRenameKey( _In_ HANDLE KeyHandle, _In_ PUNICODE_STRING NewName);
NTSYSCALLAPINTSTATUSNTAPINtReplaceKey( _In_ POBJECT_ATTRIBUTES ObjectAttributes, _In_ HANDLE Key, _In_ POBJECT_ATTRIBUTES ReplacedObjectAttributes);
NTSYSCALLAPINTSTATUSNTAPINtRestoreKey( _In_ HANDLE KeyHandle, _In_ HANDLE FileHandle, _In_ ULONG RestoreFlags);
NTSYSCALLAPINTSTATUSNTAPINtSaveKey( _In_ HANDLE KeyHandle, _In_ HANDLE FileHandle);
NTSYSCALLAPINTSTATUSNTAPINtSaveKeyEx( _In_ HANDLE KeyHandle, _In_ HANDLE FileHandle, _In_ ULONG Flags);
NTSTATUSNTAPINtSaveMergedKeys( _In_ HANDLE HighPrecedenceKeyHandle, _In_ HANDLE LowPrecedenceKeyHandle, _In_ HANDLE FileHandle);
__kernel_entryNTSYSCALLAPINTSTATUSNTAPINtSetInformationKey( _In_ HANDLE KeyHandle, _In_ _Strict_type_match_ KEY_SET_INFORMATION_CLASS KeySetInformationClass, _In_reads_bytes_(KeySetInformationLength) PVOID KeySetInformation, _In_ ULONG KeySetInformationLength);
NTSYSCALLAPINTSTATUSNTAPINtSetValueKey( _In_ HANDLE KeyHandle, _In_ PUNICODE_STRING ValueName, _In_opt_ ULONG TitleIndex, _In_ ULONG Type, _In_ PVOID Data, _In_ ULONG DataSize);
NTSYSCALLAPINTSTATUSNTAPINtUnloadKey( _In_ POBJECT_ATTRIBUTES KeyObjectAttributes);
NTSTATUSNTAPINtUnloadKey2( _In_ POBJECT_ATTRIBUTES TargetKey, _In_ ULONG Flags);
NTSTATUSNTAPINtUnloadKeyEx( _In_ POBJECT_ATTRIBUTES TargetKey, _In_ HANDLE Event);
#ifdef NTOS_MODE_USER_IRQL_requires_max_(PASSIVE_LEVEL)NTSYSAPINTSTATUSNTAPIZwCreateKey( _Out_ PHANDLE KeyHandle, _In_ ACCESS_MASK DesiredAccess, _In_ POBJECT_ATTRIBUTES ObjectAttributes, _Reserved_ ULONG TitleIndex, _In_opt_ PUNICODE_STRING Class, _In_ ULONG CreateOptions, _Out_opt_ PULONG Disposition);
NTSYSAPINTSTATUSNTAPIZwDeleteKey( _In_ HANDLE KeyHandle);
NTSYSAPINTSTATUSNTAPIZwDeleteValueKey( _In_ HANDLE KeyHandle, _In_ PUNICODE_STRING ValueName);
NTSYSAPINTSTATUSNTAPIZwEnumerateKey( _In_ HANDLE KeyHandle, _In_ ULONG Index, _In_ KEY_INFORMATION_CLASS KeyInformationClass, _Out_bytecap_(Length) PVOID KeyInformation, _In_ ULONG Length, _Out_ PULONG ResultLength);
_IRQL_requires_max_(PASSIVE_LEVEL)_When_(Length == 0, _Post_satisfies_(return < 0))_When_(Length > 0, _Post_satisfies_(return <= 0))NTSYSAPINTSTATUSNTAPIZwEnumerateValueKey( _In_ HANDLE KeyHandle, _In_ ULONG Index, _In_ KEY_VALUE_INFORMATION_CLASS KeyValueInformationClass, _Out_writes_bytes_opt_(Length) PVOID KeyValueInformation, _In_ ULONG Length, _Out_ PULONG ResultLength);
NTSYSAPINTSTATUSNTAPIZwFlushKey( _In_ HANDLE KeyHandle);
NTSYSAPINTSTATUSNTAPIZwGetPlugPlayEvent( _In_ ULONG Reserved1, _In_ ULONG Reserved2, _Out_bytecap_(BufferSize) PPLUGPLAY_EVENT_BLOCK Buffer, _In_ ULONG BufferSize);
NTSYSAPINTSTATUSNTAPIZwLoadKey( _In_ POBJECT_ATTRIBUTES KeyObjectAttributes, _In_ POBJECT_ATTRIBUTES FileObjectAttributes);
NTSYSAPINTSTATUSNTAPIZwLoadKey2( _In_ POBJECT_ATTRIBUTES KeyObjectAttributes, _In_ POBJECT_ATTRIBUTES FileObjectAttributes, _In_ ULONG Flags);
NTSYSAPINTSTATUSNTAPIZwNotifyChangeKey( _In_ HANDLE KeyHandle, _In_ HANDLE Event, _In_opt_ PIO_APC_ROUTINE ApcRoutine, _In_opt_ PVOID ApcContext, _Out_ PIO_STATUS_BLOCK IoStatusBlock, _In_ ULONG CompletionFilter, _In_ BOOLEAN Asynchroneous, _Out_bytecap_(Length) PVOID ChangeBuffer, _In_ ULONG Length, _In_ BOOLEAN WatchSubtree);
NTSYSAPINTSTATUSNTAPIZwOpenKey( _Out_ PHANDLE KeyHandle, _In_ ACCESS_MASK DesiredAccess, _In_ POBJECT_ATTRIBUTES ObjectAttributes);
NTSYSAPINTSTATUSNTAPIZwPlugPlayControl( _In_ PLUGPLAY_CONTROL_CLASS PlugPlayControlClass, _Inout_bytecap_(BufferSize) PVOID Buffer, _In_ ULONG BufferSize);
NTSYSAPINTSTATUSNTAPIZwQueryKey( _In_ HANDLE KeyHandle, _In_ KEY_INFORMATION_CLASS KeyInformationClass, _Out_bytecap_(Length) PVOID KeyInformation, _In_ ULONG Length, _Out_ PULONG ResultLength);
NTSYSAPINTSTATUSNTAPIZwQueryMultipleValueKey( _In_ HANDLE KeyHandle, _Inout_ PKEY_VALUE_ENTRY ValueList, _In_ ULONG NumberOfValues, _Out_bytecap_(*Length) PVOID Buffer, _Inout_ PULONG Length, _Out_ PULONG ReturnLength);
_IRQL_requires_max_(PASSIVE_LEVEL)_When_(Length == 0, _Post_satisfies_(return < 0))_When_(Length > 0, _Post_satisfies_(return <= 0))NTSYSAPINTSTATUSNTAPIZwQueryValueKey( _In_ HANDLE KeyHandle, _In_ PUNICODE_STRING ValueName, _In_ KEY_VALUE_INFORMATION_CLASS KeyValueInformationClass, _Out_writes_bytes_opt_(Length) PVOID KeyValueInformation, _In_ ULONG Length, _Out_ PULONG ResultLength);
NTSYSAPINTSTATUSNTAPIZwReplaceKey( _In_ POBJECT_ATTRIBUTES ObjectAttributes, _In_ HANDLE Key, _In_ POBJECT_ATTRIBUTES ReplacedObjectAttributes);
NTSYSAPINTSTATUSNTAPIZwRestoreKey( _In_ HANDLE KeyHandle, _In_ HANDLE FileHandle, _In_ ULONG RestoreFlags);
NTSYSAPINTSTATUSNTAPIZwSaveKey( _In_ HANDLE KeyHandle, _In_ HANDLE FileHandle);
NTSYSAPINTSTATUSNTAPIZwSaveKeyEx( _In_ HANDLE KeyHandle, _In_ HANDLE FileHandle, _In_ ULONG Flags);
NTSYSAPINTSTATUSNTAPIZwSetInformationKey( _In_ HANDLE KeyHandle, _In_ KEY_SET_INFORMATION_CLASS KeyInformationClass, _In_bytecount_(KeyInformationLength) PVOID KeyInformation, _In_ ULONG KeyInformationLength);
NTSYSAPINTSTATUSNTAPIZwSetValueKey( _In_ HANDLE KeyHandle, _In_ PUNICODE_STRING ValueName, _In_opt_ ULONG TitleIndex, _In_ ULONG Type, _In_bytecount_(DataSize) PVOID Data, _In_ ULONG DataSize);#endif
NTSYSAPINTSTATUSNTAPIZwInitializeRegistry( _In_ USHORT Flag);
NTSYSAPINTSTATUSNTAPIZwUnloadKey( _In_ POBJECT_ATTRIBUTES KeyObjectAttributes);
#endif