예제 #1
0
        public RestartManagerProcessInfo[] GetList()
        {
            uint desiredCount;
            uint requestingCount = 0;

            RestartManagerProcessInfo[] infos        = null;
            RestartManagerRebootReason  rebootReason = RestartManagerRebootReason.None;

            Win32Error result = NativeMethods.RmGetList(_sessionHandle, out desiredCount, ref requestingCount, null, ref rebootReason);

            while (result == Win32Error.ERROR_MORE_DATA)
            {
                infos           = new RestartManagerProcessInfo[desiredCount];
                requestingCount = desiredCount;

                result = NativeMethods.RmGetList(_sessionHandle, out desiredCount, ref requestingCount, infos, ref rebootReason);
            }

            if (result == Win32Error.ERROR_CANCELLED)
            {
                Log.Message("[RestartManager]Operation [GetList] cancelled by user.");
                return(new RestartManagerProcessInfo[0]);
            }

            result.Check();
            return(infos);
        }
예제 #2
0
 public static extern Win32Error RmGetList(uint sessionHandle, out uint procInfoNeeded, ref uint procInfo, [In, Out] RestartManagerProcessInfo[] affectedApps, ref RestartManagerRebootReason rebootReasons);
예제 #3
0
 public static extern Win32Error RmGetList(uint sessionHandle, out uint procInfoNeeded, ref uint procInfo, [In, Out] RestartManagerProcessInfo[] affectedApps, ref RestartManagerRebootReason rebootReasons);