public static extern NtStatus NtOpenTransactionManager( out SafeKernelObjectHandle TmHandle, TransactionManagerAccessRights DesiredAccess, ObjectAttributes ObjectAttributes, UnicodeString LogFileName, OptionalGuid TmIdentity, TransactionManagerOpenOptions OpenOptions );
/// <summary> /// Open an existing transaction manager object. /// </summary> /// <param name="path">The path to the transaction manager.</param> /// <param name="root">The root if path is relative.</param> /// <param name="desired_access">Desired access for the handle</param> /// <param name="tm_identity">Identity of the transaction manager.</param> /// <param name="log_filename">The CLFS log file to create if not volatile.</param> /// <param name="open_options">Open options flags.</param> /// <returns>The object result.</returns> public static NtTransactionManager Open(string path, NtObject root, TransactionManagerAccessRights desired_access, string log_filename, Guid?tm_identity, TransactionManagerOpenOptions open_options) { return(Open(path, root, desired_access, log_filename, tm_identity, open_options, true).Result); }
/// <summary> /// Open a existing transaction manager object. /// </summary> /// <param name="object_attributes">The object attributes</param> /// <param name="desired_access">Desired access for the handle</param> /// <param name="tm_identity">Identity of the transaction manager.</param> /// <param name="log_filename">The CLFS log file to create if not volatile.</param> /// <param name="open_options">Open options flags.</param> /// <returns>The object result.</returns> public static NtTransactionManager Open(ObjectAttributes object_attributes, TransactionManagerAccessRights desired_access, string log_filename, Guid?tm_identity, TransactionManagerOpenOptions open_options) { return(Open(object_attributes, desired_access, log_filename, tm_identity, open_options, true).Result); }
/// <summary> /// Open a existing transaction manager object. /// </summary> /// <param name="object_attributes">The object attributes</param> /// <param name="desired_access">Desired access for the handle</param> /// <param name="log_filename">The CLFS log file to create if not volatile.</param> /// <param name="tm_identity">Identity of the transaction manager.</param> /// <param name="open_options">Open options flags.</param> /// <param name="throw_on_error">True to throw an exception on error.</param> /// <returns>The NT status code and object result.</returns> public static NtResult <NtTransactionManager> Open(ObjectAttributes object_attributes, TransactionManagerAccessRights desired_access, string log_filename, Guid?tm_identity, TransactionManagerOpenOptions open_options, bool throw_on_error) { return(NtSystemCalls.NtOpenTransactionManager(out SafeKernelObjectHandle handle, desired_access, object_attributes, log_filename.ToUnicodeString(), tm_identity.ToOptional(), open_options).CreateResult(throw_on_error, () => new NtTransactionManager(handle))); }
/// <summary> /// Open an existing transaction manager object. /// </summary> /// <param name="path">The path to the transaction manager.</param> /// <param name="root">The root if path is relative.</param> /// <param name="desired_access">Desired access for the handle</param> /// <param name="tm_identity">Identity of the transaction manager.</param> /// <param name="log_filename">The CLFS log file to create if not volatile.</param> /// <param name="open_options">Open options flags.</param> /// <param name="throw_on_error">True to throw an exception on error.</param> /// <returns>The object result.</returns> public static NtResult <NtTransactionManager> Open(string path, NtObject root, TransactionManagerAccessRights desired_access, string log_filename, Guid?tm_identity, TransactionManagerOpenOptions open_options, bool throw_on_error) { using (var obj_attr = new ObjectAttributes(path, AttributeFlags.CaseInsensitive, root)) { return(Open(obj_attr, desired_access, log_filename, tm_identity, open_options, throw_on_error)); } }
/// <summary> /// Get a list of all accessible transaction manager objects. /// </summary> /// <param name="object_attributes">Object attributes for opened handle.</param> /// <param name="desired_access">The access for the transaction manager objects.</param> /// <param name="options">Open options.</param> /// <returns>The list of all accessible transaction manager objects.</returns> public static IEnumerable <NtTransactionManager> GetAccessibleTransactionManager(ObjectAttributes object_attributes, TransactionManagerAccessRights desired_access, TransactionManagerOpenOptions options) { return(NtTransactionManagerUtils.GetAccessibleTransactionObjects( SafeKernelObjectHandle.Null, KtmObjectType.TransactionManager, id => Open(object_attributes, desired_access, null, id, options, false))); }