ReactOS 0.4.16-dev-340-g0540c21
cmfuncs.h File Reference
#include <umtypes.h>
#include <cmtypes.h>
Include dependency graph for cmfuncs.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Functions

NTSTATUS NTAPI NtCompactKeys (_In_ ULONG Count, _In_reads_(Count) PHANDLE KeyArray)
 
NTSTATUS NTAPI NtCompressKey (_In_ HANDLE Key)
 
 _IRQL_requires_max_ (PASSIVE_LEVEL) NTSYSAPI NTSTATUS NTAPI NtCreateKey(_Out_ PHANDLE KeyHandle
 Queries information details about a security descriptor.
 
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_bytecap_(Length) PVOID KeyInformation, _In_ ULONG Length, _Out_ PULONG ResultLength)
 
 _Post_satisfies_ (return< 0)) _When_(Length > 0
 
 _Post_satisfies_ (return<=0)) NTSYSAPI NTSTATUS NTAPI NtEnumerateValueKey(_In_ HANDLE KeyHandle
 
_In_ ULONG _In_ KEY_VALUE_INFORMATION_CLASS _Out_writes_bytes_opt_ (Length) PVOID KeyValueInformation
 
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 (_In_ USHORT Flag)
 
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)
 
NTSTATUS NTAPI NtLoadKeyEx (_In_ POBJECT_ATTRIBUTES TargetKey, _In_ POBJECT_ATTRIBUTES SourceFile, _In_ ULONG Flags, _In_ HANDLE TrustClassKey)
 
NTSTATUS NTAPI NtLockProductActivationKeys (_In_ PULONG pPrivateVer, _In_ PULONG pSafeMode)
 
NTSTATUS NTAPI NtLockRegistryKey (_In_ HANDLE KeyHandle)
 
NTSYSCALLAPI NTSTATUS NTAPI NtNotifyChangeKey (_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_entry NTSYSCALLAPI NTSTATUS NTAPI NtNotifyChangeMultipleKeys (_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)
 
NTSYSCALLAPI NTSTATUS NTAPI NtOpenKey (_Out_ PHANDLE KeyHandle, _In_ ACCESS_MASK DesiredAccess, _In_ POBJECT_ATTRIBUTES ObjectAttributes)
 
NTSYSCALLAPI NTSTATUS NTAPI NtPlugPlayControl (_In_ PLUGPLAY_CONTROL_CLASS PlugPlayControlClass, _Inout_ PVOID Buffer, _In_ ULONG BufferSize)
 
NTSYSCALLAPI NTSTATUS NTAPI NtQueryKey (_In_ HANDLE KeyHandle, _In_ KEY_INFORMATION_CLASS KeyInformationClass, _Out_bytecap_(Length) PVOID KeyInformation, _In_ ULONG Length, _Out_ PULONG ResultLength)
 
__kernel_entry NTSYSCALLAPI NTSTATUS NTAPI NtQueryMultipleValueKey (_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)
 
NTSTATUS NTAPI NtQueryOpenSubKeys (_In_ POBJECT_ATTRIBUTES TargetKey, _Out_ PULONG HandleCount)
 
NTSTATUS NTAPI NtQueryOpenSubKeysEx (_In_ POBJECT_ATTRIBUTES TargetKey, _In_ ULONG BufferLength, _In_ PVOID Buffer, _In_ PULONG RequiredSize)
 
NTSYSCALLAPI NTSTATUS NTAPI NtRenameKey (_In_ HANDLE KeyHandle, _In_ PUNICODE_STRING NewName)
 
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)
 
NTSTATUS NTAPI NtSaveMergedKeys (_In_ HANDLE HighPrecedenceKeyHandle, _In_ HANDLE LowPrecedenceKeyHandle, _In_ HANDLE FileHandle)
 
__kernel_entry NTSYSCALLAPI NTSTATUS NTAPI NtSetInformationKey (_In_ HANDLE KeyHandle, _In_ _Strict_type_match_ KEY_SET_INFORMATION_CLASS KeySetInformationClass, _In_reads_bytes_(KeySetInformationLength) PVOID KeySetInformation, _In_ ULONG KeySetInformationLength)
 
NTSYSCALLAPI NTSTATUS NTAPI NtSetValueKey (_In_ HANDLE KeyHandle, _In_ PUNICODE_STRING ValueName, _In_opt_ ULONG TitleIndex, _In_ ULONG Type, _In_ PVOID Data, _In_ ULONG DataSize)
 
