source: Daodan/MSYS2/mingw32/i686-w64-mingw32/include/ktmtypes.h

Last change on this file was 1166, checked in by rossy, 3 years ago

Daodan: Replace MinGW build env with an up-to-date MSYS2 env

File size: 5.7 KB
Line 
1/**
2 * This file is part of the mingw-w64 runtime package.
3 * No warranty is given; refer to the file DISCLAIMER within this package.
4 */
5
6#ifndef _KTMTYPES_
7#define _KTMTYPES_
8
9#ifdef __cplusplus
10extern "C" {
11#endif
12
13 typedef GUID CRM_PROTOCOL_ID,*PCRM_PROTOCOL_ID;
14
15#define TRANSACTION_MANAGER_VOLATILE 0x00000001
16#define TRANSACTION_MANAGER_COMMIT_DEFAULT 0x00000000
17#define TRANSACTION_MANAGER_COMMIT_SYSTEM_VOLUME 0x00000002
18#define TRANSACTION_MANAGER_COMMIT_SYSTEM_HIVES 0x00000004
19#define TRANSACTION_MANAGER_COMMIT_LOWEST 0x00000008
20#define TRANSACTION_MANAGER_CORRUPT_FOR_RECOVERY 0x00000010
21#define TRANSACTION_MANAGER_CORRUPT_FOR_PROGRESS 0x00000020
22#define TRANSACTION_MANAGER_MAXIMUM_OPTION 0x0000003f
23
24#define TRANSACTION_DO_NOT_PROMOTE 0x00000001
25#define TRANSACTION_MAXIMUM_OPTION 0x00000001
26
27#define RESOURCE_MANAGER_VOLATILE 0x00000001
28#define RESOURCE_MANAGER_COMMUNICATION 0x00000002
29#define RESOURCE_MANAGER_MAXIMUM_OPTION 0x00000003
30
31#define CRM_PROTOCOL_EXPLICIT_MARSHAL_ONLY 0x00000001
32#define CRM_PROTOCOL_DYNAMIC_MARSHAL_INFO 0x00000002
33#define CRM_PROTOCOL_MAXIMUM_OPTION 0x00000003
34
35#define ENLISTMENT_SUPERIOR 0x00000001
36#define ENLISTMENT_MAXIMUM_OPTION 0x00000001
37
38 typedef ULONG NOTIFICATION_MASK;
39#define TRANSACTION_NOTIFY_MASK 0x3fffffff
40#define TRANSACTION_NOTIFY_PREPREPARE 0x00000001
41#define TRANSACTION_NOTIFY_PREPARE 0x00000002
42#define TRANSACTION_NOTIFY_COMMIT 0x00000004
43#define TRANSACTION_NOTIFY_ROLLBACK 0x00000008
44#define TRANSACTION_NOTIFY_PREPREPARE_COMPLETE 0x00000010
45#define TRANSACTION_NOTIFY_PREPARE_COMPLETE 0x00000020
46#define TRANSACTION_NOTIFY_COMMIT_COMPLETE 0x00000040
47#define TRANSACTION_NOTIFY_ROLLBACK_COMPLETE 0x00000080
48#define TRANSACTION_NOTIFY_RECOVER 0x00000100
49#define TRANSACTION_NOTIFY_SINGLE_PHASE_COMMIT 0x00000200
50#define TRANSACTION_NOTIFY_DELEGATE_COMMIT 0x00000400
51#define TRANSACTION_NOTIFY_RECOVER_QUERY 0x00000800
52#define TRANSACTION_NOTIFY_ENLIST_PREPREPARE 0x00001000
53#define TRANSACTION_NOTIFY_LAST_RECOVER 0x00002000
54#define TRANSACTION_NOTIFY_INDOUBT 0x00004000
55#define TRANSACTION_NOTIFY_PROPAGATE_PULL 0x00008000
56#define TRANSACTION_NOTIFY_PROPAGATE_PUSH 0x00010000
57#define TRANSACTION_NOTIFY_MARSHAL 0x00020000
58#define TRANSACTION_NOTIFY_ENLIST_MASK 0x00040000
59#define TRANSACTION_NOTIFY_RM_DISCONNECTED 0x01000000
60#define TRANSACTION_NOTIFY_TM_ONLINE 0x02000000
61#define TRANSACTION_NOTIFY_COMMIT_REQUEST 0x04000000
62#define TRANSACTION_NOTIFY_PROMOTE 0x08000000
63#define TRANSACTION_NOTIFY_PROMOTE_NEW 0x10000000
64#define TRANSACTION_NOTIFY_REQUEST_OUTCOME 0x20000000
65
66#define TRANSACTION_NOTIFY_COMMIT_FINALIZE 0x40000000
67
68#define TRANSACTIONMANAGER_OBJECT_PATH L"\\TransactionManager\\"
69#define TRANSACTION_OBJECT_PATH L"\\Transaction\\"
70#define ENLISTMENT_OBJECT_PATH L"\\Enlistment\\"
71#define RESOURCE_MANAGER_OBJECT_PATH L"\\ResourceManager\\"
72
73#define TRANSACTIONMANAGER_OBJECT_NAME_LENGTH_IN_BYTES (sizeof (TRANSACTIONMANAGER_OBJECT_PATH) + (38 * sizeof (WCHAR)))
74#define TRANSACTION_OBJECT_NAME_LENGTH_IN_BYTES (sizeof (TRANSACTION_OBJECT_PATH) + (38 * sizeof (WCHAR)))
75#define ENLISTMENT_OBJECT_NAME_LENGTH_IN_BYTES (sizeof (ENLISTMENT_OBJECT_PATH) + (38 * sizeof (WCHAR)))
76#define RESOURCE_MANAGER_OBJECT_NAME_LENGTH_IN_BYTES (sizeof (RESOURCE_MANAGER_OBJECT_PATH) + (38 * sizeof (WCHAR)))
77
78 typedef struct _TRANSACTION_NOTIFICATION {
79 PVOID TransactionKey;
80 ULONG TransactionNotification;
81 LARGE_INTEGER TmVirtualClock;
82 ULONG ArgumentLength;
83 } TRANSACTION_NOTIFICATION,*PTRANSACTION_NOTIFICATION;
84
85 typedef struct _TRANSACTION_NOTIFICATION_RECOVERY_ARGUMENT {
86 GUID EnlistmentId;
87 GUID UOW;
88 } TRANSACTION_NOTIFICATION_RECOVERY_ARGUMENT,*PTRANSACTION_NOTIFICATION_RECOVERY_ARGUMENT;
89
90#define TRANSACTION_NOTIFICATION_TM_ONLINE_FLAG_IS_CLUSTERED 0x1
91
92 typedef struct _TRANSACTION_NOTIFICATION_TM_ONLINE_ARGUMENT {
93 GUID TmIdentity;
94 ULONG Flags;
95 } TRANSACTION_NOTIFICATION_TM_ONLINE_ARGUMENT,*PTRANSACTION_NOTIFICATION_TM_ONLINE_ARGUMENT;
96
97 typedef ULONG SAVEPOINT_ID,*PSAVEPOINT_ID;
98
99 typedef struct _TRANSACTION_NOTIFICATION_SAVEPOINT_ARGUMENT {
100 SAVEPOINT_ID SavepointId;
101 } TRANSACTION_NOTIFICATION_SAVEPOINT_ARGUMENT,*PTRANSACTION_NOTIFICATION_SAVEPOINT_ARGUMENT;
102
103 typedef struct _TRANSACTION_NOTIFICATION_PROPAGATE_ARGUMENT {
104 ULONG PropagationCookie;
105 GUID UOW;
106 GUID TmIdentity;
107 ULONG BufferLength;
108 } TRANSACTION_NOTIFICATION_PROPAGATE_ARGUMENT,*PTRANSACTION_NOTIFICATION_PROPAGATE_ARGUMENT;
109
110 typedef struct _TRANSACTION_NOTIFICATION_MARSHAL_ARGUMENT {
111 ULONG MarshalCookie;
112 GUID UOW;
113 } TRANSACTION_NOTIFICATION_MARSHAL_ARGUMENT,*PTRANSACTION_NOTIFICATION_MARSHAL_ARGUMENT;
114
115 typedef TRANSACTION_NOTIFICATION_PROPAGATE_ARGUMENT TRANSACTION_NOTIFICATION_PROMOTE_ARGUMENT,*PTRANSACTION_NOTIFICATION_PROMOTE_ARGUMENT;
116
117#define KTM_MARSHAL_BLOB_VERSION_MAJOR 1
118#define KTM_MARSHAL_BLOB_VERSION_MINOR 1
119
120#define MAX_TRANSACTION_DESCRIPTION_LENGTH 64
121#define MAX_RESOURCEMANAGER_DESCRIPTION_LENGTH 64
122
123 typedef struct _KCRM_MARSHAL_HEADER {
124 ULONG VersionMajor;
125 ULONG VersionMinor;
126 ULONG NumProtocols;
127 ULONG Unused;
128 } KCRM_MARSHAL_HEADER,*PKCRM_MARSHAL_HEADER,*RESTRICTED_POINTER PRKCRM_MARSHAL_HEADER;
129
130 typedef struct _KCRM_TRANSACTION_BLOB {
131 GUID UOW;
132 GUID TmIdentity;
133 ULONG IsolationLevel;
134 ULONG IsolationFlags;
135 ULONG Timeout;
136 WCHAR Description[MAX_TRANSACTION_DESCRIPTION_LENGTH];
137 } KCRM_TRANSACTION_BLOB,*PKCRM_TRANSACTION_BLOB,*RESTRICTED_POINTER PRKCRM_TRANSACTION_BLOB;
138
139 typedef struct _KCRM_PROTOCOL_BLOB {
140 CRM_PROTOCOL_ID ProtocolId;
141 ULONG StaticInfoLength;
142 ULONG TransactionIdInfoLength;
143 ULONG Unused1;
144 ULONG Unused2;
145 } KCRM_PROTOCOL_BLOB,*PKCRM_PROTOCOL_BLOB,*RESTRICTED_POINTER PRKCRM_PROTOCOL_BLOB;
146
147#ifdef __cplusplus
148}
149#endif
150
151#endif
Note: See TracBrowser for help on using the repository browser.