예제 #1
0
 public static extern bool XeRunServer(
     UnmanagedPointers.NotifyServerProgressChangedServer NotifyServerProgressChangedStub,
     UnmanagedPointers.NotifyServerLogOutputServer NotifyServerLogOutputStub,
     UnmanagedPointers.NotifyServerUIReadyServer NotifyServerUIReadyStub,
     UnmanagedPointers.NotifyServerMessageBoxServer NotifyServerMessageBoxStub,
     UnmanagedPointers.NotifyServerTaskStartAndDisableUIServer NotifyServerTaskStartAndDisableUIStub,
     UnmanagedPointers.NotifyServerTaskEndAndEnableUIServer NotifyServerTaskEndAndEnableUIStub,
     UnmanagedPointers.NotifyServerExitFromRemoteProcessServer NotifyServerExitFromRemoteProcessStub,
     UnmanagedPointers.NotifyServerRaiseErrorServer NotifyServerRaiseErrorStub
     );
예제 #2
0
        public static bool XeRunServer(
            UnmanagedPointers.NotifyServerProgressChangedServer NotifyServerProgressChangedStub,
            UnmanagedPointers.NotifyServerLogOutputServer NotifyServerLogOutputStub,
            UnmanagedPointers.NotifyServerUIReadyServer NotifyServerUIReadyStub,
            UnmanagedPointers.NotifyServerMessageBoxServer NotifyServerMessageBoxStub,
            UnmanagedPointers.NotifyServerTaskStartAndDisableUIServer NotifyServerTaskStartAndDisableUIStub,
            UnmanagedPointers.NotifyServerTaskEndAndEnableUIServer NotifyServerTaskEndAndEnableUIStub,
            UnmanagedPointers.NotifyServerExitFromRemoteProcessServer NotifyServerExitFromRemoteProcessStub,
            UnmanagedPointers.NotifyServerRaiseErrorServer NotifyServerRaiseErrorStub
            )
        {
            switch (RuntimeInformation.ProcessArchitecture)
            {
            case Architecture.X86:
                return(Client32.XeRunServer(
                           NotifyServerProgressChangedStub,
                           NotifyServerLogOutputStub,
                           NotifyServerUIReadyStub,
                           NotifyServerMessageBoxStub,
                           NotifyServerTaskStartAndDisableUIStub,
                           NotifyServerTaskEndAndEnableUIStub,
                           NotifyServerExitFromRemoteProcessStub,
                           NotifyServerRaiseErrorStub
                           ));

            case Architecture.X64:
                return(Client64.XeRunServer(
                           NotifyServerProgressChangedStub,
                           NotifyServerLogOutputStub,
                           NotifyServerUIReadyStub,
                           NotifyServerMessageBoxStub,
                           NotifyServerTaskStartAndDisableUIStub,
                           NotifyServerTaskEndAndEnableUIStub,
                           NotifyServerExitFromRemoteProcessStub,
                           NotifyServerRaiseErrorStub
                           ));

            case Architecture.Arm64:
                return(ClientAarch64.XeRunServer(
                           NotifyServerProgressChangedStub,
                           NotifyServerLogOutputStub,
                           NotifyServerUIReadyStub,
                           NotifyServerMessageBoxStub,
                           NotifyServerTaskStartAndDisableUIStub,
                           NotifyServerTaskEndAndEnableUIStub,
                           NotifyServerExitFromRemoteProcessStub,
                           NotifyServerRaiseErrorStub
                           ));

            case Architecture.Arm:
                throw new NotImplementedException("Unsupported arch : Arm");
            }

            throw new NotImplementedException("Unsupported arch : Unknown");
        }
예제 #3
0
        private void InitializationUIServerCallbacks()
        {
            m_NotifyServerProgressChangedCallback =
                (string TaskName, UInt64 Current, UInt64 Total) =>
            {
                NotifyServerProgressChangedWorker(TaskName, Current, Total);
            };

            m_NotifyServerLogOutputCallback =
                (LogLevel Level, string LogInfo, bool IsCmd) =>
            {
                NotifyServerLogOutputWorker(Level, LogInfo, IsCmd);
            };

            m_NotifyServerUIReadyCallback =
                () =>
            {
                NotifyServerUIReadyWorker();
            };


            m_NotifyServerMessageBoxCallback =
                (string Info, UInt32 Flags, bool Locked) =>
            {
                NotifyServerMessageBoxWorker(Info, Flags, Locked);
            };


            m_NotifyServerTaskStartAndDisableUICallback =
                () =>
            {
                NotifyServerTaskStartAndDisableUIWorker();
            };


            m_NotifyServerTaskEndAndEnableUICallback =
                (bool TaskCompleteStatus, string Description) =>
            {
                NotifyServerTaskEndAndEnableUIWorker(TaskCompleteStatus, Description);
            };

            m_NotifyServerExitFromRemoteProcessCallback =
                () =>
            {
                NotifyServerExitFromRemoteProcessWorker();
            };

            m_NotifyServerRaiseErrorCallback =
                (RaiseErrorType ErrorType, string Error) =>
            {
                return(NotifyServerRaiseErrorWorker(ErrorType, Error));
            };
        }