NTSYSCALLAPI NTSTATUS NTAPI NtUnloadKey (_In_ POBJECT_ATTRIBUTES KeyObjectAttributes)
 
NTSTATUS NTAPI NtUnloadKey2 (_In_ POBJECT_ATTRIBUTES TargetKey, _In_ ULONG Flags)
 
NTSTATUS NTAPI NtUnloadKeyEx (_In_ POBJECT_ATTRIBUTES TargetKey, _In_ HANDLE Event)
 
NTSYSAPI NTSTATUS NTAPI ZwInitializeRegistry (_In_ USHORT Flag)
 
NTSYSAPI NTSTATUS NTAPI ZwUnloadKey (_In_ POBJECT_ATTRIBUTES KeyObjectAttributes)
 

Variables

_In_ ACCESS_MASK DesiredAccess
 
_In_ ACCESS_MASK _In_ POBJECT_ATTRIBUTES ObjectAttributes
 
_In_ ACCESS_MASK _In_ POBJECT_ATTRIBUTES _Reserved_ ULONG TitleIndex
 
_In_ ACCESS_MASK _In_ POBJECT_ATTRIBUTES _Reserved_ ULONG _In_opt_ PUNICODE_STRING Class
 
_In_ ACCESS_MASK _In_ POBJECT_ATTRIBUTES _Reserved_ ULONG _In_opt_ PUNICODE_STRING _In_ ULONG CreateOptions
 
_In_ ACCESS_MASK _In_ POBJECT_ATTRIBUTES _Reserved_ ULONG _In_opt_ PUNICODE_STRING _In_ ULONG _Out_opt_ PULONG Disposition
 
_In_ ULONG Index
 
_In_ ULONG _In_ KEY_VALUE_INFORMATION_CLASS KeyValueInformationClass
 
_In_ ULONG _In_ KEY_VALUE_INFORMATION_CLASS _In_ ULONG Length
 
_In_ ULONG _In_ KEY_VALUE_INFORMATION_CLASS _In_ ULONG _Out_ PULONG ResultLength
 
_In_ PUNICODE_STRING ValueName
 

Function Documentation

◆ _IRQL_requires_max_()

_IRQL_requires_max_ ( PASSIVE_LEVEL  )

Queries information details about a security descriptor.

Computes the quota size of a security descriptor.

Assigns a security descriptor for a new object.

An extended function that assigns a security descriptor for a new object.

Frees a security descriptor.

An extended function that sets new information data to a security descriptor.

Modifies some information data about a security descriptor.

