System.IO.Pipes.NamedPipeServerStream.ImpersonateAndTryCode C# (CSharp) Method

ImpersonateAndTryCode() private static method

private static ImpersonateAndTryCode ( Object helper ) : void
helper Object
return void
        private static void ImpersonateAndTryCode(Object helper)
        {
            ExecuteHelper execHelper = (ExecuteHelper)helper;

            RuntimeHelpers.PrepareConstrainedRegions();
            try { }
            finally
            {
                if (Interop.Advapi32.ImpersonateNamedPipeClient(execHelper._handle))
                {
                    execHelper._mustRevert = true;
                }
                else
                {
                    execHelper._impersonateErrorCode = Marshal.GetLastWin32Error();
                }

            }

            if (execHelper._mustRevert)
            { // impersonate passed so run user code
                execHelper._userCode();
            }
        }