NtCommitRegistryTransaction - NtDoc

Native API online documentation, based on the System Informer (formerly Process Hacker) phnt headers
#ifndef _NTREGAPI_H
#if (PHNT_VERSION >= PHNT_WINDOWS_10_RS1)

/**
 * Commits staged changes of a registry-only lightweight transaction. It is not the KTM NtCommitTransaction
 * entry and does not accept a Boolean Wait argument.
 *
 * \param RegistryTransactionHandle Registry-transaction object handle with commit access 0x8. A KTM
 * transaction handle returns STATUS_OBJECT_TYPE_MISMATCH even though the corresponding right has the same
 * value.
 * \param Flags Reserved; must be 0. Nonzero flags return STATUS_INVALID_PARAMETER before handle validation; 1
 * is not a request for synchronous completion.
 * \return STATUS_SUCCESS for completed ordinary commit, or an NTSTATUS failure. For sequential calls,
 * committing again after commit returns STATUS_TRANSACTION_NOT_ACTIVE; committing after rollback returns
 * STATUS_TRANSACTION_ALREADY_ABORTED. Do not substitute KTM's repeat-call rules.
 * \remarks The handle remains caller-owned and must close. A completed transaction cannot be reused as a new
 * active transaction. Bounded registry visibility and last-close cleanup do not establish crash-recovery or
 * concurrent commit/rollback guarantees.
 */
_Kernel_entry_
NTSYSCALLAPI
NTSTATUS
NTAPI
NtCommitRegistryTransaction(
    _In_ HANDLE RegistryTransactionHandle,
    _Reserved_ ULONG Flags
    );

#endif
#endif

View code on GitHub
#ifndef _NTZWAPI_H

_Kernel_entry_
NTSYSCALLAPI
NTSTATUS
NTAPI
ZwCommitRegistryTransaction(
    _In_ HANDLE RegistryTransactionHandle,
    _Reserved_ ULONG Flags
    );

#endif

View code on GitHub

NtDoc

No description available.