InitiateShutdown (advapi32)
Last changed: -209.167.114.101

.
Summary
Initiates a shutdown and restart of the specified computer, and restarts any applications that have been registered for restart.

C# Signature:

  [DllImport("advapi32.dll", SetLastError = true)]
  static extern UInt32 InitiateShutdown(
    string lpMachineName,
    string lpMessage,
    UInt32 dwGracePeriod,
    UInt32 dwShutdownFlags,
    UInt32 dwReason);

VB Signature:

    ' InitiateShutdown
    ' https://msdn.microsoft.com/en-us/library/windows/desktop/aa376872(v=vs.85).aspx
    <DllImport("Advapi32.dll", CharSet:=CharSet.Ansi, BestFitMapping:=False, ThrowOnUnmappableChar:=True)> _
    Friend Shared Function InitiateShutdown( _
     ByVal lpMachineName As String, _
     ByVal lpMessage As String, _
     ByVal dwGracePeriod As UInt32, _
     ByVal dwShutdownFlags As UInt32, _
     ByVal dwReason As UInt32) As UInt32 ' returns ERROR_SUCCESS (&H0) if successful
    End Function

User-Defined Types:

None.

Alternative Managed API:

Do you know one? Please contribute it!

Notes:

    ' used with InitiateShutdown
    <Flags()> _
    Friend Enum ShutdownFlags As UInt32
     SHUTDOWN_FORCE_OTHERS = &H1     ' all sessions are forcefully logged off
     SHUTDOWN_FORCE_SELF = &H2       ' the originating session is forcefully logged off
     SHUTDOWN_RESTART = &H4      ' shut down and reboot
     SHUTDOWN_POWEROFF = &H8     ' shut down and power down
     SHUTDOWN_NOREBOOT = &H10    ' shut down but don't power down nor reboot
     SHUTDOWN_GRACE_OVERRIDE = &H20  ' override the grace period (shut down immediately)
     SHUTDOWN_INSTALL_UPDATES = &H40 ' install pending Windows updates before starting the shutdown
     SHUTDOWN_RESTARTAPPS = &H80     ' restart applications that have been registered for restart using the RegisterApplicationRestart function
     SHUTDOWN_HYBRID = &H200     ' for Win8 and above: perform a hybrid shutdown (log out the users and hibernate the kernel)
    End Enum

Tips & Tricks:

Please add some!

Sample Code:

Please add some!

Documentation