Для этого есть функция ExitWindowsEx.
параметры вызова ExitWindowsEx(uFlags:dword,dwReserved

word):boole an;
dwReserved:зарезервировано (может быть 0, все равно игнорируется)
uFlags принимает значения:
EWX_FORCE - быстрое зывершение
EWX_LOGOFF - завершение сеанса
EWX_POWEROFF - завершение работы и выключение питания
EWX_REBOOT - перезагрузка
EWX_SHUTDOWN - завершение работы системы до точки когда может быть безопасно выключено питание. (если я правильно перевел

)