Parameters
[in]SecurityInformationSecurity information details to be queried from a security descriptor.
[out]SecurityDescriptorThe returned security descriptor with security information data.
[in,out]LengthThe returned length of a security descriptor.
[in,out]ObjectsSecurityDescriptorThe returned object security descriptor.
Returns
Returns STATUS_SUCCESS if the operations have been completed successfully and that the specific information about the security descriptor has been queried. STATUS_BUFFER_TOO_SMALL is returned if the buffer size is too small to contain the queried info about the security descriptor.
Parameters
[in]ObjectIf specified, the function will use this arbitrary object that points to an object security descriptor.
[in]SecurityInformationSecurity information details to be set.
[in]SecurityDescriptorA security descriptor where its info is to be changed.
[in,out]ObjectsSecurityDescriptorThe returned pointer to security descriptor objects.
[in]PoolTypePool type for the new security descriptor to allocate.
[in]GenericMappingThe generic mapping of access rights masks.
Returns
See SeSetSecurityDescriptorInfoEx.
Parameters
[in]ObjectIf specified, the function will use this arbitrary object that points to an object security descriptor.
[in]SecurityInformationSecurity information details to be set.
[in]SecurityDescriptorA security descriptor where its info is to be changed.
[in,out]ObjectsSecurityDescriptorThe returned pointer to security descriptor objects.
[in]AutoInheritFlagsFlags bitmask inheritation, influencing how the security descriptor can be inherited and if it can be in the first place.
[in]PoolTypePool type for the new security descriptor to allocate.
[in]GenericMappingThe generic mapping of access rights masks.
Returns
Returns STATUS_SUCCESS if the operations have been completed without problems and that new info has been set to the security descriptor. STATUS_NO_SECURITY_ON_OBJECT is returned if the object does not have a security descriptor. STATUS_INSUFFICIENT_RESOURCES is returned if memory pool allocation for the new security descriptor with new info set has failed.
Parameters
[in]SecurityDescriptorA security descriptor to be freed from memory.
Returns
Returns STATUS_SUCCESS.
Parameters
[in]_ParentDescriptorA security descriptor of the parent object that is being created.
[in]_ExplicitDescriptorAn explicit security descriptor that is applied to a new object.
[out]NewDescriptorThe new allocated security descriptor.
[in]ObjectTypeThe type of the new object.
[in]IsDirectoryObjectSet this to TRUE if the newly created object is a directory object, otherwise set this to FALSE.
[in]AutoInheritFlagsAutomatic inheritance flags that influence how access control entries within ACLs from security descriptors are inherited.
[in]SubjectContextSecurity subject context of the new object.
[in]GenericMappingGeneric mapping of access mask rights.
[in]PoolTypeThis parameter is unused.
Returns
Returns STATUS_SUCCESS if the operations have been completed successfully and that the security descriptor has been assigned to the new object. STATUS_NO_TOKEN is returned if the caller hasn't supplied a valid argument to a security subject context. STATUS_INVALID_OWNER is returned if the caller hasn't supplied a parent descriptor that belongs to the main user (owner). STATUS_INVALID_PRIMARY_GROUP is returned by the same reason as with the previous NTSTATUS code. The two NTSTATUS codes are returned if the calling thread stated that the owner and/or group is defaulted to the parent descriptor (SEF_DEFAULT_OWNER_FROM_PARENT and/or SEF_DEFAULT_GROUP_FROM_PARENT respectively). STATUS_INSUFFICIENT_RESOURCES is returned if memory pool allocation for the descriptor buffer has failed. A failure NTSTATUS is returned otherwise.
Parameters
[in]ParentDescriptorA security descriptor of the parent object that is being created.
[in]ExplicitDescriptorAn explicit security descriptor that is applied to a new object.
[out]NewDescriptorThe new allocated security descriptor.
[in]IsDirectoryObjectSet this to TRUE if the newly created object is a directory object, otherwise set this to FALSE.
[in]SubjectContextSecurity subject context of the new object.
[in]GenericMappingGeneric mapping of access mask rights.
[in]PoolTypeThis parameter is unused.
Returns
See SeAssignSecurityEx.
Parameters
[in]SecurityDescriptorA security descriptor.
[out]QuotaInfoSizeThe returned quota size of the given security descriptor to the caller. The function may return 0 to this parameter if the descriptor doesn't have a group or a discretionary access control list (DACL) even.
Returns
Returns STATUS_SUCCESS if the quota size of a security descriptor has been computed successfully. STATUS_UNKNOWN_REVISION is returned if the security descriptor has an invalid revision.

Definition at line 923 of file Messaging.c.

