Added Impersonation to the constructor of NetworkNeighborhoodResourceAccessor to avoid access denied exception when running MP2-Server as service and trying to access a remote share.
Added Impersonate() calls to all public methods/properties that involve resource access, as calls might come from other threads
Reworked impersonation to check for current user account and impersonate only once if possible
Introduced own ImpersonationContext as wrapper for Identity and WindowsImpersonationContext
Moved ImpersonationHelper to Utilities project; Extended ProcessUtils to support starting of processes for impersonated users.
Added SetProcessPriority
Added support for reading StdOut when using impersonation
Added method to create PrimaryToken from ImpersonationToken, required to start new processes
Changed IntPtr to SafeFileHandle, switched some structs to classes
Replaced own pinvoke way by using a modified version of MPExtended's TranscodeProcess
Moved NativeAPI to Utilities project
Enable impersonation by default
Require System account when manually registering service
Set DEFAULT_SUSPEND_LEVEL to SuspendLevel.None, otherwise service would always deny standby
Fixed next due time calculation. Current minute/hour will be executed on this day
Fixed typo
Added task to ImporterWorker that executes refresh of share daily on ImporterStartTime (hour)
Added messaging between ML and ImporterWorker
Added TaskWaitableTimer with support for wake up of system
Added PowerEventHandler to notify MP2 system about standby/resume cycles
Added wakeup support for TaskScheduler
Consider only task with enabled "WakeupSystem"
Fixed TaskCollection (de-)serialization; Logging changes