#ifndef _NTREGAPI_H
#if (PHNT_VERSION >= PHNT_WINDOWS_10_RS1)
/**
* Opens an existing named registry-only lightweight transaction. This is object- name lookup, not lookup of a
* registry key or a KTM unit-of-work GUID.
*
* \param RegistryTransactionHandle Required output receiving a separately owned handle on success; close it
* with NtClose. Other open/duplicate handles keep the same transaction object alive. Initialize this output
* and check status.
* \param DesiredAccess Requested rights, including 0x4 for transacted key association, 0x8 for commit or 0x10
* for rollback as needed.
* \param ObjAttributes Initialized attributes identifying the named transaction in the Object Manager
* namespace. An unnamed transaction cannot be reopened by inventing a registry path or by passing its handle
* as a UOW identifier.
* \return STATUS_SUCCESS or an error such as STATUS_OBJECT_NAME_NOT_FOUND. After the last transaction handle
* closes, the rolled-back key is no longer available under its former name.
* \remarks Registry and KTM transactions are different object types. To open a KTM transaction by its GUID
* use NtOpenTransaction instead. Opening another handle does not clone the transaction or reset a completed
* transaction.
*/
_Kernel_entry_
NTSYSCALLAPI
NTSTATUS
NTAPI
NtOpenRegistryTransaction(
_Out_ HANDLE *RegistryTransactionHandle,
_In_ ACCESS_MASK DesiredAccess,
_In_ POBJECT_ATTRIBUTES ObjAttributes
);
View code on GitHub#ifndef _NTZWAPI_H
_Kernel_entry_
NTSYSCALLAPI
NTSTATUS
NTAPI
ZwOpenRegistryTransaction(
_Out_ HANDLE *RegistryTransactionHandle,
_In_ ACCESS_MASK DesiredAccess,
_In_ POBJECT_ATTRIBUTES ObjAttributes
);
View code on GitHubNo description available.