75{
76 PFLT_SERVER_PORT_OBJECT PortObject;
78
79 /* The caller must allow at least one connection */
80 if (MaxConnections == 0)
81 {
83 }
84
85 /* The request must be for a kernel handle */
86 if (!(ObjectAttributes->Attributes & OBJ_KERNEL_HANDLE))
87 {
89 }
90
91 /*
92 * Get rundown protection on the target to stop the owner
93 * from unloading whilst this port object is open. It gets
94 * removed in the FltpServerPortClose callback
95 */
97 if (!NT_SUCCESS(Status))
98 {
99 return Status;
100 }
101
102 /* Create the server port object for this filter */
107 NULL,
109 0,
110 0,
111 (PVOID *)&PortObject);
112 if (NT_SUCCESS(Status))
113 {
114 /* Zero out the struct */
115 RtlZeroMemory(PortObject, sizeof(FLT_SERVER_PORT_OBJECT));
116
117 /* Increment the ref count on the target filter */
119
120 /* Setup the filter port object */
121 PortObject->Filter = Filter;
125 PortObject->Cookie = ServerPortCookie;
126 PortObject->MaxConnections = MaxConnections;
127
128 /* Insert the object */
129 Status = ObInsertObject(PortObject,
130 NULL,
132 0,
133 NULL,
135 if (NT_SUCCESS(Status))
136 {
137 /* Lock the connection list */
139
140 /* Add the new port object to the connection list and increment the count */
143
144 /* Unlock the connection list*/
146 }
147 }
148
149 if (!NT_SUCCESS(Status))
150 {
151 /* Allow the filter to be cleaned up */
153 }
154
155 return Status;
156}
static const INTERNET_PORT ServerPort
Definition: CWebService.cpp:11
POBJECT_TYPE ServerPortObjectType
Definition: Messaging.c:24
VOID FLTAPI FltObjectDereference(_Inout_ PVOID Object)
Definition: Object.c:53
NTSTATUS FLTAPI FltObjectReference(_Inout_ PVOID Object)
Definition: Object.c:41
LONG NTSTATUS
Definition: precomp.h:26
IN PUNICODE_STRING IN POBJECT_ATTRIBUTES ObjectAttributes
Definition: conport.c:36
#define NULL
Definition: types.h:112
#define NT_SUCCESS(StatCode)
Definition: apphelp.c:33
#define InsertTailList(ListHead, Entry)
_Must_inspect_result_ _In_opt_ PFLT_FILTER Filter
Definition: fltkernel.h:1801
_Must_inspect_result_ _Outptr_ PFLT_PORT _In_ POBJECT_ATTRIBUTES _In_opt_ PVOID _In_ PFLT_CONNECT_NOTIFY _In_ PFLT_DISCONNECT_NOTIFY _In_opt_ PFLT_MESSAGE_NOTIFY MessageNotifyCallback
Definition: fltkernel.h:1877
_Must_inspect_result_ _Outptr_ PFLT_PORT _In_ POBJECT_ATTRIBUTES _In_opt_ PVOID _In_ PFLT_CONNECT_NOTIFY ConnectNotifyCallback
Definition: fltkernel.h:1875
_Must_inspect_result_ _Outptr_ PFLT_PORT _In_ POBJECT_ATTRIBUTES _In_opt_ PVOID ServerPortCookie
Definition: fltkernel.h:1874
_Must_inspect_result_ _Outptr_ PFLT_PORT _In_ POBJECT_ATTRIBUTES _In_opt_ PVOID _In_ PFLT_CONNECT_NOTIFY _In_ PFLT_DISCONNECT_NOTIFY DisconnectNotifyCallback
Definition: fltkernel.h:1876
ULONG FltpObjectPointerReference(_In_ PFLT_OBJECT Object)
Definition: Object.c:322
Status
Definition: gdiplustypes.h:25
VOID FASTCALL ExAcquireFastMutex(IN PFAST_MUTEX FastMutex)
Definition: fmutex.c:23
VOID FASTCALL ExReleaseFastMutex(IN PFAST_MUTEX FastMutex)
Definition: fmutex.c:31
#define OBJ_KERNEL_HANDLE
Definition: winternl.h:231
static LONG MaxConnections
#define KernelMode
Definition: asm.h:34
#define FILE_READ_DATA
Definition: nt_native.h:628
#define STANDARD_RIGHTS_ALL
Definition: nt_native.h:69
PVOID *typedef PHANDLE
Definition: ntsecpkg.h:455
NTSTATUS NTAPI ObInsertObject(IN PVOID Object, IN PACCESS_STATE AccessState OPTIONAL, IN ACCESS_MASK DesiredAccess, IN ULONG ObjectPointerBias, OUT PVOID *NewObject OPTIONAL, OUT PHANDLE Handle)
Definition: obhandle.c:2935
NTSTATUS NTAPI ObCreateObject(IN KPROCESSOR_MODE ProbeMode OPTIONAL, IN POBJECT_TYPE Type, IN POBJECT_ATTRIBUTES ObjectAttributes OPTIONAL, IN KPROCESSOR_MODE AccessMode, IN OUT PVOID ParseContext OPTIONAL, IN ULONG ObjectSize, IN ULONG PagedPoolCharge OPTIONAL, IN ULONG NonPagedPoolCharge OPTIONAL, OUT PVOID *Object)
Definition: oblife.c:1039
FLT_MUTEX_LIST_HEAD ConnectionList
Definition: fltmgrint.h:121
LIST_ENTRY mList
Definition: fltmgrint.h:56
FAST_MUTEX mLock
Definition: fltmgrint.h:55
PFLT_DISCONNECT_NOTIFY DisconnectNotify
Definition: fltmgrint.h:192
PFLT_MESSAGE_NOTIFY MessageNotify
Definition: fltmgrint.h:193
PFLT_CONNECT_NOTIFY ConnectNotify
Definition: fltmgrint.h:191
#define RtlZeroMemory(Destination, Length)
Definition: typedefs.h:262
#define STATUS_INVALID_PARAMETER
Definition: udferr_usr.h:135

◆ _Out_writes_bytes_opt_()

_In_ ULONG _In_ KEY_VALUE_INFORMATION_CLASS _Out_writes_bytes_opt_ ( Length  )

◆ _Post_satisfies_() [1/2]

_Post_satisfies_ ( )

◆ _Post_satisfies_() [2/2]

