Example #1
0
        public static TmHandle Create(
            TmAccess access,
            string name,
            ObjectFlags objectFlags,
            DirectoryHandle rootDirectory,
            string logFileName,
            TmOptions createOptions
            )
        {
            ObjectAttributes oa             = new ObjectAttributes(name, objectFlags, rootDirectory);
            UnicodeString    logFileNameStr = new UnicodeString(logFileName);
            IntPtr           handle;

            try
            {
                Win32.NtCreateTransactionManager(
                    out handle,
                    access,
                    ref oa,
                    ref logFileNameStr,
                    createOptions,
                    0
                    ).ThrowIf();
            }
            finally
            {
                logFileNameStr.Dispose();
                oa.Dispose();
            }

            return(new TmHandle(handle, true));
        }
Example #2
0
        public static TmHandle Create(
            TmAccess access,
            string name,
            ObjectFlags objectFlags,
            DirectoryHandle rootDirectory,
            string logFileName,
            TmOptions createOptions
            )
        {
            NtStatus         status;
            ObjectAttributes oa = new ObjectAttributes(name, objectFlags, rootDirectory);
            IntPtr           handle;

            try
            {
                UnicodeString logFileNameStr = new UnicodeString(logFileName);

                try
                {
                    if ((status = Win32.NtCreateTransactionManager(
                             out handle,
                             access,
                             ref oa,
                             ref logFileNameStr,
                             createOptions,
                             0
                             )) >= NtStatus.Error)
                    {
                        Win32.ThrowLastError(status);
                    }
                }
                finally
                {
                    logFileNameStr.Dispose();
                }
            }
            finally
            {
                oa.Dispose();
            }

            return(new TmHandle(handle, true));
        }