6#define TRANSACTIONMANAGER_QUERY_INFORMATION (0x0001)
7#define TRANSACTIONMANAGER_SET_INFORMATION (0x0002)
8#define TRANSACTIONMANAGER_RECOVER (0x0004)
9#define TRANSACTIONMANAGER_RENAME (0x0008)
10#define TRANSACTIONMANAGER_CREATE_RM (0x0010)
11#define TRANSACTIONMANAGER_BIND_TRANSACTION (0x0020)
13#define TRANSACTIONMANAGER_GENERIC_READ (STANDARD_RIGHTS_READ |\
14 TRANSACTIONMANAGER_QUERY_INFORMATION)
16#define TRANSACTIONMANAGER_GENERIC_WRITE (STANDARD_RIGHTS_WRITE |\
17 TRANSACTIONMANAGER_SET_INFORMATION |\
18 TRANSACTIONMANAGER_RECOVER |\
19 TRANSACTIONMANAGER_RENAME |\
20 TRANSACTIONMANAGER_CREATE_RM)
22#define TRANSACTIONMANAGER_GENERIC_EXECUTE (STANDARD_RIGHTS_EXECUTE)
24#define TRANSACTIONMANAGER_ALL_ACCESS (STANDARD_RIGHTS_REQUIRED |\
25 TRANSACTIONMANAGER_GENERIC_READ |\
26 TRANSACTIONMANAGER_GENERIC_WRITE |\
27 TRANSACTIONMANAGER_GENERIC_EXECUTE |\
28 TRANSACTIONMANAGER_BIND_TRANSACTION)
30#define TRANSACTION_QUERY_INFORMATION (0x0001)
31#define TRANSACTION_SET_INFORMATION (0x0002)
32#define TRANSACTION_ENLIST (0x0004)
33#define TRANSACTION_COMMIT (0x0008)
34#define TRANSACTION_ROLLBACK (0x0010)
35#define TRANSACTION_PROPAGATE (0x0020)
36#define TRANSACTION_RIGHT_RESERVED1 (0x0040)
38#define TRANSACTION_GENERIC_READ (STANDARD_RIGHTS_READ |\
39 TRANSACTION_QUERY_INFORMATION |\
42#define TRANSACTION_GENERIC_WRITE (STANDARD_RIGHTS_WRITE |\
43 TRANSACTION_SET_INFORMATION |\
46 TRANSACTION_ROLLBACK |\
47 TRANSACTION_PROPAGATE |\
50#define TRANSACTION_GENERIC_EXECUTE (STANDARD_RIGHTS_EXECUTE |\
52 TRANSACTION_ROLLBACK |\
55#define TRANSACTION_ALL_ACCESS (STANDARD_RIGHTS_REQUIRED |\
56 TRANSACTION_GENERIC_READ |\
57 TRANSACTION_GENERIC_WRITE |\
58 TRANSACTION_GENERIC_EXECUTE)
60#define TRANSACTION_RESOURCE_MANAGER_RIGHTS (TRANSACTION_GENERIC_READ |\
61 STANDARD_RIGHTS_WRITE |\
62 TRANSACTION_SET_INFORMATION |\
64 TRANSACTION_ROLLBACK |\
65 TRANSACTION_PROPAGATE |\
68#define RESOURCEMANAGER_QUERY_INFORMATION (0x0001)
69#define RESOURCEMANAGER_SET_INFORMATION (0x0002)
70#define RESOURCEMANAGER_RECOVER (0x0004)
71#define RESOURCEMANAGER_ENLIST (0x0008)
72#define RESOURCEMANAGER_GET_NOTIFICATION (0x0010)
73#define RESOURCEMANAGER_REGISTER_PROTOCOL (0x0020)
74#define RESOURCEMANAGER_COMPLETE_PROPAGATION (0x0040)
76#define RESOURCEMANAGER_GENERIC_READ (STANDARD_RIGHTS_READ |\
77 RESOURCEMANAGER_QUERY_INFORMATION |\
80#define RESOURCEMANAGER_GENERIC_WRITE (STANDARD_RIGHTS_WRITE |\
81 RESOURCEMANAGER_SET_INFORMATION |\
82 RESOURCEMANAGER_RECOVER |\
83 RESOURCEMANAGER_ENLIST |\
84 RESOURCEMANAGER_GET_NOTIFICATION |\
85 RESOURCEMANAGER_REGISTER_PROTOCOL |\
86 RESOURCEMANAGER_COMPLETE_PROPAGATION |\
89#define RESOURCEMANAGER_GENERIC_EXECUTE (STANDARD_RIGHTS_EXECUTE |\
90 RESOURCEMANAGER_RECOVER |\
91 RESOURCEMANAGER_ENLIST |\
92 RESOURCEMANAGER_GET_NOTIFICATION |\
93 RESOURCEMANAGER_COMPLETE_PROPAGATION |\
96#define RESOURCEMANAGER_ALL_ACCESS (STANDARD_RIGHTS_REQUIRED |\
97 RESOURCEMANAGER_GENERIC_READ |\
98 RESOURCEMANAGER_GENERIC_WRITE |\
99 RESOURCEMANAGER_GENERIC_EXECUTE)
101#define ENLISTMENT_QUERY_INFORMATION (0x0001)
102#define ENLISTMENT_SET_INFORMATION (0x0002)
103#define ENLISTMENT_RECOVER (0x0004)
104#define ENLISTMENT_SUBORDINATE_RIGHTS (0x0008)
105#define ENLISTMENT_SUPERIOR_RIGHTS (0x0010)
107#define ENLISTMENT_GENERIC_READ (STANDARD_RIGHTS_READ |\
108 ENLISTMENT_QUERY_INFORMATION)
110#define ENLISTMENT_GENERIC_WRITE (STANDARD_RIGHTS_WRITE |\
111 ENLISTMENT_SET_INFORMATION |\
112 ENLISTMENT_RECOVER |\
113 ENLISTMENT_SUBORDINATE_RIGHTS |\
114 ENLISTMENT_SUPERIOR_RIGHTS)
116#define ENLISTMENT_GENERIC_EXECUTE (STANDARD_RIGHTS_EXECUTE |\
117 ENLISTMENT_RECOVER |\
118 ENLISTMENT_SUBORDINATE_RIGHTS |\
119 ENLISTMENT_SUPERIOR_RIGHTS)
121#define ENLISTMENT_ALL_ACCESS (STANDARD_RIGHTS_REQUIRED |\
122 ENLISTMENT_GENERIC_READ |\
123 ENLISTMENT_GENERIC_WRITE |\
124 ENLISTMENT_GENERIC_EXECUTE)
254#if defined(__cplusplus)
312#if (NTDDI_VERSION >= NTDDI_VISTA)
320NtCreateTransactionManager(
334NtOpenTransactionManager(
348NtRenameTransactionManager(
358NtRollforwardTransactionManager(
368NtRecoverTransactionManager(
377NtQueryInformationTransactionManager(
390NtSetInformationTransactionManager(
402NtEnumerateTransactionObject(
446NtQueryInformationTransaction(
459NtSetInformationTransaction(
479NtRollbackTransaction(
518NtQueryInformationEnlistment(
531NtSetInformationEnlistment(
553NtPrePrepareEnlistment(
646NtCreateResourceManager(
661NtOpenResourceManager(
674NtRecoverResourceManager(
683NtGetNotificationResourceManager(
698NtQueryInformationResourceManager(
711NtSetInformationResourceManager(
723NtRegisterProtocolAddressInformation(
735NtPropagationComplete(
#define _IRQL_requires_max_(irql)
#define _In_reads_bytes_(size)
#define _Out_writes_bytes_(size)
#define _Must_inspect_result_
#define _Inout_updates_bytes_(size)
struct _TRANSACTION_ENLISTMENT_PAIR * PTRANSACTION_ENLISTMENT_PAIR
struct _TRANSACTIONMANAGER_LOG_INFORMATION TRANSACTIONMANAGER_LOG_INFORMATION
_TRANSACTION_INFORMATION_CLASS
@ TransactionEnlistmentInformation
@ TransactionBasicInformation
@ TransactionPropertiesInformation
@ TransactionSuperiorEnlistmentInformation
struct _TRANSACTION_BASIC_INFORMATION TRANSACTION_BASIC_INFORMATION
_In_ ULONG _In_ NTSTATUS PropStatus
NTSTATUS(NTAPI * PFN_NT_SET_INFORMATION_TRANSACTION)(_In_ HANDLE TransactionHandle, _In_ TRANSACTION_INFORMATION_CLASS TransactionInformationClass, _In_ PVOID TransactionInformation, _In_ ULONG TransactionInformationLength)
struct _ENLISTMENT_CRM_INFORMATION ENLISTMENT_CRM_INFORMATION
struct _TRANSACTION_LIST_INFORMATION * PTRANSACTION_LIST_INFORMATION
_Must_inspect_result_ _In_ TRANSACTIONMANAGER_INFORMATION_CLASS TransactionManagerInformationClass
NTSTATUS(NTAPI * PFN_NT_QUERY_INFORMATION_TRANSACTION)(_In_ HANDLE TransactionHandle, _In_ TRANSACTION_INFORMATION_CLASS TransactionInformationClass, _Out_writes_bytes_(TransactionInformationLength) PVOID TransactionInformation, _In_ ULONG TransactionInformationLength, _Out_opt_ PULONG ReturnLength)
_Must_inspect_result_ _In_ ACCESS_MASK _In_opt_ POBJECT_ATTRIBUTES _In_opt_ PUNICODE_STRING _In_opt_ LPGUID TmIdentity
struct _TRANSACTIONMANAGER_BASIC_INFORMATION TRANSACTIONMANAGER_BASIC_INFORMATION
NTSTATUS(NTAPI * PFN_NT_COMMIT_TRANSACTION)(_In_ HANDLE TransactionHandle, _In_ BOOLEAN Wait)
_Must_inspect_result_ _In_ KTMOBJECT_TYPE _In_ ULONG ObjectCursorLength
struct _TRANSACTION_PROPERTIES_INFORMATION TRANSACTION_PROPERTIES_INFORMATION
struct _KTMOBJECT_CURSOR KTMOBJECT_CURSOR
enum _RESOURCEMANAGER_INFORMATION_CLASS RESOURCEMANAGER_INFORMATION_CLASS
struct _TRANSACTION_PROPERTIES_INFORMATION * PTRANSACTION_PROPERTIES_INFORMATION
_Must_inspect_result_ _In_ ACCESS_MASK _In_opt_ POBJECT_ATTRIBUTES _In_opt_ PUNICODE_STRING _In_opt_ LPGUID _In_opt_ ULONG OpenOptions
@ KTMOBJECT_RESOURCE_MANAGER
@ KTMOBJECT_TRANSACTION_MANAGER
struct _RESOURCEMANAGER_COMPLETION_INFORMATION RESOURCEMANAGER_COMPLETION_INFORMATION
struct _TRANSACTION_BASIC_INFORMATION * PTRANSACTION_BASIC_INFORMATION
_Must_inspect_result_ _In_ ACCESS_MASK _In_opt_ POBJECT_ATTRIBUTES _In_opt_ LPGUID _In_opt_ HANDLE TmHandle
_Must_inspect_result_ _In_ TRANSACTIONMANAGER_INFORMATION_CLASS _In_ ULONG TransactionManagerInformationLength
enum _KTMOBJECT_TYPE KTMOBJECT_TYPE
_Must_inspect_result_ _In_ TRANSACTIONMANAGER_INFORMATION_CLASS _In_ ULONG _Out_ PULONG ReturnLength
struct _KTMOBJECT_CURSOR * PKTMOBJECT_CURSOR
_Must_inspect_result_ _In_ ACCESS_MASK _In_opt_ POBJECT_ATTRIBUTES _In_opt_ PUNICODE_STRING _In_opt_ ULONG _In_opt_ ULONG CommitStrength
_Must_inspect_result_ _In_ ACCESS_MASK _In_opt_ POBJECT_ATTRIBUTES ObjectAttributes
_Must_inspect_result_ _In_ PCRM_PROTOCOL_ID ProtocolId
_Must_inspect_result_ _In_ PCRM_PROTOCOL_ID _In_ ULONG ProtocolInformationSize
_Must_inspect_result_ _In_ KTMOBJECT_TYPE QueryType
NTSTATUS(NTAPI * PFN_NT_OPEN_TRANSACTION)(_Out_ PHANDLE TransactionHandle, _In_ ACCESS_MASK DesiredAccess, _In_ POBJECT_ATTRIBUTES ObjectAttributes, _In_opt_ LPGUID Uow, _In_opt_ HANDLE TmHandle)
struct _RESOURCEMANAGER_BASIC_INFORMATION * PRESOURCEMANAGER_BASIC_INFORMATION
struct _ENLISTMENT_BASIC_INFORMATION * PENLISTMENT_BASIC_INFORMATION
@ TransactionStateCommittedNotify
@ TransactionStateIndoubt
struct _TRANSACTIONMANAGER_LOGPATH_INFORMATION TRANSACTIONMANAGER_LOGPATH_INFORMATION
_Must_inspect_result_ _Out_ PTRANSACTION_NOTIFICATION _In_ ULONG _In_opt_ PLARGE_INTEGER _Out_opt_ PULONG _In_ ULONG _In_opt_ ULONG_PTR AsynchronousContext
struct _TRANSACTIONMANAGER_RECOVERY_INFORMATION * PTRANSACTIONMANAGER_RECOVERY_INFORMATION
_Must_inspect_result_ _In_ TRANSACTION_INFORMATION_CLASS TransactionInformationClass
_Must_inspect_result_ _In_ ENLISTMENT_INFORMATION_CLASS _In_ ULONG EnlistmentInformationLength
struct _TRANSACTION_LIST_ENTRY * PTRANSACTION_LIST_ENTRY
struct _TRANSACTION_ENLISTMENT_PAIR TRANSACTION_ENLISTMENT_PAIR
_ENLISTMENT_INFORMATION_CLASS
@ EnlistmentRecoveryInformation
@ EnlistmentBasicInformation
@ EnlistmentCrmInformation
enum _TRANSACTIONMANAGER_INFORMATION_CLASS TRANSACTIONMANAGER_INFORMATION_CLASS
struct _ENLISTMENT_BASIC_INFORMATION ENLISTMENT_BASIC_INFORMATION
_Must_inspect_result_ _In_ PCRM_PROTOCOL_ID _In_ ULONG _In_ PVOID ProtocolInformation
struct _TRANSACTION_SUPERIOR_ENLISTMENT_INFORMATION * PTRANSACTION_SUPERIOR_ENLISTMENT_INFORMATION
_Must_inspect_result_ _Out_ PTRANSACTION_NOTIFICATION _In_ ULONG _In_opt_ PLARGE_INTEGER _Out_opt_ PULONG _In_ ULONG Asynchronous
_Must_inspect_result_ _In_ RESOURCEMANAGER_INFORMATION_CLASS ResourceManagerInformationClass
enum _KTMOBJECT_TYPE * PKTMOBJECT_TYPE
_Must_inspect_result_ _In_ ACCESS_MASK _In_opt_ POBJECT_ATTRIBUTES _In_opt_ LPGUID _In_opt_ HANDLE _In_opt_ ULONG _In_opt_ ULONG _In_opt_ ULONG _In_opt_ PLARGE_INTEGER _In_opt_ PUNICODE_STRING Description
_Must_inspect_result_ _In_ LPGUID ExistingTransactionManagerGuid
_Must_inspect_result_ _In_ ACCESS_MASK _In_ HANDLE _In_ HANDLE TransactionHandle
struct _TRANSACTIONMANAGER_BASIC_INFORMATION * PTRANSACTIONMANAGER_BASIC_INFORMATION
struct _TRANSACTION_ENLISTMENTS_INFORMATION TRANSACTION_ENLISTMENTS_INFORMATION
struct _TRANSACTIONMANAGER_LOGPATH_INFORMATION * PTRANSACTIONMANAGER_LOGPATH_INFORMATION
_Must_inspect_result_ _In_ ACCESS_MASK _In_ HANDLE _In_ HANDLE _In_opt_ POBJECT_ATTRIBUTES _In_opt_ ULONG _In_ NOTIFICATION_MASK _In_opt_ PVOID EnlistmentKey
_Must_inspect_result_ _In_ ACCESS_MASK DesiredAccess
_Must_inspect_result_ _In_ RESOURCEMANAGER_INFORMATION_CLASS _In_ ULONG ResourceManagerInformationLength
_Must_inspect_result_ _In_ ACCESS_MASK _In_opt_ POBJECT_ATTRIBUTES _In_opt_ LPGUID _In_opt_ HANDLE _In_opt_ ULONG _In_opt_ ULONG _In_opt_ ULONG _In_opt_ PLARGE_INTEGER Timeout
_Must_inspect_result_ _In_ ACCESS_MASK _In_opt_ POBJECT_ATTRIBUTES _In_opt_ LPGUID _In_opt_ HANDLE _In_opt_ ULONG _In_opt_ ULONG IsolationLevel
NTSTATUS(NTAPI * PFN_NT_CREATE_TRANSACTION)(_Out_ PHANDLE TransactionHandle, _In_ ACCESS_MASK DesiredAccess, _In_opt_ POBJECT_ATTRIBUTES ObjectAttributes, _In_opt_ LPGUID Uow, _In_opt_ HANDLE TmHandle, _In_opt_ ULONG CreateOptions, _In_opt_ ULONG IsolationLevel, _In_opt_ ULONG IsolationFlags, _In_opt_ PLARGE_INTEGER Timeout, _In_opt_ PUNICODE_STRING Description)
_Must_inspect_result_ _In_opt_ PLARGE_INTEGER TmVirtualClock
_Must_inspect_result_ _In_ ACCESS_MASK _In_opt_ POBJECT_ATTRIBUTES _In_opt_ PUNICODE_STRING LogFileName
enum _ENLISTMENT_INFORMATION_CLASS ENLISTMENT_INFORMATION_CLASS
struct _TRANSACTION_LIST_ENTRY TRANSACTION_LIST_ENTRY
struct _TRANSACTION_BIND_INFORMATION TRANSACTION_BIND_INFORMATION
_Must_inspect_result_ _In_ ACCESS_MASK _In_opt_ POBJECT_ATTRIBUTES _In_opt_ LPGUID _In_opt_ HANDLE _In_opt_ ULONG _In_opt_ ULONG _In_opt_ ULONG IsolationFlags
struct _TRANSACTIONMANAGER_LOG_INFORMATION * PTRANSACTIONMANAGER_LOG_INFORMATION
struct _TRANSACTION_SUPERIOR_ENLISTMENT_INFORMATION TRANSACTION_SUPERIOR_ENLISTMENT_INFORMATION
enum _TRANSACTION_STATE TRANSACTION_STATE
@ TransactionOutcomeCommitted
@ TransactionOutcomeAborted
@ TransactionOutcomeUndetermined
struct _TRANSACTIONMANAGER_RECOVERY_INFORMATION TRANSACTIONMANAGER_RECOVERY_INFORMATION
_Must_inspect_result_ _Out_ PTRANSACTION_NOTIFICATION _In_ ULONG NotificationLength
_Must_inspect_result_ _In_ ENLISTMENT_INFORMATION_CLASS EnlistmentInformationClass
_Must_inspect_result_ _In_ ACCESS_MASK _In_ HANDLE _In_opt_ LPGUID ResourceManagerGuid
_Must_inspect_result_ _In_ TRANSACTION_INFORMATION_CLASS _In_ ULONG TransactionInformationLength
_TRANSACTIONMANAGER_INFORMATION_CLASS
@ TransactionManagerRecoveryInformation
@ TransactionManagerLogPathInformation
@ TransactionManagerLogInformation
@ TransactionManagerBasicInformation
struct _TRANSACTION_LIST_INFORMATION TRANSACTION_LIST_INFORMATION
NTSTATUS(NTAPI * PFN_NT_ROLLBACK_TRANSACTION)(_In_ HANDLE TransactionHandle, _In_ BOOLEAN Wait)
enum _TRANSACTION_INFORMATION_CLASS TRANSACTION_INFORMATION_CLASS
struct _TRANSACTION_ENLISTMENTS_INFORMATION * PTRANSACTION_ENLISTMENTS_INFORMATION
_Must_inspect_result_ _In_ ACCESS_MASK _In_opt_ POBJECT_ATTRIBUTES _In_opt_ PUNICODE_STRING _In_opt_ ULONG CreateOptions
_Must_inspect_result_ _Out_ PTRANSACTION_NOTIFICATION TransactionNotification
_Must_inspect_result_ _In_ ACCESS_MASK _In_ HANDLE ResourceManagerHandle
struct _RESOURCEMANAGER_COMPLETION_INFORMATION * PRESOURCEMANAGER_COMPLETION_INFORMATION
_Must_inspect_result_ _In_ ACCESS_MASK _In_ HANDLE _In_ LPGUID EnlistmentGuid
struct _ENLISTMENT_CRM_INFORMATION * PENLISTMENT_CRM_INFORMATION
struct _TRANSACTION_BIND_INFORMATION * PTRANSACTION_BIND_INFORMATION
_RESOURCEMANAGER_INFORMATION_CLASS
@ ResourceManagerBasicInformation
@ ResourceManagerCompletionInformation
enum _TRANSACTION_OUTCOME TRANSACTION_OUTCOME
_Must_inspect_result_ _In_ ACCESS_MASK _In_ HANDLE _In_ HANDLE _In_opt_ POBJECT_ATTRIBUTES _In_opt_ ULONG _In_ NOTIFICATION_MASK NotificationMask
struct _RESOURCEMANAGER_BASIC_INFORMATION RESOURCEMANAGER_BASIC_INFORMATION
_Must_inspect_result_ _In_ ACCESS_MASK _In_opt_ POBJECT_ATTRIBUTES _In_opt_ LPGUID Uow
_Must_inspect_result_ _In_ ACCESS_MASK _In_ HANDLE _In_ LPGUID RmGuid
_Must_inspect_result_ _In_ WDFDEVICE _In_ ULONG _In_ ACCESS_MASK DesiredAccess
_Must_inspect_result_ _In_ WDFDEVICE _In_ DEVICE_REGISTRY_PROPERTY _In_ ULONG BufferLength
_In_ WDFDPC _In_ BOOLEAN Wait
_Must_inspect_result_ _In_opt_ WDFKEY _In_ PCUNICODE_STRING _In_ ACCESS_MASK _In_ ULONG CreateOptions
_In_ TRANSACTIONMANAGER_INFORMATION_CLASS _In_ PVOID TransactionManagerInformation
_In_ TRANSACTION_INFORMATION_CLASS _In_ PVOID TransactionInformation