_Post_satisfies_ ( return<=  0)

◆ NtCompactKeys()

NTSTATUS NTAPI NtCompactKeys ( _In_ ULONG  Count,
_In_reads_(Count) PHANDLE  KeyArray 
)

◆ NtCompressKey()

NTSTATUS NTAPI NtCompressKey ( _In_ HANDLE  Key)

◆ NtDeleteKey()

NTSYSCALLAPI NTSTATUS NTAPI NtDeleteKey ( _In_ HANDLE  KeyHandle)

◆ NtDeleteValueKey()

NTSYSCALLAPI NTSTATUS NTAPI NtDeleteValueKey ( _In_ HANDLE  KeyHandle,
_In_ PUNICODE_STRING  ValueName 
)

◆ NtEnumerateKey()

NTSYSCALLAPI NTSTATUS NTAPI NtEnumerateKey ( _In_ HANDLE  KeyHandle,
_In_ ULONG  Index,
_In_ KEY_INFORMATION_CLASS  KeyInformationClass,
_Out_bytecap_(Length) PVOID  KeyInformation,
_In_ ULONG  Length,
_Out_ PULONG  ResultLength 
)

◆ NtFlushKey()

NTSYSCALLAPI NTSTATUS NTAPI NtFlushKey ( _In_ HANDLE  KeyHandle)

◆ NtGetPlugPlayEvent()

NTSYSCALLAPI NTSTATUS NTAPI NtGetPlugPlayEvent ( _In_ ULONG  Reserved1,
_In_ ULONG  Reserved2,
_Out_ PPLUGPLAY_EVENT_BLOCK  Buffer,
_In_ ULONG  BufferSize 
)

◆ NtInitializeRegistry()

NTSYSCALLAPI NTSTATUS NTAPI NtInitializeRegistry ( _In_ USHORT  Flag)

◆ NtLoadKey()

NTSYSCALLAPI NTSTATUS NTAPI NtLoadKey ( _In_ POBJECT_ATTRIBUTES  KeyObjectAttributes,
_In_ POBJECT_ATTRIBUTES  FileObjectAttributes 
)

◆ NtLoadKey2()

NTSYSCALLAPI NTSTATUS NTAPI NtLoadKey2 ( _In_ POBJECT_ATTRIBUTES  KeyObjectAttributes,
_In_ POBJECT_ATTRIBUTES  FileObjectAttributes,
_In_ ULONG  Flags 
)

◆ NtLoadKeyEx()

NTSTATUS NTAPI NtLoadKeyEx ( _In_ POBJECT_ATTRIBUTES  TargetKey,
_In_ POBJECT_ATTRIBUTES  SourceFile,
_In_ ULONG  Flags,
_In_ HANDLE  TrustClassKey 
)

◆ NtLockProductActivationKeys()

NTSTATUS NTAPI NtLockProductActivationKeys ( _In_ PULONG  pPrivateVer,
_In_ PULONG  pSafeMode 
)

◆ NtLockRegistryKey()

NTSTATUS NTAPI NtLockRegistryKey ( _In_ HANDLE  KeyHandle)

◆ NtNotifyChangeKey()

NTSYSCALLAPI NTSTATUS NTAPI NtNotifyChangeKey ( _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 
)

◆ NtNotifyChangeMultipleKeys()

__kernel_entry NTSYSCALLAPI NTSTATUS NTAPI NtNotifyChangeMultipleKeys ( _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 
)

◆ NtOpenKey()

NTSYSCALLAPI NTSTATUS NTAPI NtOpenKey ( _Out_ PHANDLE  KeyHandle,
_In_ ACCESS_MASK  DesiredAccess,
_In_ POBJECT_ATTRIBUTES  ObjectAttributes 
)

◆ NtPlugPlayControl()

NTSYSCALLAPI NTSTATUS NTAPI NtPlugPlayControl ( _In_ PLUGPLAY_CONTROL_CLASS  PlugPlayControlClass,
_Inout_ PVOID  Buffer,
_In_ ULONG  BufferSize 
)

◆ NtQueryKey()

NTSYSCALLAPI NTSTATUS NTAPI NtQueryKey ( _In_ HANDLE  KeyHandle,
_In_ KEY_INFORMATION_CLASS  KeyInformationClass,
_Out_bytecap_(Length) PVOID  KeyInformation,
_In_ ULONG  Length,
_Out_ PULONG  ResultLength 
)

◆ NtQueryMultipleValueKey()

