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); }
public static extern Win32Error RmGetList(uint sessionHandle, out uint procInfoNeeded, ref uint procInfo, [In, Out] RestartManagerProcessInfo[] affectedApps, ref RestartManagerRebootReason rebootReasons);