More formatting fixe
[reactos.git] / include / xdk / nttmapi.h
1 $if (_WDMDDK_)
2 #ifndef _NTTMAPI_
3 #define _NTTMAPI_
4
5 #include <ktmtypes.h>
6
7 #define TRANSACTIONMANAGER_QUERY_INFORMATION (0x0001)
8 #define TRANSACTIONMANAGER_SET_INFORMATION (0x0002)
9 #define TRANSACTIONMANAGER_RECOVER (0x0004)
10 #define TRANSACTIONMANAGER_RENAME (0x0008)
11 #define TRANSACTIONMANAGER_CREATE_RM (0x0010)
12 #define TRANSACTIONMANAGER_BIND_TRANSACTION (0x0020)
13
14 #define TRANSACTIONMANAGER_GENERIC_READ (STANDARD_RIGHTS_READ |\
15 TRANSACTIONMANAGER_QUERY_INFORMATION)
16
17 #define TRANSACTIONMANAGER_GENERIC_WRITE (STANDARD_RIGHTS_WRITE |\
18 TRANSACTIONMANAGER_SET_INFORMATION |\
19 TRANSACTIONMANAGER_RECOVER |\
20 TRANSACTIONMANAGER_RENAME |\
21 TRANSACTIONMANAGER_CREATE_RM)
22
23 #define TRANSACTIONMANAGER_GENERIC_EXECUTE (STANDARD_RIGHTS_EXECUTE)
24
25 #define TRANSACTIONMANAGER_ALL_ACCESS (STANDARD_RIGHTS_REQUIRED |\
26 TRANSACTIONMANAGER_GENERIC_READ |\
27 TRANSACTIONMANAGER_GENERIC_WRITE |\
28 TRANSACTIONMANAGER_GENERIC_EXECUTE |\
29 TRANSACTIONMANAGER_BIND_TRANSACTION)
30
31 #define TRANSACTION_QUERY_INFORMATION (0x0001)
32 #define TRANSACTION_SET_INFORMATION (0x0002)
33 #define TRANSACTION_ENLIST (0x0004)
34 #define TRANSACTION_COMMIT (0x0008)
35 #define TRANSACTION_ROLLBACK (0x0010)
36 #define TRANSACTION_PROPAGATE (0x0020)
37 #define TRANSACTION_RIGHT_RESERVED1 (0x0040)
38
39 #define TRANSACTION_GENERIC_READ (STANDARD_RIGHTS_READ |\
40 TRANSACTION_QUERY_INFORMATION |\
41 SYNCHRONIZE)
42
43 #define TRANSACTION_GENERIC_WRITE (STANDARD_RIGHTS_WRITE |\
44 TRANSACTION_SET_INFORMATION |\
45 TRANSACTION_COMMIT |\
46 TRANSACTION_ENLIST |\
47 TRANSACTION_ROLLBACK |\
48 TRANSACTION_PROPAGATE |\
49 SYNCHRONIZE)
50
51 #define TRANSACTION_GENERIC_EXECUTE (STANDARD_RIGHTS_EXECUTE |\
52 TRANSACTION_COMMIT |\
53 TRANSACTION_ROLLBACK |\
54 SYNCHRONIZE)
55
56 #define TRANSACTION_ALL_ACCESS (STANDARD_RIGHTS_REQUIRED |\
57 TRANSACTION_GENERIC_READ |\
58 TRANSACTION_GENERIC_WRITE |\
59 TRANSACTION_GENERIC_EXECUTE)
60
61 #define TRANSACTION_RESOURCE_MANAGER_RIGHTS (TRANSACTION_GENERIC_READ |\
62 STANDARD_RIGHTS_WRITE |\
63 TRANSACTION_SET_INFORMATION |\
64 TRANSACTION_ENLIST |\
65 TRANSACTION_ROLLBACK |\
66 TRANSACTION_PROPAGATE |\
67 SYNCHRONIZE)
68
69 #define RESOURCEMANAGER_QUERY_INFORMATION (0x0001)
70 #define RESOURCEMANAGER_SET_INFORMATION (0x0002)
71 #define RESOURCEMANAGER_RECOVER (0x0004)
72 #define RESOURCEMANAGER_ENLIST (0x0008)
73 #define RESOURCEMANAGER_GET_NOTIFICATION (0x0010)
74 #define RESOURCEMANAGER_REGISTER_PROTOCOL (0x0020)
75 #define RESOURCEMANAGER_COMPLETE_PROPAGATION (0x0040)
76
77 #define RESOURCEMANAGER_GENERIC_READ (STANDARD_RIGHTS_READ |\
78 RESOURCEMANAGER_QUERY_INFORMATION |\
79 SYNCHRONIZE)
80
81 #define RESOURCEMANAGER_GENERIC_WRITE (STANDARD_RIGHTS_WRITE |\
82 RESOURCEMANAGER_SET_INFORMATION |\
83 RESOURCEMANAGER_RECOVER |\
84 RESOURCEMANAGER_ENLIST |\
85 RESOURCEMANAGER_GET_NOTIFICATION |\
86 RESOURCEMANAGER_REGISTER_PROTOCOL |\
87 RESOURCEMANAGER_COMPLETE_PROPAGATION |\
88 SYNCHRONIZE)
89
90 #define RESOURCEMANAGER_GENERIC_EXECUTE (STANDARD_RIGHTS_EXECUTE |\
91 RESOURCEMANAGER_RECOVER |\
92 RESOURCEMANAGER_ENLIST |\
93 RESOURCEMANAGER_GET_NOTIFICATION |\
94 RESOURCEMANAGER_COMPLETE_PROPAGATION |\
95 SYNCHRONIZE)
96
97 #define RESOURCEMANAGER_ALL_ACCESS (STANDARD_RIGHTS_REQUIRED |\
98 RESOURCEMANAGER_GENERIC_READ |\
99 RESOURCEMANAGER_GENERIC_WRITE |\
100 RESOURCEMANAGER_GENERIC_EXECUTE)
101
102 #define ENLISTMENT_QUERY_INFORMATION (0x0001)
103 #define ENLISTMENT_SET_INFORMATION (0x0002)
104 #define ENLISTMENT_RECOVER (0x0004)
105 #define ENLISTMENT_SUBORDINATE_RIGHTS (0x0008)
106 #define ENLISTMENT_SUPERIOR_RIGHTS (0x0010)
107
108 #define ENLISTMENT_GENERIC_READ (STANDARD_RIGHTS_READ |\
109 ENLISTMENT_QUERY_INFORMATION)
110
111 #define ENLISTMENT_GENERIC_WRITE (STANDARD_RIGHTS_WRITE |\
112 ENLISTMENT_SET_INFORMATION |\
113 ENLISTMENT_RECOVER |\
114 ENLISTMENT_SUBORDINATE_RIGHTS |\
115 ENLISTMENT_SUPERIOR_RIGHTS)
116
117 #define ENLISTMENT_GENERIC_EXECUTE (STANDARD_RIGHTS_EXECUTE |\
118 ENLISTMENT_RECOVER |\
119 ENLISTMENT_SUBORDINATE_RIGHTS |\
120 ENLISTMENT_SUPERIOR_RIGHTS)
121
122 #define ENLISTMENT_ALL_ACCESS (STANDARD_RIGHTS_REQUIRED |\
123 ENLISTMENT_GENERIC_READ |\
124 ENLISTMENT_GENERIC_WRITE |\
125 ENLISTMENT_GENERIC_EXECUTE)
126
127 typedef enum _TRANSACTION_OUTCOME {
128 TransactionOutcomeUndetermined = 1,
129 TransactionOutcomeCommitted,
130 TransactionOutcomeAborted,
131 } TRANSACTION_OUTCOME;
132
133
134 typedef enum _TRANSACTION_STATE {
135 TransactionStateNormal = 1,
136 TransactionStateIndoubt,
137 TransactionStateCommittedNotify,
138 } TRANSACTION_STATE;
139
140
141 typedef struct _TRANSACTION_BASIC_INFORMATION {
142 GUID TransactionId;
143 ULONG State;
144 ULONG Outcome;
145 } TRANSACTION_BASIC_INFORMATION, *PTRANSACTION_BASIC_INFORMATION;
146
147 typedef struct _TRANSACTIONMANAGER_BASIC_INFORMATION {
148 GUID TmIdentity;
149 LARGE_INTEGER VirtualClock;
150 } TRANSACTIONMANAGER_BASIC_INFORMATION, *PTRANSACTIONMANAGER_BASIC_INFORMATION;
151
152 typedef struct _TRANSACTIONMANAGER_LOG_INFORMATION {
153 GUID LogIdentity;
154 } TRANSACTIONMANAGER_LOG_INFORMATION, *PTRANSACTIONMANAGER_LOG_INFORMATION;
155
156 typedef struct _TRANSACTIONMANAGER_LOGPATH_INFORMATION {
157 ULONG LogPathLength;
158 WCHAR LogPath[1];
159 } TRANSACTIONMANAGER_LOGPATH_INFORMATION, *PTRANSACTIONMANAGER_LOGPATH_INFORMATION;
160
161 typedef struct _TRANSACTIONMANAGER_RECOVERY_INFORMATION {
162 ULONGLONG LastRecoveredLsn;
163 } TRANSACTIONMANAGER_RECOVERY_INFORMATION, *PTRANSACTIONMANAGER_RECOVERY_INFORMATION;
164
165 typedef struct _TRANSACTION_PROPERTIES_INFORMATION {
166 ULONG IsolationLevel;
167 ULONG IsolationFlags;
168 LARGE_INTEGER Timeout;
169 ULONG Outcome;
170 ULONG DescriptionLength;
171 WCHAR Description[1];
172 } TRANSACTION_PROPERTIES_INFORMATION, *PTRANSACTION_PROPERTIES_INFORMATION;
173
174 typedef struct _TRANSACTION_BIND_INFORMATION {
175 HANDLE TmHandle;
176 } TRANSACTION_BIND_INFORMATION, *PTRANSACTION_BIND_INFORMATION;
177
178 typedef struct _TRANSACTION_ENLISTMENT_PAIR {
179 GUID EnlistmentId;
180 GUID ResourceManagerId;
181 } TRANSACTION_ENLISTMENT_PAIR, *PTRANSACTION_ENLISTMENT_PAIR;
182
183 typedef struct _TRANSACTION_ENLISTMENTS_INFORMATION {
184 ULONG NumberOfEnlistments;
185 TRANSACTION_ENLISTMENT_PAIR EnlistmentPair[1];
186 } TRANSACTION_ENLISTMENTS_INFORMATION, *PTRANSACTION_ENLISTMENTS_INFORMATION;
187
188 typedef struct _TRANSACTION_SUPERIOR_ENLISTMENT_INFORMATION {
189 TRANSACTION_ENLISTMENT_PAIR SuperiorEnlistmentPair;
190 } TRANSACTION_SUPERIOR_ENLISTMENT_INFORMATION, *PTRANSACTION_SUPERIOR_ENLISTMENT_INFORMATION;
191
192 typedef struct _RESOURCEMANAGER_BASIC_INFORMATION {
193 GUID ResourceManagerId;
194 ULONG DescriptionLength;
195 WCHAR Description[1];
196 } RESOURCEMANAGER_BASIC_INFORMATION, *PRESOURCEMANAGER_BASIC_INFORMATION;
197
198 typedef struct _RESOURCEMANAGER_COMPLETION_INFORMATION {
199 HANDLE IoCompletionPortHandle;
200 ULONG_PTR CompletionKey;
201 } RESOURCEMANAGER_COMPLETION_INFORMATION, *PRESOURCEMANAGER_COMPLETION_INFORMATION;
202
203 typedef enum _KTMOBJECT_TYPE {
204 KTMOBJECT_TRANSACTION,
205 KTMOBJECT_TRANSACTION_MANAGER,
206 KTMOBJECT_RESOURCE_MANAGER,
207 KTMOBJECT_ENLISTMENT,
208 KTMOBJECT_INVALID
209 } KTMOBJECT_TYPE, *PKTMOBJECT_TYPE;
210
211 typedef struct _KTMOBJECT_CURSOR {
212 GUID LastQuery;
213 ULONG ObjectIdCount;
214 GUID ObjectIds[1];
215 } KTMOBJECT_CURSOR, *PKTMOBJECT_CURSOR;
216
217 typedef enum _TRANSACTION_INFORMATION_CLASS {
218 TransactionBasicInformation,
219 TransactionPropertiesInformation,
220 TransactionEnlistmentInformation,
221 TransactionSuperiorEnlistmentInformation
222 } TRANSACTION_INFORMATION_CLASS;
223
224 typedef enum _TRANSACTIONMANAGER_INFORMATION_CLASS {
225 TransactionManagerBasicInformation,
226 TransactionManagerLogInformation,
227 TransactionManagerLogPathInformation,
228 TransactionManagerRecoveryInformation = 4
229 } TRANSACTIONMANAGER_INFORMATION_CLASS;
230
231 typedef enum _RESOURCEMANAGER_INFORMATION_CLASS {
232 ResourceManagerBasicInformation,
233 ResourceManagerCompletionInformation,
234 } RESOURCEMANAGER_INFORMATION_CLASS;
235
236 typedef struct _ENLISTMENT_BASIC_INFORMATION {
237 GUID EnlistmentId;
238 GUID TransactionId;
239 GUID ResourceManagerId;
240 } ENLISTMENT_BASIC_INFORMATION, *PENLISTMENT_BASIC_INFORMATION;
241
242 typedef struct _ENLISTMENT_CRM_INFORMATION {
243 GUID CrmTransactionManagerId;
244 GUID CrmResourceManagerId;
245 GUID CrmEnlistmentId;
246 } ENLISTMENT_CRM_INFORMATION, *PENLISTMENT_CRM_INFORMATION;
247
248 typedef enum _ENLISTMENT_INFORMATION_CLASS {
249 EnlistmentBasicInformation,
250 EnlistmentRecoveryInformation,
251 EnlistmentCrmInformation
252 } ENLISTMENT_INFORMATION_CLASS;
253
254 typedef struct _TRANSACTION_LIST_ENTRY {
255 #if defined(__cplusplus)
256 ::UOW UOW;
257 #else
258 UOW UOW;
259 #endif
260 } TRANSACTION_LIST_ENTRY, *PTRANSACTION_LIST_ENTRY;
261
262 typedef struct _TRANSACTION_LIST_INFORMATION {
263 ULONG NumberOfTransactions;
264 TRANSACTION_LIST_ENTRY TransactionInformation[1];
265 } TRANSACTION_LIST_INFORMATION, *PTRANSACTION_LIST_INFORMATION;
266
267 typedef NTSTATUS
268 (NTAPI *PFN_NT_CREATE_TRANSACTION)(
269 OUT PHANDLE TransactionHandle,
270 IN ACCESS_MASK DesiredAccess,
271 IN POBJECT_ATTRIBUTES ObjectAttributes OPTIONAL,
272 IN LPGUID Uow OPTIONAL,
273 IN HANDLE TmHandle OPTIONAL,
274 IN ULONG CreateOptions OPTIONAL,
275 IN ULONG IsolationLevel OPTIONAL,
276 IN ULONG IsolationFlags OPTIONAL,
277 IN PLARGE_INTEGER Timeout OPTIONAL,
278 IN PUNICODE_STRING Description OPTIONAL);
279
280 typedef NTSTATUS
281 (NTAPI *PFN_NT_OPEN_TRANSACTION)(
282 OUT PHANDLE TransactionHandle,
283 IN ACCESS_MASK DesiredAccess,
284 IN POBJECT_ATTRIBUTES ObjectAttributes,
285 IN LPGUID Uow OPTIONAL,
286 IN HANDLE TmHandle OPTIONAL);
287
288 typedef NTSTATUS
289 (NTAPI *PFN_NT_QUERY_INFORMATION_TRANSACTION)(
290 IN HANDLE TransactionHandle,
291 IN TRANSACTION_INFORMATION_CLASS TransactionInformationClass,
292 OUT PVOID TransactionInformation,
293 IN ULONG TransactionInformationLength,
294 OUT PULONG ReturnLength OPTIONAL);
295
296 typedef NTSTATUS
297 (NTAPI *PFN_NT_SET_INFORMATION_TRANSACTION)(
298 IN HANDLE TransactionHandle,
299 IN TRANSACTION_INFORMATION_CLASS TransactionInformationClass,
300 IN PVOID TransactionInformation,
301 IN ULONG TransactionInformationLength);
302
303 typedef NTSTATUS
304 (NTAPI *PFN_NT_COMMIT_TRANSACTION)(
305 IN HANDLE TransactionHandle,
306 IN BOOLEAN Wait);
307
308 typedef NTSTATUS
309 (NTAPI *PFN_NT_ROLLBACK_TRANSACTION)(
310 IN HANDLE TransactionHandle,
311 IN BOOLEAN Wait);
312
313 #if (NTDDI_VERSION >= NTDDI_VISTA)
314
315 NTSYSCALLAPI
316 NTSTATUS
317 NTAPI
318 NtCreateTransactionManager(
319 OUT PHANDLE TmHandle,
320 IN ACCESS_MASK DesiredAccess,
321 IN POBJECT_ATTRIBUTES ObjectAttributes OPTIONAL,
322 IN PUNICODE_STRING LogFileName OPTIONAL,
323 IN ULONG CreateOptions OPTIONAL,
324 IN ULONG CommitStrength OPTIONAL);
325
326 NTSYSCALLAPI
327 NTSTATUS
328 NTAPI
329 NtOpenTransactionManager(
330 OUT PHANDLE TmHandle,
331 IN ACCESS_MASK DesiredAccess,
332 IN POBJECT_ATTRIBUTES ObjectAttributes OPTIONAL,
333 IN PUNICODE_STRING LogFileName OPTIONAL,
334 IN LPGUID TmIdentity OPTIONAL,
335 IN ULONG OpenOptions OPTIONAL);
336
337 NTSYSCALLAPI
338 NTSTATUS
339 NTAPI
340 NtRenameTransactionManager(
341 IN PUNICODE_STRING LogFileName,
342 IN LPGUID ExistingTransactionManagerGuid);
343
344 NTSYSCALLAPI
345 NTSTATUS
346 NTAPI
347 NtRollforwardTransactionManager(
348 IN HANDLE TransactionManagerHandle,
349 IN PLARGE_INTEGER TmVirtualClock OPTIONAL);
350
351 NTSYSCALLAPI
352 NTSTATUS
353 NTAPI
354 NtRecoverTransactionManager(
355 IN HANDLE TransactionManagerHandle);
356
357 NTSYSCALLAPI
358 NTSTATUS
359 NTAPI
360 NtQueryInformationTransactionManager(
361 IN HANDLE TransactionManagerHandle,
362 IN TRANSACTIONMANAGER_INFORMATION_CLASS TransactionManagerInformationClass,
363 OUT PVOID TransactionManagerInformation,
364 IN ULONG TransactionManagerInformationLength,
365 OUT PULONG ReturnLength);
366
367 NTSYSCALLAPI
368 NTSTATUS
369 NTAPI
370 NtSetInformationTransactionManager(
371 IN HANDLE TmHandle OPTIONAL,
372 IN TRANSACTIONMANAGER_INFORMATION_CLASS TransactionManagerInformationClass,
373 IN PVOID TransactionManagerInformation,
374 IN ULONG TransactionManagerInformationLength);
375
376 NTSYSCALLAPI
377 NTSTATUS
378 NTAPI
379 NtEnumerateTransactionObject(
380 IN HANDLE RootObjectHandle OPTIONAL,
381 IN KTMOBJECT_TYPE QueryType,
382 IN OUT PKTMOBJECT_CURSOR ObjectCursor,
383 IN ULONG ObjectCursorLength,
384 OUT PULONG ReturnLength);
385
386 NTSYSCALLAPI
387 NTSTATUS
388 NTAPI
389 NtCreateTransaction(
390 OUT PHANDLE TransactionHandle,
391 IN ACCESS_MASK DesiredAccess,
392 IN POBJECT_ATTRIBUTES ObjectAttributes OPTIONAL,
393 IN LPGUID Uow OPTIONAL,
394 IN HANDLE TmHandle OPTIONAL,
395 IN ULONG CreateOptions OPTIONAL,
396 IN ULONG IsolationLevel OPTIONAL,
397 IN ULONG IsolationFlags OPTIONAL,
398 IN PLARGE_INTEGER Timeout OPTIONAL,
399 IN PUNICODE_STRING Description OPTIONAL);
400
401 NTSYSCALLAPI
402 NTSTATUS
403 NTAPI
404 NtOpenTransaction(
405 OUT PHANDLE TransactionHandle,
406 IN ACCESS_MASK DesiredAccess,
407 IN POBJECT_ATTRIBUTES ObjectAttributes,
408 IN LPGUID Uow,
409 IN HANDLE TmHandle OPTIONAL);
410
411 NTSYSCALLAPI
412 NTSTATUS
413 NTAPI
414 NtQueryInformationTransaction(
415 IN HANDLE TransactionHandle,
416 IN TRANSACTION_INFORMATION_CLASS TransactionInformationClass,
417 OUT PVOID TransactionInformation,
418 IN ULONG TransactionInformationLength,
419 OUT PULONG ReturnLength OPTIONAL);
420
421 NTSYSCALLAPI
422 NTSTATUS
423 NTAPI
424 NtSetInformationTransaction(
425 IN HANDLE TransactionHandle,
426 IN TRANSACTION_INFORMATION_CLASS TransactionInformationClass,
427 IN PVOID TransactionInformation,
428 IN ULONG TransactionInformationLength);
429
430 NTSYSCALLAPI
431 NTSTATUS
432 NTAPI
433 NtCommitTransaction(
434 IN HANDLE TransactionHandle,
435 IN BOOLEAN Wait);
436
437 NTSYSCALLAPI
438 NTSTATUS
439 NTAPI
440 NtRollbackTransaction(
441 IN HANDLE TransactionHandle,
442 IN BOOLEAN Wait);
443
444 NTSYSCALLAPI
445 NTSTATUS
446 NTAPI
447 NtCreateEnlistment(
448 OUT PHANDLE EnlistmentHandle,
449 IN ACCESS_MASK DesiredAccess,
450 IN HANDLE ResourceManagerHandle,
451 IN HANDLE TransactionHandle,
452 IN POBJECT_ATTRIBUTES ObjectAttributes OPTIONAL,
453 IN ULONG CreateOptions OPTIONAL,
454 IN NOTIFICATION_MASK NotificationMask,
455 IN PVOID EnlistmentKey OPTIONAL);
456
457 NTSYSCALLAPI
458 NTSTATUS
459 NTAPI
460 NtOpenEnlistment(
461 OUT PHANDLE EnlistmentHandle,
462 IN ACCESS_MASK DesiredAccess,
463 IN HANDLE ResourceManagerHandle,
464 IN LPGUID EnlistmentGuid,
465 IN POBJECT_ATTRIBUTES ObjectAttributes OPTIONAL);
466
467 NTSYSCALLAPI
468 NTSTATUS
469 NTAPI
470 NtQueryInformationEnlistment(
471 IN HANDLE EnlistmentHandle,
472 IN ENLISTMENT_INFORMATION_CLASS EnlistmentInformationClass,
473 OUT PVOID EnlistmentInformation,
474 IN ULONG EnlistmentInformationLength,
475 OUT PULONG ReturnLength);
476
477 NTSYSCALLAPI
478 NTSTATUS
479 NTAPI
480 NtSetInformationEnlistment(
481 IN HANDLE EnlistmentHandle OPTIONAL,
482 IN ENLISTMENT_INFORMATION_CLASS EnlistmentInformationClass,
483 IN PVOID EnlistmentInformation,
484 IN ULONG EnlistmentInformationLength);
485
486 NTSYSCALLAPI
487 NTSTATUS
488 NTAPI
489 NtRecoverEnlistment(
490 IN HANDLE EnlistmentHandle,
491 IN PVOID EnlistmentKey OPTIONAL);
492
493 NTSYSCALLAPI
494 NTSTATUS
495 NTAPI
496 NtPrePrepareEnlistment(
497 IN HANDLE EnlistmentHandle,
498 IN PLARGE_INTEGER TmVirtualClock OPTIONAL);
499
500 NTSYSCALLAPI
501 NTSTATUS
502 NTAPI
503 NtPrepareEnlistment(
504 IN HANDLE EnlistmentHandle,
505 IN PLARGE_INTEGER TmVirtualClock OPTIONAL);
506
507 NTSYSCALLAPI
508 NTSTATUS
509 NTAPI
510 NtCommitEnlistment(
511 IN HANDLE EnlistmentHandle,
512 IN PLARGE_INTEGER TmVirtualClock OPTIONAL);
513
514 NTSYSCALLAPI
515 NTSTATUS
516 NTAPI
517 NtRollbackEnlistment(
518 IN HANDLE EnlistmentHandle,
519 IN PLARGE_INTEGER TmVirtualClock OPTIONAL);
520
521 NTSYSCALLAPI
522 NTSTATUS
523 NTAPI
524 NtPrePrepareComplete(
525 IN HANDLE EnlistmentHandle,
526 IN PLARGE_INTEGER TmVirtualClock OPTIONAL);
527
528 NTSYSCALLAPI
529 NTSTATUS
530 NTAPI
531 NtPrepareComplete(
532 IN HANDLE EnlistmentHandle,
533 IN PLARGE_INTEGER TmVirtualClock OPTIONAL);
534
535 NTSYSCALLAPI
536 NTSTATUS
537 NTAPI
538 NtCommitComplete(
539 IN HANDLE EnlistmentHandle,
540 IN PLARGE_INTEGER TmVirtualClock OPTIONAL);
541
542 NTSYSCALLAPI
543 NTSTATUS
544 NTAPI
545 NtReadOnlyEnlistment(
546 IN HANDLE EnlistmentHandle,
547 IN PLARGE_INTEGER TmVirtualClock OPTIONAL);
548
549 NTSYSCALLAPI
550 NTSTATUS
551 NTAPI
552 NtRollbackComplete(
553 IN HANDLE EnlistmentHandle,
554 IN PLARGE_INTEGER TmVirtualClock OPTIONAL);
555
556 NTSYSCALLAPI
557 NTSTATUS
558 NTAPI
559 NtSinglePhaseReject(
560 IN HANDLE EnlistmentHandle,
561 IN PLARGE_INTEGER TmVirtualClock OPTIONAL);
562
563 NTSYSCALLAPI
564 NTSTATUS
565 NTAPI
566 NtCreateResourceManager(
567 OUT PHANDLE ResourceManagerHandle,
568 IN ACCESS_MASK DesiredAccess,
569 IN HANDLE TmHandle,
570 IN LPGUID RmGuid,
571 IN POBJECT_ATTRIBUTES ObjectAttributes OPTIONAL,
572 IN ULONG CreateOptions OPTIONAL,
573 IN PUNICODE_STRING Description OPTIONAL);
574
575 NTSYSCALLAPI
576 NTSTATUS
577 NTAPI
578 NtOpenResourceManager(
579 OUT PHANDLE ResourceManagerHandle,
580 IN ACCESS_MASK DesiredAccess,
581 IN HANDLE TmHandle,
582 IN LPGUID ResourceManagerGuid OPTIONAL,
583 IN POBJECT_ATTRIBUTES ObjectAttributes OPTIONAL);
584
585 NTSYSCALLAPI
586 NTSTATUS
587 NTAPI
588 NtRecoverResourceManager(
589 IN HANDLE ResourceManagerHandle);
590
591 NTSYSCALLAPI
592 NTSTATUS
593 NTAPI
594 NtGetNotificationResourceManager(
595 IN HANDLE ResourceManagerHandle,
596 OUT PTRANSACTION_NOTIFICATION TransactionNotification,
597 IN ULONG NotificationLength,
598 IN PLARGE_INTEGER Timeout OPTIONAL,
599 OUT PULONG ReturnLength OPTIONAL,
600 IN ULONG Asynchronous,
601 IN ULONG_PTR AsynchronousContext OPTIONAL);
602
603 NTSYSCALLAPI
604 NTSTATUS
605 NTAPI
606 NtQueryInformationResourceManager(
607 IN HANDLE ResourceManagerHandle,
608 IN RESOURCEMANAGER_INFORMATION_CLASS ResourceManagerInformationClass,
609 OUT PVOID ResourceManagerInformation,
610 IN ULONG ResourceManagerInformationLength,
611 OUT PULONG ReturnLength OPTIONAL);
612
613 NTSYSCALLAPI
614 NTSTATUS
615 NTAPI
616 NtSetInformationResourceManager(
617 IN HANDLE ResourceManagerHandle,
618 IN RESOURCEMANAGER_INFORMATION_CLASS ResourceManagerInformationClass,
619 IN PVOID ResourceManagerInformation,
620 IN ULONG ResourceManagerInformationLength);
621
622 NTSYSCALLAPI
623 NTSTATUS
624 NTAPI
625 NtRegisterProtocolAddressInformation(
626 IN HANDLE ResourceManager,
627 IN PCRM_PROTOCOL_ID ProtocolId,
628 IN ULONG ProtocolInformationSize,
629 IN PVOID ProtocolInformation,
630 IN ULONG CreateOptions OPTIONAL);
631
632 NTSYSCALLAPI
633 NTSTATUS
634 NTAPI
635 NtPropagationComplete(
636 IN HANDLE ResourceManagerHandle,
637 IN ULONG RequestCookie,
638 IN ULONG BufferLength,
639 IN PVOID Buffer);
640
641 NTSYSCALLAPI
642 NTSTATUS
643 NTAPI
644 NtPropagationFailed(
645 IN HANDLE ResourceManagerHandle,
646 IN ULONG RequestCookie,
647 IN NTSTATUS PropStatus);
648
649 #endif /* NTDDI_VERSION >= NTDDI_VISTA */
650
651 #endif /* !_NTTMAPI_ */
652 $endif