__kernel_entry NTSYSCALLAPI NTSTATUS NTAPI NtQueryMultipleValueKey ( _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 
)

◆ NtQueryOpenSubKeys()

NTSTATUS NTAPI NtQueryOpenSubKeys ( _In_ POBJECT_ATTRIBUTES  TargetKey,
_Out_ PULONG  HandleCount 
)

◆ NtQueryOpenSubKeysEx()

NTSTATUS NTAPI NtQueryOpenSubKeysEx ( _In_ POBJECT_ATTRIBUTES  TargetKey,
_In_ ULONG  BufferLength,
_In_ PVOID  Buffer,
_In_ PULONG  RequiredSize 
)

◆ NtRenameKey()

NTSYSCALLAPI NTSTATUS NTAPI NtRenameKey ( _In_ HANDLE  KeyHandle,
_In_ PUNICODE_STRING  NewName 
)

◆ NtReplaceKey()

NTSYSCALLAPI NTSTATUS NTAPI NtReplaceKey ( _In_ POBJECT_ATTRIBUTES  ObjectAttributes,
_In_ HANDLE  Key,
_In_ POBJECT_ATTRIBUTES  ReplacedObjectAttributes 
)

◆ NtRestoreKey()

NTSYSCALLAPI NTSTATUS NTAPI NtRestoreKey ( _In_ HANDLE  KeyHandle,
_In_ HANDLE  FileHandle,
_In_ ULONG  RestoreFlags 
)

◆ NtSaveKey()

NTSYSCALLAPI NTSTATUS NTAPI NtSaveKey ( _In_ HANDLE  KeyHandle,
_In_ HANDLE  FileHandle 
)

◆ NtSaveKeyEx()

NTSYSCALLAPI NTSTATUS NTAPI NtSaveKeyEx ( _In_ HANDLE  KeyHandle,
_In_ HANDLE  FileHandle,
_In_ ULONG  Flags 
)

◆ NtSaveMergedKeys()

NTSTATUS NTAPI NtSaveMergedKeys ( _In_ HANDLE  HighPrecedenceKeyHandle,
_In_ HANDLE  LowPrecedenceKeyHandle,
_In_ HANDLE  FileHandle 
)

◆ NtSetInformationKey()

__kernel_entry NTSYSCALLAPI NTSTATUS NTAPI NtSetInformationKey ( _In_ HANDLE  KeyHandle,
_In_ _Strict_type_match_ KEY_SET_INFORMATION_CLASS  KeySetInformationClass,
_In_reads_bytes_(KeySetInformationLength) PVOID  KeySetInformation,
_In_ ULONG  KeySetInformationLength 
)

◆ NtSetValueKey()

NTSYSCALLAPI NTSTATUS NTAPI NtSetValueKey ( _In_ HANDLE  KeyHandle,
_In_ PUNICODE_STRING  ValueName,
_In_opt_ ULONG  TitleIndex,
_In_ ULONG  Type,
_In_ PVOID  Data,
_In_ ULONG  DataSize 
)

◆ NtUnloadKey()

NTSYSCALLAPI NTSTATUS NTAPI NtUnloadKey ( _In_ POBJECT_ATTRIBUTES  KeyObjectAttributes)

◆ NtUnloadKey2()

NTSTATUS NTAPI NtUnloadKey2 ( _In_ POBJECT_ATTRIBUTES  TargetKey,
_In_ ULONG  Flags 
)

◆ NtUnloadKeyEx()

NTSTATUS NTAPI NtUnloadKeyEx ( _In_ POBJECT_ATTRIBUTES  TargetKey,
_In_ HANDLE  Event 
)

◆ ZwInitializeRegistry()

NTSYSAPI NTSTATUS NTAPI ZwInitializeRegistry ( _In_ USHORT  Flag)

Referenced by NtInitializeRegistry().

◆ ZwUnloadKey()

NTSYSAPI NTSTATUS NTAPI ZwUnloadKey ( _In_ POBJECT_ATTRIBUTES  KeyObjectAttributes)

Variable Documentation

◆ Class

◆ CreateOptions

◆ DesiredAccess

Definition at line 50 of file cmfuncs.h.

◆ Disposition

◆ Index

Definition at line 93 of file cmfuncs.h.

◆ KeyValueInformationClass

◆ Length

◆ ObjectAttributes

Definition at line 51 of file cmfuncs.h.

◆ ResultLength

◆ TitleIndex

Definition at line 52 of file cmfuncs.h.

◆ ValueName

Definition at line 264 of file cmfuncs.h.