Index: /trunk/include/iprt/err.h
===================================================================
--- /trunk/include/iprt/err.h	(revision 39726)
+++ /trunk/include/iprt/err.h	(revision 39727)
@@ -1689,6 +1689,9 @@
 /** Power off is not supported by the hardware or the OS. */
 #define VERR_SYS_CANNOT_POWER_OFF                   (-22400)
+/** The halt action was requested, but the OS may actually power
+ * off the machine. */ 
+#define VINF_SYS_MAY_POWER_OFF                      (22401)
 /** Shutdown failed. */
-#define VERR_SYS_SHUTDOWN_FAILED                    (-22401)
+#define VERR_SYS_SHUTDOWN_FAILED                    (-22402)
 /** @} */
 
Index: /trunk/include/iprt/system.h
===================================================================
--- /trunk/include/iprt/system.h	(revision 39726)
+++ /trunk/include/iprt/system.h	(revision 39727)
@@ -199,5 +199,7 @@
 /** Reboot the system after shutdown. */
 #define RTSYSTEM_SHUTDOWN_REBOOT            UINT32_C(0)
-/** Reboot the system after shutdown. */
+/** Reboot the system after shutdown.
+ * The call may return VINF_SYS_MAY_POWER_OFF if the OS / 
+ * hardware combination may power off instead of halting. */
 #define RTSYSTEM_SHUTDOWN_HALT              UINT32_C(1)
 /** Power off the system after shutdown.
@@ -227,4 +229,9 @@
  * @returns IPRT status code on failure, on success it may or may not return
  *          depending on the OS.
+ * @retval  VINF_SUCCESS
+ * @retval  VINF_SYS_MAY_POWER_OFF 
+ * @retval  VERR_SYS_SHUTDOWN_FAILED 
+ * @retval  VERR_SYS_CANNOT_POWER_OFF 
+ *  
  * @param   cMsDelay            The delay before the actual reboot.  If this is
  *                              not supported by the OS, an immediate reboot
Index: /trunk/src/VBox/Runtime/r3/win/RTSystemShutdown-win.cpp
===================================================================
--- /trunk/src/VBox/Runtime/r3/win/RTSystemShutdown-win.cpp	(revision 39726)
+++ /trunk/src/VBox/Runtime/r3/win/RTSystemShutdown-win.cpp	(revision 39727)
@@ -57,5 +57,5 @@
                                 fForceAppsClosed,
                                 fRebootAfterShutdown))
-        return VINF_SUCCESS;
+        return (fFlags & RTSYSTEM_SHUTDOWN_ACTION_MASK) == RTSYSTEM_SHUTDOWN_HALT ? VINF_SYS_MAY_POWER_OFF : VINF_SUCCESS;
     return RTErrConvertFromWin32(GetLastError());
 }
