mirror of
https://github.com/reactos/reactos.git
synced 2024-08-20 18:35:32 +00:00
754 lines
23 KiB
C
754 lines
23 KiB
C
#ifndef _NTTMAPI_
|
|
#define _NTTMAPI_
|
|
|
|
#include <ktmtypes.h>
|
|
|
|
#define TRANSACTIONMANAGER_QUERY_INFORMATION (0x0001)
|
|
#define TRANSACTIONMANAGER_SET_INFORMATION (0x0002)
|
|
#define TRANSACTIONMANAGER_RECOVER (0x0004)
|
|
#define TRANSACTIONMANAGER_RENAME (0x0008)
|
|
#define TRANSACTIONMANAGER_CREATE_RM (0x0010)
|
|
#define TRANSACTIONMANAGER_BIND_TRANSACTION (0x0020)
|
|
|
|
#define TRANSACTIONMANAGER_GENERIC_READ (STANDARD_RIGHTS_READ |\
|
|
TRANSACTIONMANAGER_QUERY_INFORMATION)
|
|
|
|
#define TRANSACTIONMANAGER_GENERIC_WRITE (STANDARD_RIGHTS_WRITE |\
|
|
TRANSACTIONMANAGER_SET_INFORMATION |\
|
|
TRANSACTIONMANAGER_RECOVER |\
|
|
TRANSACTIONMANAGER_RENAME |\
|
|
TRANSACTIONMANAGER_CREATE_RM)
|
|
|
|
#define TRANSACTIONMANAGER_GENERIC_EXECUTE (STANDARD_RIGHTS_EXECUTE)
|
|
|
|
#define TRANSACTIONMANAGER_ALL_ACCESS (STANDARD_RIGHTS_REQUIRED |\
|
|
TRANSACTIONMANAGER_GENERIC_READ |\
|
|
TRANSACTIONMANAGER_GENERIC_WRITE |\
|
|
TRANSACTIONMANAGER_GENERIC_EXECUTE |\
|
|
TRANSACTIONMANAGER_BIND_TRANSACTION)
|
|
|
|
#define TRANSACTION_QUERY_INFORMATION (0x0001)
|
|
#define TRANSACTION_SET_INFORMATION (0x0002)
|
|
#define TRANSACTION_ENLIST (0x0004)
|
|
#define TRANSACTION_COMMIT (0x0008)
|
|
#define TRANSACTION_ROLLBACK (0x0010)
|
|
#define TRANSACTION_PROPAGATE (0x0020)
|
|
#define TRANSACTION_RIGHT_RESERVED1 (0x0040)
|
|
|
|
#define TRANSACTION_GENERIC_READ (STANDARD_RIGHTS_READ |\
|
|
TRANSACTION_QUERY_INFORMATION |\
|
|
SYNCHRONIZE)
|
|
|
|
#define TRANSACTION_GENERIC_WRITE (STANDARD_RIGHTS_WRITE |\
|
|
TRANSACTION_SET_INFORMATION |\
|
|
TRANSACTION_COMMIT |\
|
|
TRANSACTION_ENLIST |\
|
|
TRANSACTION_ROLLBACK |\
|
|
TRANSACTION_PROPAGATE |\
|
|
SYNCHRONIZE)
|
|
|
|
#define TRANSACTION_GENERIC_EXECUTE (STANDARD_RIGHTS_EXECUTE |\
|
|
TRANSACTION_COMMIT |\
|
|
TRANSACTION_ROLLBACK |\
|
|
SYNCHRONIZE)
|
|
|
|
#define TRANSACTION_ALL_ACCESS (STANDARD_RIGHTS_REQUIRED |\
|
|
TRANSACTION_GENERIC_READ |\
|
|
TRANSACTION_GENERIC_WRITE |\
|
|
TRANSACTION_GENERIC_EXECUTE)
|
|
|
|
#define TRANSACTION_RESOURCE_MANAGER_RIGHTS (TRANSACTION_GENERIC_READ |\
|
|
STANDARD_RIGHTS_WRITE |\
|
|
TRANSACTION_SET_INFORMATION |\
|
|
TRANSACTION_ENLIST |\
|
|
TRANSACTION_ROLLBACK |\
|
|
TRANSACTION_PROPAGATE |\
|
|
SYNCHRONIZE)
|
|
|
|
#define RESOURCEMANAGER_QUERY_INFORMATION (0x0001)
|
|
#define RESOURCEMANAGER_SET_INFORMATION (0x0002)
|
|
#define RESOURCEMANAGER_RECOVER (0x0004)
|
|
#define RESOURCEMANAGER_ENLIST (0x0008)
|
|
#define RESOURCEMANAGER_GET_NOTIFICATION (0x0010)
|
|
#define RESOURCEMANAGER_REGISTER_PROTOCOL (0x0020)
|
|
#define RESOURCEMANAGER_COMPLETE_PROPAGATION (0x0040)
|
|
|
|
#define RESOURCEMANAGER_GENERIC_READ (STANDARD_RIGHTS_READ |\
|
|
RESOURCEMANAGER_QUERY_INFORMATION |\
|
|
SYNCHRONIZE)
|
|
|
|
#define RESOURCEMANAGER_GENERIC_WRITE (STANDARD_RIGHTS_WRITE |\
|
|
RESOURCEMANAGER_SET_INFORMATION |\
|
|
RESOURCEMANAGER_RECOVER |\
|
|
RESOURCEMANAGER_ENLIST |\
|
|
RESOURCEMANAGER_GET_NOTIFICATION |\
|
|
RESOURCEMANAGER_REGISTER_PROTOCOL |\
|
|
RESOURCEMANAGER_COMPLETE_PROPAGATION |\
|
|
SYNCHRONIZE)
|
|
|
|
#define RESOURCEMANAGER_GENERIC_EXECUTE (STANDARD_RIGHTS_EXECUTE |\
|
|
RESOURCEMANAGER_RECOVER |\
|
|
RESOURCEMANAGER_ENLIST |\
|
|
RESOURCEMANAGER_GET_NOTIFICATION |\
|
|
RESOURCEMANAGER_COMPLETE_PROPAGATION |\
|
|
SYNCHRONIZE)
|
|
|
|
#define RESOURCEMANAGER_ALL_ACCESS (STANDARD_RIGHTS_REQUIRED |\
|
|
RESOURCEMANAGER_GENERIC_READ |\
|
|
RESOURCEMANAGER_GENERIC_WRITE |\
|
|
RESOURCEMANAGER_GENERIC_EXECUTE)
|
|
|
|
#define ENLISTMENT_QUERY_INFORMATION (0x0001)
|
|
#define ENLISTMENT_SET_INFORMATION (0x0002)
|
|
#define ENLISTMENT_RECOVER (0x0004)
|
|
#define ENLISTMENT_SUBORDINATE_RIGHTS (0x0008)
|
|
#define ENLISTMENT_SUPERIOR_RIGHTS (0x0010)
|
|
|
|
#define ENLISTMENT_GENERIC_READ (STANDARD_RIGHTS_READ |\
|
|
ENLISTMENT_QUERY_INFORMATION)
|
|
|
|
#define ENLISTMENT_GENERIC_WRITE (STANDARD_RIGHTS_WRITE |\
|
|
ENLISTMENT_SET_INFORMATION |\
|
|
ENLISTMENT_RECOVER |\
|
|
ENLISTMENT_SUBORDINATE_RIGHTS |\
|
|
ENLISTMENT_SUPERIOR_RIGHTS)
|
|
|
|
#define ENLISTMENT_GENERIC_EXECUTE (STANDARD_RIGHTS_EXECUTE |\
|
|
ENLISTMENT_RECOVER |\
|
|
ENLISTMENT_SUBORDINATE_RIGHTS |\
|
|
ENLISTMENT_SUPERIOR_RIGHTS)
|
|
|
|
#define ENLISTMENT_ALL_ACCESS (STANDARD_RIGHTS_REQUIRED |\
|
|
ENLISTMENT_GENERIC_READ |\
|
|
ENLISTMENT_GENERIC_WRITE |\
|
|
ENLISTMENT_GENERIC_EXECUTE)
|
|
|
|
typedef enum _TRANSACTION_OUTCOME {
|
|
TransactionOutcomeUndetermined = 1,
|
|
TransactionOutcomeCommitted,
|
|
TransactionOutcomeAborted,
|
|
} TRANSACTION_OUTCOME;
|
|
|
|
|
|
typedef enum _TRANSACTION_STATE {
|
|
TransactionStateNormal = 1,
|
|
TransactionStateIndoubt,
|
|
TransactionStateCommittedNotify,
|
|
} TRANSACTION_STATE;
|
|
|
|
|
|
typedef struct _TRANSACTION_BASIC_INFORMATION {
|
|
GUID TransactionId;
|
|
ULONG State;
|
|
ULONG Outcome;
|
|
} TRANSACTION_BASIC_INFORMATION, *PTRANSACTION_BASIC_INFORMATION;
|
|
|
|
typedef struct _TRANSACTIONMANAGER_BASIC_INFORMATION {
|
|
GUID TmIdentity;
|
|
LARGE_INTEGER VirtualClock;
|
|
} TRANSACTIONMANAGER_BASIC_INFORMATION, *PTRANSACTIONMANAGER_BASIC_INFORMATION;
|
|
|
|
typedef struct _TRANSACTIONMANAGER_LOG_INFORMATION {
|
|
GUID LogIdentity;
|
|
} TRANSACTIONMANAGER_LOG_INFORMATION, *PTRANSACTIONMANAGER_LOG_INFORMATION;
|
|
|
|
typedef struct _TRANSACTIONMANAGER_LOGPATH_INFORMATION {
|
|
ULONG LogPathLength;
|
|
_Field_size_(LogPathLength) WCHAR LogPath[1];
|
|
} TRANSACTIONMANAGER_LOGPATH_INFORMATION, *PTRANSACTIONMANAGER_LOGPATH_INFORMATION;
|
|
|
|
typedef struct _TRANSACTIONMANAGER_RECOVERY_INFORMATION {
|
|
ULONGLONG LastRecoveredLsn;
|
|
} TRANSACTIONMANAGER_RECOVERY_INFORMATION, *PTRANSACTIONMANAGER_RECOVERY_INFORMATION;
|
|
|
|
typedef struct _TRANSACTION_PROPERTIES_INFORMATION {
|
|
ULONG IsolationLevel;
|
|
ULONG IsolationFlags;
|
|
LARGE_INTEGER Timeout;
|
|
ULONG Outcome;
|
|
ULONG DescriptionLength;
|
|
WCHAR Description[1];
|
|
} TRANSACTION_PROPERTIES_INFORMATION, *PTRANSACTION_PROPERTIES_INFORMATION;
|
|
|
|
typedef struct _TRANSACTION_BIND_INFORMATION {
|
|
HANDLE TmHandle;
|
|
} TRANSACTION_BIND_INFORMATION, *PTRANSACTION_BIND_INFORMATION;
|
|
|
|
typedef struct _TRANSACTION_ENLISTMENT_PAIR {
|
|
GUID EnlistmentId;
|
|
GUID ResourceManagerId;
|
|
} TRANSACTION_ENLISTMENT_PAIR, *PTRANSACTION_ENLISTMENT_PAIR;
|
|
|
|
typedef struct _TRANSACTION_ENLISTMENTS_INFORMATION {
|
|
ULONG NumberOfEnlistments;
|
|
TRANSACTION_ENLISTMENT_PAIR EnlistmentPair[1];
|
|
} TRANSACTION_ENLISTMENTS_INFORMATION, *PTRANSACTION_ENLISTMENTS_INFORMATION;
|
|
|
|
typedef struct _TRANSACTION_SUPERIOR_ENLISTMENT_INFORMATION {
|
|
TRANSACTION_ENLISTMENT_PAIR SuperiorEnlistmentPair;
|
|
} TRANSACTION_SUPERIOR_ENLISTMENT_INFORMATION, *PTRANSACTION_SUPERIOR_ENLISTMENT_INFORMATION;
|
|
|
|
typedef struct _RESOURCEMANAGER_BASIC_INFORMATION {
|
|
GUID ResourceManagerId;
|
|
ULONG DescriptionLength;
|
|
WCHAR Description[1];
|
|
} RESOURCEMANAGER_BASIC_INFORMATION, *PRESOURCEMANAGER_BASIC_INFORMATION;
|
|
|
|
typedef struct _RESOURCEMANAGER_COMPLETION_INFORMATION {
|
|
HANDLE IoCompletionPortHandle;
|
|
ULONG_PTR CompletionKey;
|
|
} RESOURCEMANAGER_COMPLETION_INFORMATION, *PRESOURCEMANAGER_COMPLETION_INFORMATION;
|
|
|
|
typedef enum _KTMOBJECT_TYPE {
|
|
KTMOBJECT_TRANSACTION,
|
|
KTMOBJECT_TRANSACTION_MANAGER,
|
|
KTMOBJECT_RESOURCE_MANAGER,
|
|
KTMOBJECT_ENLISTMENT,
|
|
KTMOBJECT_INVALID
|
|
} KTMOBJECT_TYPE, *PKTMOBJECT_TYPE;
|
|
|
|
typedef struct _KTMOBJECT_CURSOR {
|
|
GUID LastQuery;
|
|
ULONG ObjectIdCount;
|
|
GUID ObjectIds[1];
|
|
} KTMOBJECT_CURSOR, *PKTMOBJECT_CURSOR;
|
|
|
|
typedef enum _TRANSACTION_INFORMATION_CLASS {
|
|
TransactionBasicInformation,
|
|
TransactionPropertiesInformation,
|
|
TransactionEnlistmentInformation,
|
|
TransactionSuperiorEnlistmentInformation
|
|
} TRANSACTION_INFORMATION_CLASS;
|
|
|
|
typedef enum _TRANSACTIONMANAGER_INFORMATION_CLASS {
|
|
TransactionManagerBasicInformation,
|
|
TransactionManagerLogInformation,
|
|
TransactionManagerLogPathInformation,
|
|
TransactionManagerRecoveryInformation = 4
|
|
} TRANSACTIONMANAGER_INFORMATION_CLASS;
|
|
|
|
typedef enum _RESOURCEMANAGER_INFORMATION_CLASS {
|
|
ResourceManagerBasicInformation,
|
|
ResourceManagerCompletionInformation,
|
|
} RESOURCEMANAGER_INFORMATION_CLASS;
|
|
|
|
typedef struct _ENLISTMENT_BASIC_INFORMATION {
|
|
GUID EnlistmentId;
|
|
GUID TransactionId;
|
|
GUID ResourceManagerId;
|
|
} ENLISTMENT_BASIC_INFORMATION, *PENLISTMENT_BASIC_INFORMATION;
|
|
|
|
typedef struct _ENLISTMENT_CRM_INFORMATION {
|
|
GUID CrmTransactionManagerId;
|
|
GUID CrmResourceManagerId;
|
|
GUID CrmEnlistmentId;
|
|
} ENLISTMENT_CRM_INFORMATION, *PENLISTMENT_CRM_INFORMATION;
|
|
|
|
typedef enum _ENLISTMENT_INFORMATION_CLASS {
|
|
EnlistmentBasicInformation,
|
|
EnlistmentRecoveryInformation,
|
|
EnlistmentCrmInformation
|
|
} ENLISTMENT_INFORMATION_CLASS;
|
|
|
|
typedef struct _TRANSACTION_LIST_ENTRY {
|
|
#if defined(__cplusplus)
|
|
::UOW UOW;
|
|
#else
|
|
UOW UOW;
|
|
#endif
|
|
} TRANSACTION_LIST_ENTRY, *PTRANSACTION_LIST_ENTRY;
|
|
|
|
typedef struct _TRANSACTION_LIST_INFORMATION {
|
|
ULONG NumberOfTransactions;
|
|
TRANSACTION_LIST_ENTRY TransactionInformation[1];
|
|
} TRANSACTION_LIST_INFORMATION, *PTRANSACTION_LIST_INFORMATION;
|
|
|
|
typedef 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);
|
|
|
|
typedef 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);
|
|
|
|
typedef 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);
|
|
|
|
typedef NTSTATUS
|
|
(NTAPI *PFN_NT_SET_INFORMATION_TRANSACTION)(
|
|
_In_ HANDLE TransactionHandle,
|
|
_In_ TRANSACTION_INFORMATION_CLASS TransactionInformationClass,
|
|
_In_ PVOID TransactionInformation,
|
|
_In_ ULONG TransactionInformationLength);
|
|
|
|
typedef NTSTATUS
|
|
(NTAPI *PFN_NT_COMMIT_TRANSACTION)(
|
|
_In_ HANDLE TransactionHandle,
|
|
_In_ BOOLEAN Wait);
|
|
|
|
typedef NTSTATUS
|
|
(NTAPI *PFN_NT_ROLLBACK_TRANSACTION)(
|
|
_In_ HANDLE TransactionHandle,
|
|
_In_ BOOLEAN Wait);
|
|
|
|
#if (NTDDI_VERSION >= NTDDI_VISTA)
|
|
|
|
_Must_inspect_result_
|
|
_IRQL_requires_max_ (APC_LEVEL)
|
|
__kernel_entry
|
|
NTSYSCALLAPI
|
|
NTSTATUS
|
|
NTAPI
|
|
NtCreateTransactionManager(
|
|
_Out_ PHANDLE TmHandle,
|
|
_In_ ACCESS_MASK DesiredAccess,
|
|
_In_opt_ POBJECT_ATTRIBUTES ObjectAttributes,
|
|
_In_opt_ PUNICODE_STRING LogFileName,
|
|
_In_opt_ ULONG CreateOptions,
|
|
_In_opt_ ULONG CommitStrength);
|
|
|
|
_Must_inspect_result_
|
|
_IRQL_requires_max_ (APC_LEVEL)
|
|
__kernel_entry
|
|
NTSYSCALLAPI
|
|
NTSTATUS
|
|
NTAPI
|
|
NtOpenTransactionManager(
|
|
_Out_ PHANDLE TmHandle,
|
|
_In_ ACCESS_MASK DesiredAccess,
|
|
_In_opt_ POBJECT_ATTRIBUTES ObjectAttributes,
|
|
_In_opt_ PUNICODE_STRING LogFileName,
|
|
_In_opt_ LPGUID TmIdentity,
|
|
_In_opt_ ULONG OpenOptions);
|
|
|
|
_Must_inspect_result_
|
|
_IRQL_requires_max_ (APC_LEVEL)
|
|
__kernel_entry
|
|
NTSYSCALLAPI
|
|
NTSTATUS
|
|
NTAPI
|
|
NtRenameTransactionManager(
|
|
_In_ PUNICODE_STRING LogFileName,
|
|
_In_ LPGUID ExistingTransactionManagerGuid);
|
|
|
|
_Must_inspect_result_
|
|
_IRQL_requires_max_ (APC_LEVEL)
|
|
__kernel_entry
|
|
NTSYSCALLAPI
|
|
NTSTATUS
|
|
NTAPI
|
|
NtRollforwardTransactionManager(
|
|
_In_ HANDLE TransactionManagerHandle,
|
|
_In_opt_ PLARGE_INTEGER TmVirtualClock);
|
|
|
|
_Must_inspect_result_
|
|
_IRQL_requires_max_ (APC_LEVEL)
|
|
__kernel_entry
|
|
NTSYSCALLAPI
|
|
NTSTATUS
|
|
NTAPI
|
|
NtRecoverTransactionManager(
|
|
_In_ HANDLE TransactionManagerHandle);
|
|
|
|
_Must_inspect_result_
|
|
_IRQL_requires_max_ (APC_LEVEL)
|
|
__kernel_entry
|
|
NTSYSCALLAPI
|
|
NTSTATUS
|
|
NTAPI
|
|
NtQueryInformationTransactionManager(
|
|
_In_ HANDLE TransactionManagerHandle,
|
|
_In_ TRANSACTIONMANAGER_INFORMATION_CLASS TransactionManagerInformationClass,
|
|
_Out_writes_bytes_(TransactionManagerInformationLength) PVOID TransactionManagerInformation,
|
|
_In_ ULONG TransactionManagerInformationLength,
|
|
_Out_ PULONG ReturnLength);
|
|
|
|
_Must_inspect_result_
|
|
_IRQL_requires_max_ (APC_LEVEL)
|
|
__kernel_entry
|
|
NTSYSCALLAPI
|
|
NTSTATUS
|
|
NTAPI
|
|
NtSetInformationTransactionManager(
|
|
_In_opt_ HANDLE TmHandle,
|
|
_In_ TRANSACTIONMANAGER_INFORMATION_CLASS TransactionManagerInformationClass,
|
|
_In_reads_bytes_(TransactionManagerInformationLength) PVOID TransactionManagerInformation,
|
|
_In_ ULONG TransactionManagerInformationLength);
|
|
|
|
_Must_inspect_result_
|
|
_IRQL_requires_max_ (APC_LEVEL)
|
|
__kernel_entry
|
|
NTSYSCALLAPI
|
|
NTSTATUS
|
|
NTAPI
|
|
NtEnumerateTransactionObject(
|
|
_In_opt_ HANDLE RootObjectHandle,
|
|
_In_ KTMOBJECT_TYPE QueryType,
|
|
_Inout_updates_bytes_(ObjectCursorLength) PKTMOBJECT_CURSOR ObjectCursor,
|
|
_In_ ULONG ObjectCursorLength,
|
|
_Out_ PULONG ReturnLength);
|
|
|
|
_Must_inspect_result_
|
|
_IRQL_requires_max_ (APC_LEVEL)
|
|
__kernel_entry
|
|
NTSYSCALLAPI
|
|
NTSTATUS
|
|
NTAPI
|
|
NtCreateTransaction(
|
|
_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_
|
|
_IRQL_requires_max_ (APC_LEVEL)
|
|
__kernel_entry
|
|
NTSYSCALLAPI
|
|
NTSTATUS
|
|
NTAPI
|
|
NtOpenTransaction(
|
|
_Out_ PHANDLE TransactionHandle,
|
|
_In_ ACCESS_MASK DesiredAccess,
|
|
_In_ POBJECT_ATTRIBUTES ObjectAttributes,
|
|
_In_ LPGUID Uow,
|
|
_In_opt_ HANDLE TmHandle);
|
|
|
|
_Must_inspect_result_
|
|
_IRQL_requires_max_ (APC_LEVEL)
|
|
__kernel_entry
|
|
NTSYSCALLAPI
|
|
NTSTATUS
|
|
NTAPI
|
|
NtQueryInformationTransaction(
|
|
_In_ HANDLE TransactionHandle,
|
|
_In_ TRANSACTION_INFORMATION_CLASS TransactionInformationClass,
|
|
_Out_writes_bytes_(TransactionInformationLength) PVOID TransactionInformation,
|
|
_In_ ULONG TransactionInformationLength,
|
|
_Out_opt_ PULONG ReturnLength);
|
|
|
|
_Must_inspect_result_
|
|
_IRQL_requires_max_ (APC_LEVEL)
|
|
__kernel_entry
|
|
NTSYSCALLAPI
|
|
NTSTATUS
|
|
NTAPI
|
|
NtSetInformationTransaction(
|
|
_In_ HANDLE TransactionHandle,
|
|
_In_ TRANSACTION_INFORMATION_CLASS TransactionInformationClass,
|
|
_In_reads_bytes_(TransactionInformationLength) PVOID TransactionInformation,
|
|
_In_ ULONG TransactionInformationLength);
|
|
|
|
_IRQL_requires_max_ (APC_LEVEL)
|
|
__kernel_entry
|
|
NTSYSCALLAPI
|
|
NTSTATUS
|
|
NTAPI
|
|
NtCommitTransaction(
|
|
_In_ HANDLE TransactionHandle,
|
|
_In_ BOOLEAN Wait);
|
|
|
|
_IRQL_requires_max_ (APC_LEVEL)
|
|
__kernel_entry
|
|
NTSYSCALLAPI
|
|
NTSTATUS
|
|
NTAPI
|
|
NtRollbackTransaction(
|
|
_In_ HANDLE TransactionHandle,
|
|
_In_ BOOLEAN Wait);
|
|
|
|
_Must_inspect_result_
|
|
_IRQL_requires_max_ (APC_LEVEL)
|
|
__kernel_entry
|
|
NTSYSCALLAPI
|
|
NTSTATUS
|
|
NTAPI
|
|
NtCreateEnlistment(
|
|
_Out_ PHANDLE EnlistmentHandle,
|
|
_In_ ACCESS_MASK DesiredAccess,
|
|
_In_ HANDLE ResourceManagerHandle,
|
|
_In_ HANDLE TransactionHandle,
|
|
_In_opt_ POBJECT_ATTRIBUTES ObjectAttributes,
|
|
_In_opt_ ULONG CreateOptions,
|
|
_In_ NOTIFICATION_MASK NotificationMask,
|
|
_In_opt_ PVOID EnlistmentKey);
|
|
|
|
_Must_inspect_result_
|
|
_IRQL_requires_max_ (APC_LEVEL)
|
|
__kernel_entry
|
|
NTSYSCALLAPI
|
|
NTSTATUS
|
|
NTAPI
|
|
NtOpenEnlistment(
|
|
_Out_ PHANDLE EnlistmentHandle,
|
|
_In_ ACCESS_MASK DesiredAccess,
|
|
_In_ HANDLE ResourceManagerHandle,
|
|
_In_ LPGUID EnlistmentGuid,
|
|
_In_opt_ POBJECT_ATTRIBUTES ObjectAttributes);
|
|
|
|
_Must_inspect_result_
|
|
_IRQL_requires_max_ (APC_LEVEL)
|
|
__kernel_entry
|
|
NTSYSCALLAPI
|
|
NTSTATUS
|
|
NTAPI
|
|
NtQueryInformationEnlistment(
|
|
_In_ HANDLE EnlistmentHandle,
|
|
_In_ ENLISTMENT_INFORMATION_CLASS EnlistmentInformationClass,
|
|
_Out_writes_bytes_(EnlistmentInformationLength) PVOID EnlistmentInformation,
|
|
_In_ ULONG EnlistmentInformationLength,
|
|
_Out_ PULONG ReturnLength);
|
|
|
|
_Must_inspect_result_
|
|
_IRQL_requires_max_ (APC_LEVEL)
|
|
__kernel_entry
|
|
NTSYSCALLAPI
|
|
NTSTATUS
|
|
NTAPI
|
|
NtSetInformationEnlistment(
|
|
_In_opt_ HANDLE EnlistmentHandle,
|
|
_In_ ENLISTMENT_INFORMATION_CLASS EnlistmentInformationClass,
|
|
_In_reads_bytes_(EnlistmentInformationLength) PVOID EnlistmentInformation,
|
|
_In_ ULONG EnlistmentInformationLength);
|
|
|
|
_Must_inspect_result_
|
|
_IRQL_requires_max_ (APC_LEVEL)
|
|
__kernel_entry
|
|
NTSYSCALLAPI
|
|
NTSTATUS
|
|
NTAPI
|
|
NtRecoverEnlistment(
|
|
_In_ HANDLE EnlistmentHandle,
|
|
_In_opt_ PVOID EnlistmentKey);
|
|
|
|
_Must_inspect_result_
|
|
_IRQL_requires_max_ (APC_LEVEL)
|
|
__kernel_entry
|
|
NTSYSCALLAPI
|
|
NTSTATUS
|
|
NTAPI
|
|
NtPrePrepareEnlistment(
|
|
_In_ HANDLE EnlistmentHandle,
|
|
_In_opt_ PLARGE_INTEGER TmVirtualClock);
|
|
|
|
_Must_inspect_result_
|
|
_IRQL_requires_max_ (APC_LEVEL)
|
|
__kernel_entry
|
|
NTSYSCALLAPI
|
|
NTSTATUS
|
|
NTAPI
|
|
NtPrepareEnlistment(
|
|
_In_ HANDLE EnlistmentHandle,
|
|
_In_opt_ PLARGE_INTEGER TmVirtualClock);
|
|
|
|
_Must_inspect_result_
|
|
_IRQL_requires_max_ (APC_LEVEL)
|
|
__kernel_entry
|
|
NTSYSCALLAPI
|
|
NTSTATUS
|
|
NTAPI
|
|
NtCommitEnlistment(
|
|
_In_ HANDLE EnlistmentHandle,
|
|
_In_opt_ PLARGE_INTEGER TmVirtualClock);
|
|
|
|
_IRQL_requires_max_ (APC_LEVEL)
|
|
__kernel_entry
|
|
NTSYSCALLAPI
|
|
NTSTATUS
|
|
NTAPI
|
|
NtRollbackEnlistment(
|
|
_In_ HANDLE EnlistmentHandle,
|
|
_In_opt_ PLARGE_INTEGER TmVirtualClock);
|
|
|
|
_IRQL_requires_max_ (APC_LEVEL)
|
|
__kernel_entry
|
|
NTSYSCALLAPI
|
|
NTSTATUS
|
|
NTAPI
|
|
NtPrePrepareComplete(
|
|
_In_ HANDLE EnlistmentHandle,
|
|
_In_opt_ PLARGE_INTEGER TmVirtualClock);
|
|
|
|
_IRQL_requires_max_ (APC_LEVEL)
|
|
__kernel_entry
|
|
NTSYSCALLAPI
|
|
NTSTATUS
|
|
NTAPI
|
|
NtPrepareComplete(
|
|
_In_ HANDLE EnlistmentHandle,
|
|
_In_opt_ PLARGE_INTEGER TmVirtualClock);
|
|
|
|
_IRQL_requires_max_ (APC_LEVEL)
|
|
__kernel_entry
|
|
NTSYSCALLAPI
|
|
NTSTATUS
|
|
NTAPI
|
|
NtCommitComplete(
|
|
_In_ HANDLE EnlistmentHandle,
|
|
_In_opt_ PLARGE_INTEGER TmVirtualClock);
|
|
|
|
_IRQL_requires_max_ (APC_LEVEL)
|
|
__kernel_entry
|
|
NTSYSCALLAPI
|
|
NTSTATUS
|
|
NTAPI
|
|
NtReadOnlyEnlistment(
|
|
_In_ HANDLE EnlistmentHandle,
|
|
_In_opt_ PLARGE_INTEGER TmVirtualClock);
|
|
|
|
_IRQL_requires_max_ (APC_LEVEL)
|
|
__kernel_entry
|
|
NTSYSCALLAPI
|
|
NTSTATUS
|
|
NTAPI
|
|
NtRollbackComplete(
|
|
_In_ HANDLE EnlistmentHandle,
|
|
_In_opt_ PLARGE_INTEGER TmVirtualClock);
|
|
|
|
_IRQL_requires_max_ (APC_LEVEL)
|
|
__kernel_entry
|
|
NTSYSCALLAPI
|
|
NTSTATUS
|
|
NTAPI
|
|
NtSinglePhaseReject(
|
|
_In_ HANDLE EnlistmentHandle,
|
|
_In_opt_ PLARGE_INTEGER TmVirtualClock);
|
|
|
|
_Must_inspect_result_
|
|
_IRQL_requires_max_ (APC_LEVEL)
|
|
__kernel_entry
|
|
NTSYSCALLAPI
|
|
NTSTATUS
|
|
NTAPI
|
|
NtCreateResourceManager(
|
|
_Out_ PHANDLE ResourceManagerHandle,
|
|
_In_ ACCESS_MASK DesiredAccess,
|
|
_In_ HANDLE TmHandle,
|
|
_In_ LPGUID RmGuid,
|
|
_In_opt_ POBJECT_ATTRIBUTES ObjectAttributes,
|
|
_In_opt_ ULONG CreateOptions,
|
|
_In_opt_ PUNICODE_STRING Description);
|
|
|
|
_Must_inspect_result_
|
|
_IRQL_requires_max_ (APC_LEVEL)
|
|
__kernel_entry
|
|
NTSYSCALLAPI
|
|
NTSTATUS
|
|
NTAPI
|
|
NtOpenResourceManager(
|
|
_Out_ PHANDLE ResourceManagerHandle,
|
|
_In_ ACCESS_MASK DesiredAccess,
|
|
_In_ HANDLE TmHandle,
|
|
_In_opt_ LPGUID ResourceManagerGuid,
|
|
_In_opt_ POBJECT_ATTRIBUTES ObjectAttributes);
|
|
|
|
_Must_inspect_result_
|
|
_IRQL_requires_max_ (APC_LEVEL)
|
|
__kernel_entry
|
|
NTSYSCALLAPI
|
|
NTSTATUS
|
|
NTAPI
|
|
NtRecoverResourceManager(
|
|
_In_ HANDLE ResourceManagerHandle);
|
|
|
|
_Must_inspect_result_
|
|
_IRQL_requires_max_ (APC_LEVEL)
|
|
__kernel_entry
|
|
NTSYSCALLAPI
|
|
NTSTATUS
|
|
NTAPI
|
|
NtGetNotificationResourceManager(
|
|
_In_ HANDLE ResourceManagerHandle,
|
|
_Out_ PTRANSACTION_NOTIFICATION TransactionNotification,
|
|
_In_ ULONG NotificationLength,
|
|
_In_opt_ PLARGE_INTEGER Timeout,
|
|
_Out_opt_ PULONG ReturnLength,
|
|
_In_ ULONG Asynchronous,
|
|
_In_opt_ ULONG_PTR AsynchronousContext);
|
|
|
|
_Must_inspect_result_
|
|
_IRQL_requires_max_ (APC_LEVEL)
|
|
__kernel_entry
|
|
NTSYSCALLAPI
|
|
NTSTATUS
|
|
NTAPI
|
|
NtQueryInformationResourceManager(
|
|
_In_ HANDLE ResourceManagerHandle,
|
|
_In_ RESOURCEMANAGER_INFORMATION_CLASS ResourceManagerInformationClass,
|
|
_Out_writes_bytes_(ResourceManagerInformationLength) PVOID ResourceManagerInformation,
|
|
_In_ ULONG ResourceManagerInformationLength,
|
|
_Out_opt_ PULONG ReturnLength);
|
|
|
|
_Must_inspect_result_
|
|
_IRQL_requires_max_ (APC_LEVEL)
|
|
__kernel_entry
|
|
NTSYSCALLAPI
|
|
NTSTATUS
|
|
NTAPI
|
|
NtSetInformationResourceManager(
|
|
_In_ HANDLE ResourceManagerHandle,
|
|
_In_ RESOURCEMANAGER_INFORMATION_CLASS ResourceManagerInformationClass,
|
|
_In_reads_bytes_(ResourceManagerInformationLength) PVOID ResourceManagerInformation,
|
|
_In_ ULONG ResourceManagerInformationLength);
|
|
|
|
_Must_inspect_result_
|
|
_IRQL_requires_max_ (APC_LEVEL)
|
|
__kernel_entry
|
|
NTSYSCALLAPI
|
|
NTSTATUS
|
|
NTAPI
|
|
NtRegisterProtocolAddressInformation(
|
|
_In_ HANDLE ResourceManager,
|
|
_In_ PCRM_PROTOCOL_ID ProtocolId,
|
|
_In_ ULONG ProtocolInformationSize,
|
|
_In_ PVOID ProtocolInformation,
|
|
_In_opt_ ULONG CreateOptions);
|
|
|
|
_IRQL_requires_max_ (APC_LEVEL)
|
|
__kernel_entry
|
|
NTSYSCALLAPI
|
|
NTSTATUS
|
|
NTAPI
|
|
NtPropagationComplete(
|
|
_In_ HANDLE ResourceManagerHandle,
|
|
_In_ ULONG RequestCookie,
|
|
_In_ ULONG BufferLength,
|
|
_In_ PVOID Buffer);
|
|
|
|
_IRQL_requires_max_ (APC_LEVEL)
|
|
__kernel_entry
|
|
NTSYSCALLAPI
|
|
NTSTATUS
|
|
NTAPI
|
|
NtPropagationFailed(
|
|
_In_ HANDLE ResourceManagerHandle,
|
|
_In_ ULONG RequestCookie,
|
|
_In_ NTSTATUS PropStatus);
|
|
|
|
#endif /* NTDDI_VERSION >= NTDDI_VISTA */
|
|
|
|
#endif /* !_NTTMAPI_ */
|