/// <summary> /// Set timer state. /// </summary> /// <param name="due_time">The due time for the timer.</param> /// <param name="apc_routine">Optional APC routine.</param> /// <param name="context">Optional APC context pointer.</param> /// <param name="resume">True to resume.</param> /// <param name="period">Period time.</param> /// <returns>The previous state.</returns> public bool Set(NtWaitTimeout due_time, TimerApcCallback apc_routine, IntPtr context, bool resume, int period) { return(Set(due_time, apc_routine, context, resume, period, true).Result); }
/// <summary> /// Set timer state. /// </summary> /// <param name="due_time">The due time for the timer.</param> /// <param name="apc_routine">Optional APC routine.</param> /// <param name="context">Optional APC context pointer.</param> /// <param name="resume">True to resume.</param> /// <param name="period">Period time.</param> /// <param name="throw_on_error">True throw on error.</param> /// <returns>The NT result and previous state.</returns> public NtResult <bool> Set(NtWaitTimeout due_time, TimerApcCallback apc_routine, IntPtr context, bool resume, int period, bool throw_on_error) { IntPtr apc_ptr = apc_routine != null?Marshal.GetFunctionPointerForDelegate(apc_routine) : IntPtr.Zero; return(NtSystemCalls.NtSetTimer(Handle, due_time.Timeout, apc_ptr, context, resume, period, out bool previous_state).CreateResult(throw_on_error, () => previous_state)); }