What Fast Startup Really Does — Why a Windows 'Shutdown' Is Not the Same as a Restart

· Updated: · · Windows, Fast Startup, Shutdown, Power Management, Information Systems, Device PC, PowerShell, Windows Development

Revision history (first version, published Sep 4, 2026)
First published
Cite this article(DOI: 10.5281/zenodo.22640290)

This article is archived on Zenodo. Below are both the DOI that always resolves to the latest version and the DOI pinned to the version you are reading.

Go Komura (2026). What Fast Startup Really Does — Why a Windows 'Shutdown' Is Not the Same as a Restart. KomuraSoft LLC. https://doi.org/10.5281/zenodo.22640290 https://comcomponent.com/en/blog/windows-fast-startup-hybrid-shutdown-explained/

DOI (latest version)
10.5281/zenodo.22640290
DOI (this version)
10.5281/zenodo.22640291

“I shut down and turned the power back on, but the printer is not recognized. Then I restarted, and it worked.”

The key to understanding this difference is Windows Fast Startup. Since Windows 8, on a PC that supports hibernation and has this feature enabled, “Shut down” is not an operation that rebuilds all of Windows’ state. It closes apps and the user session, but saves the state of the kernel, drivers, and services and restores it on the next boot. This is called a hybrid shutdown.12

By contrast, “Restart” always performs a full boot cycle, regardless of the Fast Startup setting. “Turn it off and on again” and “restart” are not the same operation.1

This article first shows how to choose the right operation, then moves on to the reasons, symptom-by-symptom isolation, how to verify, and how to decide on configuration changes. Implementation notes for APIs and Windows services are collected in Section 7. The intended readers are IT staff who manage Windows 10/11 and developers of Windows apps for device PCs and test machines. PowerShell 5.1 or later is used for checking and configuration.

1. The Bottom Line First: Pick the Operation That Matches Your Goal

Before turning Fast Startup off outright, separate out what you are trying to do.

Goal or problem Operation or response to try first Details
Isolate a problem, or reset Windows’ state once Restart. But do not conclude the cause just because it fixed things 3.1, 4.1
Terminate Windows completely and also cut the power Run shutdown /s /t 0 3.2
Finish pending updates Choose “Update and restart” 4.3
Wake the PC overnight with Wake on LAN Reconsider the standby power state, not whether Fast Startup is on or off 4.4
Have every “shutdown” initialize the machine Check the machine’s role, then consider disabling Fast Startup Section 6

The basis for this choice is the following three differences.134

The three power menu operations and what actually happensShut down is a hybrid shutdown by default and saves the kernel to the hibernation file. Restart always performs a full boot cycle. Hibernate saves the user session as well to the hibernation file.Shut downHybrid shutdown (default)Save the kernel to the hibernation fileRestartFull boot cycleRebuild the kernel, drivers, and servicesHibernateHibernation (S4)Save all of memory

Figure 1: “Shut down” saves the state; “Restart” rebuilds the Windows-side state. A normal hibernation saves the user session as well. Even a restart does not cut the power to the connected devices.

“Resetting once” and “changing how you shut down every time” are separate decisions. For ordinary business laptops, the practical choice is to leave it on and restart when needed. Microsoft does not recommend disabling Fast Startup across the board either.1

In the diagram a solid line marks a relation that always holds and a dashed line marks a conditional one (the conditions are given per relation on the detail page). The full list of relations (24 in total, with evidence and certainty) and the definitions of the main concepts are collected on the knowledge map detail page (in Japanese). Data: JSON-LD / Turtle

2. How It Works: Windows “Restores” Its State Instead of Rebuilding It

2.1 Where It Diverges from a Full Shutdown

Windows has three boot modes: the traditional cold boot, resume from hibernation, and Fast Startup, which was introduced in Windows 8. In a cold boot, the boot loader loads the kernel into memory and links it, and the kernel configures its core functionality, enumerates the connected devices, and loads drivers. Fast Startup instead reads the already-initialized state back from the hibernation file.5

The preparation for reading it back happens at the previous shutdown. Up to closing apps and signing out all users, it is the same as a full shutdown. After that, the paths diverge.51

Stage Full shutdown Hybrid shutdown
Apps and user sessions Close apps and sign out all users Same
Kernel session Closed Not closed; hibernated
Processing before power-off Shut down the system Send drivers the power IRP to prepare for hibernation, and save the memory image, including kernel-mode drivers, to hiberfil.sys
On the next power-on Initialize the kernel, drivers, and so on Read back the saved state and resume

What drivers receive, too, is not a shutdown notification but a power IRP announcing a transition to hibernation. Although it looks like a power-off to the user, the core of Windows does not terminate; it is preserved until the next boot.5

2.2 What Is Saved and What Is Closed

The boundary lies between the user sessions (the interactive sessions, Session 1 and later) and the kernel session (Session 0).62

Item Handling during a hybrid shutdown
Open apps, sign-in state Terminated when the user session signs out
Per-user services Stopped and deleted at sign-out
The kernel and loaded kernel-mode drivers State saved to the hibernation file and restored on the next boot
Session 0 system services Not stopped and restarted; hibernated and restored with their state intact

Per-user services and Session 0 services are both “services”, but they are handled differently. The former are created at sign-in and stopped and deleted at sign-out, so they are not carried over.7

On the saved side, by contrast, drivers’ internal state and the handles, memory, and internal caches held by system services remain. Microsoft’s hardware documentation also explains that because the kernel, drivers, and services are saved and restored rather than restarted, the uptime between kernel restarts can be longer than on earlier versions of Windows, and asks that memory leaks in drivers and services be monitored.2

2.3 How It Differs from a Normal Hibernation

A normal hibernation saves all of memory, including the user sessions. Fast Startup signs the users out first and then saves. That makes the hibernation file smaller and both writing it out and reading it back faster.26

In power-state terminology, a full shutdown is S5 and hibernation is S4. A hybrid shutdown looks like S5 to the user but actually passes through S4. However, the response to device wake alarms is treated as if the system were in S5. Even though it is the same S4, not everything behaves the same as in a normal hibernation, and this difference matters for Wake on LAN in 4.4.6

2.4 The Next Boot “Resumes” Instead of “Initializing”

A boot from Fast Startup proceeds in this order: firmware initialization, reading the hibernation file, resuming devices, resuming Winlogon, and initializing Explorer. The hibernation file holds the system context that was written out at shutdown.8

What matters here is that devices are resumed, not initialized. If a driver was internally holding a bad state, such as a peripheral not being recognized or a USB device not responding after resume, that state can be carried over as well.

“Restart” does not use this save-and-restore path; it always goes through a full boot. The reason a restart is required after installing a driver, or after updating Windows components that cannot be replaced without a full restart, is precisely to rebuild the Windows-side state.1

3. Resetting or Fully Shutting Down Without Changing Settings

3.1 To Reset and Keep Using the PC: “Restart”

To isolate a problem, or to return Windows to a clean state once, choose “Restart” from the power menu. Because it does not depend on the Fast Startup setting, it is also the reliable operation to write into procedures.1

Note, however, that a restart is a full boot cycle, not an operation that leaves the PC powered off (S5). When Windows must be terminated completely and the power cut, for example before handling the disk from another OS, use the following method.

3.2 To Cut the Power as Well: shutdown /s /t 0

Save your work, then run the following command.

shutdown /s /t 0

The /s of Shutdown.exe is a full shutdown by default. Combine /hybrid with /s only when you want a hybrid shutdown. The power menu’s “Shut down” and the command’s /s have different default behaviors.19

In the shutdown sequence of a device PC or in a batch file, this command makes the intent, “terminate completely and cut the power”, unambiguous. Note that /g fully shuts down and then restarts, resuming registered apps if Automatic Restart Sign-On (ARSO) is enabled; it is not an option for staying powered off.9

3.3 The Shift Key Method, and Calling from an App

Selecting “Shut down” while holding the Shift key performs a full shutdown for that one time only. However, this procedure is described in a support answer on Microsoft Q&A, not in an official reference. If you use it in operations, verify the result with the uptime or Event 27 described in Section 5; for user-facing procedures, “Restart” or shutdown /s /t 0 is the safer choice in terms of reliability.10

An app can also perform a full shutdown through the API, for example by calling InitiateSystemShutdownEx with bRebootAfterShutdown set to FALSE. The flags for each API, the difference between power-off and restart, and the required privilege are summarized in Section 7.11

4. Isolating the Cause by Symptom

The mechanism described so far explains uptime and carried-over problems. But do not assume that the symptom in front of you is caused by Fast Startup. Wake on LAN in particular must be isolated as a separate constraint.

4.1 A Shutdown Does Not Fix It, but a Restart Does

The first thing to do is check whether the problem reproduces after a restart. If it disappears after a restart, the hypothesis that state carried over in a driver or service is the cause becomes strong.

It is not confirmed, though, just because a restart fixed it. An intermittent problem may simply not have appeared, or the restart may have completed a pending update. Before treating it as the cause, obtain the following corroboration.

  1. Confirm several times that “it reproduces after a shutdown and does not reproduce after a restart”.
  2. Confirm with the Kernel-Boot Event 27 described in Section 5 that the most recent boot was Fast Startup (0x1).
  3. Cross-check against the driver-side records in Device Manager and the System log.

Even once corroborated, there is no need to change the setting on every machine right away. In most cases, correcting the procedure from “turn it off and on again” to “restart” is enough. Whether a machine needs guaranteed initialization at every shutdown is decided in Section 6.

When the shutdown itself fails and returns to the lock screen, a different check is needed. A shutdown with Fast Startup enabled runs as a hibernation, and partway through it initializes the memory dump configuration. If the dump filter driver cannot be loaded, the hibernation fails, Event ID 45 is logged, and the system returns to the lock screen. The place Microsoft points to is DumpFilters under HKLM\SYSTEM\CurrentControlSet\Control\CrashControl. Treating this symptom as a “hibernation failure” rather than a “shutdown failure” makes it clear where to look.1

4.2 Uptime Does Not Reset Despite Shutting Down Every Night

Task Manager’s “Performance” > “CPU” sometimes shows an uptime of many days. In a hybrid shutdown the kernel is only hibernated and restored, so the kernel’s boot time is not updated.2

In WMI, uptime is obtained from Win32_OperatingSystem.LastBootUpTime by subtracting the boot time from the current time. A restart, which goes through a full boot, and a boot after a full shutdown update this reference boot time.12

Get-Uptime in PowerShell 6 and later uses the high-resolution timer’s tick count since system start. Its value can therefore differ slightly from the one derived from WMI, but it is the same in taking the kernel’s boot as the reference.13

Do not conclude either a fault or Fast Startup from a long uptime alone. Uptime is also preserved across sleep, an explicit hibernation, and a shutdown that did not complete. Check Event 27 and the surrounding log entries before you explain it.

Also, monitoring such as “prompt a restart when uptime exceeds 30 days” will warn users who shut down every day. The monitoring is not wrong. Wording the notification as “please restart” avoids the confusion of “but I shut down last night”.

4.3 Updates Do Not Finish Even After “Update and shut down”

To finish an update, choose “Update and restart”. Microsoft’s support article (KB4011287) explains that some updates can complete only in a boot that follows a full shutdown, and may be held pending when the boot goes through Fast Startup’s hibernation. This behavior does not occur with a restart.3

When “Updating” appears again the next morning after “Update and shut down”, it is usually not an update failure; the processing that was waiting for a full boot is simply proceeding in that boot. If Fast Startup is disabled, “Update and shut down” also goes through a full boot, so the premise changes.

The same support article also notes that the delay in completing updates in environments managed by Configuration Manager was addressed in Configuration Manager 2002 and Windows 10 21H1.3

4.4 Wake on LAN Cannot Wake a PC That Was Shut Down

Turning Fast Startup off alone does not solve this problem. On Windows 10/11, Wake on LAN (WOL) as far as Windows is concerned is not supported from either a hybrid shutdown or a full shutdown (S5).414

Standby state WOL handling as far as Windows is concerned
Traditional sleep (S3) Supported path. Depends on the NIC and wake settings, though
Hibernation (S4) explicitly chosen by the user Supported path. Depends on the NIC and wake settings, though
Hybrid shutdown (actually S4) The NIC is not armed for wake; not supported
Full shutdown (S5) Not supported
Modern Standby (S0 low-power idle) The network can be a wake source, but the model and power conditions must be checked

Even though both are S4, Windows treats “Hibernate” and “Shut down” differently. According to Microsoft’s explanation, a user who orders a shutdown expects zero power consumption, so Windows does not arm the NIC for wake on the transition to a hybrid shutdown. This disabling is not performed on the transition to an explicit hibernation.4

On Windows 7, too, WOL from the default full shutdown (S5) was not officially supported. There were, however, models on which the NIC stayed armed for wake if residual power was available. The difference with Windows 10’s default hybrid shutdown is that Windows explicitly disables wake.4

Modern Standby machines cannot be generalized as “they always wake as long as they are asleep”. A model that shows “S0 Low Power Idle” in powercfg /a has no S3. In Modern Standby the system keeps running at low power even with the screen off, and Wi-Fi, Ethernet, and mobile broadband maintain their connections and can be wake sources. Microsoft’s documentation also states that Remote Desktop and file sharing can wake the SoC over an Ethernet connection.15

The same documentation, however, also lists the following conditions.15

  • In disconnected standby, apps cannot use the network, and on battery power the network stack may begin disconnecting.
  • Wired LAN does not qualify as Modern Standby capable unless it supports pattern-match offload.
  • On Windows 11 version 24H2 and later, many wake sources are disabled when excessive battery drain is detected.

On Surface, WOL during Modern Standby is stated to work by default since Windows 10 version 1607, but that is no guarantee for laptops from other manufacturers. Whether a PC can actually be woken is determined by the NIC, the firmware, the AC/DC power conditions, and the OEM’s implementation, so verify on a real machine before building it into unattended operations such as overnight jobs.16

There are also models whose firmware and hardware can arm the NIC for wake from S4/S5 on their own. In that case Windows is not involved. “Some models do wake from a shutdown” refers to this exception.4

Operationally, the basic approach is to leave the machine you want to wake waiting in “Sleep” or “Hibernate”. Even if the NIC’s “Wake on Magic Packet” and similar settings are configured correctly, the PC will not wake if the OS’s power transition has disabled wake. How drivers tell the two apart is explained in 7.5. See also “Sleep, Hibernation, Modern Standby, and Long-Running Apps” for Modern Standby behavior and “A Guide to Windows NIC Advanced Settings” for NIC settings.

4.5 Dual Boot, or Handling the Same Disk from Another OS

This section is a caution derived from the mechanism, based on the primary sources on power states. In a hybrid shutdown, the kernel’s memory image is saved and restored on the next boot.6

Pending writes are committed to disk at the point of entering hibernation, but the file system driver’s caches and its assumptions about the volume’s structure remain in the hibernation file. If another OS (Linux, Windows PE, and so on) writes to the same NTFS volume in the meantime, the stale view that Windows restores on the next boot will disagree with what is actually on the disk.

The danger is not hibernation itself but Windows restoring the old state after another OS has modified the disk. When the NTFS driver on the Linux side refuses to write to a hibernated volume, or mounts it read-only, that is correct behavior meant to prevent exactly this inconsistency.

On a machine that handles the same disk from several operating systems, or a test machine that boots a separate OS for repair, build one of the following into your operations.

  • Turn Fast Startup off and also disable explicit hibernation with powercfg /h off.
  • Require the full shutdown from Section 3 before switching operating systems.

Turning Fast Startup off alone leaves explicit hibernation available. Be aware that writing from another OS while Windows is hibernated causes the same inconsistency.

4.6 Firmware Settings or Device Configuration Changes Do Not Take Effect

If you changed UEFI settings or the configuration of peripherals, yet the old state appears to remain even after turning the power off and on, restart to go through a full boot. With Fast Startup, drivers take the resume path, not the cold-boot initialization path.

Microsoft asks that drivers which configure a device differently on a cold boot and on a resume from hibernation configure it as for a cold boot after Fast Startup. In drivers not implemented that way, the resume path becomes the problem. How a driver tells the two apart is summarized in 7.5.5

5. Checking the “Setting” and the “Actual Boot Path” Separately

Even when Fast Startup is enabled in the settings, the most recent boot did not necessarily take that path. Read the information that tells you the setting and the information that tells you the boot result separately.

5.1 Four Places to Check

Where to check What it tells you Caveat
Uptime in Task Manager Whether time has been accumulating since the kernel booted The first clue. It also continues across sleep, hibernation, and a failed shutdown, so do not conclude from it alone
Kernel-Boot, Event ID 27 in the System log The type of the most recent boot Cross-check against the uptime to confirm the actual path
powercfg /a Available power states; whether a hibernation file exists and its type With a reduced hibernation file, Fast Startup is available even though normal hibernation is not
Local and policy HiberbootEnabled The Fast Startup setting A policy value of 0 does not mean “force disabled”

How to think about uptime is covered in 4.2, and the relationship between the hibernation file and the setting is also explained in 6.3 and 6.4.261718

5.2 How to Read Event 27

Kernel-Boot Event 27 records a value at boot such as “The boot type was 0x1”. The meaning of the value is not documented in the official reference, but the following mapping is widely known.

Value Boot type
0x0 Full boot
0x1 Fast Startup
0x2 Resume from hibernation

Even if the uptime is continuing, a most recent value of 0x2 means a resume from a normal hibernation, not Fast Startup. Do not explain from the uptime alone; combine it with Event 27.

5.3 Checking Everything at Once with PowerShell

The following script displays the setting, the hibernation file, the uptime, and the type of the last five boots together. Most of the registry and event log reads work without administrator rights, but powercfg /a requires administrator rights in some environments.

# Show the Fast Startup setting and the type of the most recent boots together
$powerKey  = 'HKLM:\SYSTEM\CurrentControlSet\Control\Session Manager\Power'
$policyKey = 'HKLM:\SOFTWARE\Policies\Microsoft\Windows\System'

$local  = Get-ItemProperty -Path $powerKey  -Name HiberbootEnabled -ErrorAction SilentlyContinue
$policy = Get-ItemProperty -Path $policyKey -Name HiberbootEnabled -ErrorAction SilentlyContinue
$os     = Get-CimInstance -ClassName Win32_OperatingSystem
$hiberfil = Test-Path -LiteralPath "$env:SystemDrive\hiberfil.sys"

# Without a hibernation file (powercfg /h off), Fast Startup does not work regardless of the registry value.
# The "Require use of fast startup" policy takes precedence over the local setting only when it is Enabled (1).
# If the policy value is 0 or not configured, the local setting is used (no value means enabled by default)
$effective =
    if (-not $hiberfil) { 'Not available (no hibernation file: the powercfg /h off state)' }
    elseif ($null -ne $policy -and $policy.HiberbootEnabled -eq 1) { 'Enabled (forced by policy)' }
    elseif ($null -eq $local -or $local.HiberbootEnabled -eq 1) { 'Enabled (local setting)' }
    else { 'Disabled (local setting)' }

[pscustomobject]@{
    LocalHiberbootEnabled  = if ($null -eq $local)  { '(no value: enabled by default)' } else { $local.HiberbootEnabled }
    PolicyHiberbootEnabled = if ($null -eq $policy) { '(not configured)' } else { $policy.HiberbootEnabled }
    EffectiveSetting       = $effective
    HiberfilExists         = $hiberfil
    LastBootUpTime         = $os.LastBootUpTime
    Uptime                 = (Get-Date) - $os.LastBootUpTime
} | Format-List

# Type of the last five boots (0x0 = full boot, 0x1 = Fast Startup, 0x2 = resume from hibernation)
Get-WinEvent -FilterHashtable @{ LogName = 'System'; ProviderName = 'Microsoft-Windows-Kernel-Boot'; Id = 27 } -MaxEvents 5 |
    Select-Object TimeCreated, Message

# Available sleep states and the type of the hibernation file
powercfg /a

The effective setting shown here is decided in this order: whether a hibernation file exists, whether the policy forces it on, and what the local setting is. If the policy value is 0 or not configured, the local setting is used, and without a hibernation file, Fast Startup is unavailable whatever the setting values are.

5.4 “Who Requested the Shutdown” Is in a Different Log

Event ID 1074 (User32) in the System log records the requesting process, user, and reason code, and the requested operation (power off, restart, and so on). However, because both a hybrid and a full shutdown are recorded as a power off, 1074 alone cannot tell the two apart. Confirm the actual path with Event 27 at the next boot.

Unexpected stops are isolated from the sequence with 41 (Kernel-Power) and 6008 (EventLog).19 The procedure for tracking down “the device PC had stopped by morning” is covered in “Windows Shutdown as Seen from Your App”.

6. Deciding Whether to Turn Fast Startup Off, and How

6.1 Decide by the Machine’s Role, Not Across the Board

Microsoft enables Fast Startup by default and does not recommend disabling it. It has a boot-time benefit, and the hardware documentation treats reading and writing the hibernation file as processing important enough to account for about 50% of boot time. On an ordinary laptop, there is no reason to turn it off across the board.12

The two axes for the decision are “does the operation assume that powering off initializes the machine?” and “will another OS modify the same volume?” These two are independent. Do not stop at “we turned it off because it is a device PC”; also check whether another OS writes to the disk.

Machine role or goal Recommended response Reason
Device PC or measurement PC where initialization by power-off is an operational assumption Turn it off Where the procedure cannot be changed to “restart”, guarantee initialization through the setting
Test machine, or a machine that handles the same disk from several operating systems In addition to turning it off, also disable hibernation, or require a full shutdown before switching OS Stopping Fast Startup alone leaves the inconsistency caused by explicit hibernation (4.5)
Machine to be woken overnight by WOL Reconsider the standby state, not the setting Even when off, WOL from S5 is not supported. Modern Standby machines need verification on a real machine (4.4)
Machine with small storage Consider a reduced hibernation file Shrinks the hibernation file while keeping Fast Startup (6.4)
Ordinary business laptop Leave it on and restart when needed Keeps the fast boot, and isolation can be done with a restart
Always-on, server-like machine that is never shut down Either is fine If it is never shut down, the setting has no effect, and a restart is always a full boot

6.2 Changing One Machine at a Time: Control Panel

On both Windows 10 and 11, the place to change it is Control Panel, not the Settings app.4

  1. Open “Power Options” and select “Choose what the power buttons do”.
  2. If the items are grayed out, click “Change settings that are currently unavailable” (requires administrator rights).
  3. Clear the “Turn on fast startup (recommended)” check box.
  4. Save the changes.

If the item itself is not shown, hibernation is disabled and there is no hibernation file. See the explanation of powercfg /a and the hibernation file in 6.4.

6.3 Configuring Many Machines: Distinguish the Registry from the Policy

The local setting is HiberbootEnabled (DWORD) under HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Power. 0 disables and 1 enables, and the Control Panel check box reads and writes this same value.17

# Run in a PowerShell opened as administrator. Disables Fast Startup
$powerKey = 'HKLM:\SYSTEM\CurrentControlSet\Control\Session Manager\Power'
Set-ItemProperty -Path $powerKey -Name HiberbootEnabled -Type DWord -Value 0

# Read the value back to confirm
(Get-ItemProperty -Path $powerKey -Name HiberbootEnabled).HiberbootEnabled

However, if the “Require use of fast startup” policy is Enabled, the policy takes precedence over the local value. Even if you set the local value to 0 and read back 0, Fast Startup stays enabled. In that case, first set the policy back to Disabled or Not Configured.18

Policy state Result
Enabled Requires Fast Startup and requires hibernation to be enabled. Takes precedence over the local setting
Disabled or Not Configured The local HiberbootEnabled is used. Does not force Fast Startup off

This policy is in WinInit.admx under “Computer Configuration > Administrative Templates > System > Shutdown”. It writes to HiberbootEnabled under HKLM\SOFTWARE\Policies\Microsoft\Windows\System. In Intune it can be configured as the Policy CSP ADMX_WinInit/Hiberboot.18

To roll out off across the board, distribute the local HiberbootEnabled = 0 with Group Policy Preferences or an Intune configuration. Enable this policy when you want to force on so that users cannot turn it off.

The three layers of the Fast Startup settingIf the "Require use of fast startup" policy is Enabled, Fast Startup is enabled with precedence over the local setting; if it is not configured, the local HiberbootEnabled is used. On either path, Fast Startup is unavailable unless a hibernation file existsEnabledDisabled or Not Configured1 (default)0Yes (full or reduced)No (powercfg /h off)Policy: Require use of fast startupForced on (local setting ignored)Local: HiberbootEnabledEnabledDisabledDoes the hibernation file (hiberfil.sys) exist?Fast Startup worksFast Startup unavailable

Figure 2: The policy is a setting that forces on. Disabling is distributed through the local registry value, and on either path Fast Startup is unavailable without a hibernation file.

The change takes effect from the next shutdown. To verify, perform a normal “Shut down”, power on, and check that Event 27 is 0x0. A restart is a full boot regardless of the setting, so it cannot be used to verify the disablement. Reading the registry back confirms the setting value; Event 27 confirms the actual path.

6.4 powercfg /h off Is Not the Same as “Turning Off Only Fast Startup”

Fast Startup relies on the hibernation file, hiberfil.sys. powercfg /hibernate off (powercfg /h off) is the operation that deletes that hibernation file. Not only Fast Startup but also normal hibernation and hybrid sleep become unavailable.206

Setting HiberbootEnabled = 0, on the other hand, leaves the hibernation file in place. Change the right target for each goal.

Goal Setting or command What remains and what is lost
Stop only Fast Startup HiberbootEnabled = 0 The hibernation file remains. If it is the full type, normal hibernation also remains
Shrink the file but keep Fast Startup powercfg /h /type reduced Reduced hibernation file (20% of physical memory by default). Normal hibernation and hybrid sleep are unavailable
Return to a type that also allows normal hibernation powercfg /h /type full Full hibernation file (40% of physical memory by default). Not recommended on machines with less than 32 GB of storage
Do without hibernation altogether powercfg /h off Deletes the hibernation file. Fast Startup, hibernation, and hybrid sleep all become unavailable

A full hibernation file supports hibernation, hybrid sleep, and Fast Startup. Hybrid sleep requires S3, though, so on a Modern Standby machine without S3 it cannot be used even with a full hibernation file. A reduced hibernation file supports only Fast Startup. On a PC that was already of the reduced type, turning off only Fast Startup does not make normal hibernation or hybrid sleep available.6

Read the output of powercfg /a with this distinction in mind as well.

Hibernation file What is shown about normal hibernation Fast Startup
Full Available Available
Reduced “Hibernation is not supported” Available
None “Hibernation has not been enabled” Not available

If /type reduced fails with “The parameter is incorrect”, it is because the hibernation file size was manually set larger than 40%. First run powercfg /h /size 0 to return the size to OS management, then run it again.621

On a machine where another OS modifies the same volume, the remaining normal hibernation causes the same inconsistency as in 4.5. Do not stop at disabling Fast Startup; also disable hibernation, or require a full shutdown before switching OS.

7. For Developers: Shutdown APIs and Service Caveats

7.1 The API Specifies “Which Operation”, Not Just “Hybrid or Not”

Shutdown APIs called from an app have different default behaviors from the power menu. According to Microsoft’s documentation, InitiateSystemShutdownEx and InitiateSystemShutdown never become hybrid, while InitiateShutdown and ExitWindowsEx request hybrid with an explicit flag.26

API Full shutdown that powers off Shutdown for Fast Startup
InitiateSystemShutdownEx / InitiateSystemShutdown bRebootAfterShutdown = FALSE Never hybrid
InitiateShutdown Specify SHUTDOWN_POWEROFF without SHUTDOWN_HYBRID Combine SHUTDOWN_POWEROFF with SHUTDOWN_HYBRID
ExitWindowsEx Specify EWX_POWEROFF without EWX_HYBRID_SHUTDOWN Combine EWX_SHUTDOWN with EWX_HYBRID_SHUTDOWN

SHUTDOWN_HYBRID is not specified alone; it is combined with one or more flags from the same table. Of those, the combination that yields a power-off for Fast Startup is the one with SHUTDOWN_POWEROFF. EWX_HYBRID_SHUTDOWN is likewise not used alone but combined with EWX_SHUTDOWN.2223

Removing the hybrid flag alone does not determine the operation. The following distinctions are also needed.112223

Argument or flag Operation performed
bRebootAfterShutdown = TRUE, SHUTDOWN_RESTART, EWX_REBOOT Restart
SHUTDOWN_NOREBOOT Stops the system but does not power off
EWX_SHUTDOWN Stops the system to a point where the power can be safely turned off, but does not power off
ExitWindowsEx with uFlags = 0 EWX_LOGOFF, that is, sign-out

If you implement a “power off” button on a kiosk terminal or device PC, call InitiateSystemShutdownEx with bRebootAfterShutdown = FALSE, or call ExitWindowsEx with EWX_POWEROFF, and do not add the hybrid flag. What matters is keeping the required power-off specification, not “no flags”.

7.2 Enable the Privilege on the Right Token Before Calling

With any of these APIs, shutting down the local PC requires the SE_SHUTDOWN_NAME privilege to be enabled beforehand with AdjustTokenPrivileges. By default, a signed-in user can enable this privilege, but if you call with it still disabled, the API fails and no shutdown begins.1123

The token on which to enable it differs by API.

API Token on which to enable the privilege
ExitWindowsEx The calling process’s token. Open it with OpenProcessToken
InitiateSystemShutdown(Ex) / InitiateShutdown The calling thread’s effective token. The thread token if impersonating; otherwise the process token

An ordinary desktop app or kiosk app that is not impersonating has no thread token. OpenThreadToken fails with ERROR_NO_TOKEN, so make sure the code does not proceed to the call with the privilege still disabled.

7.3 To Behave Like the Power Menu, Read the Effective Setting

EWX_HYBRID_SHUTDOWN is a flag that “requests Fast Startup”, not one that “follows that PC’s setting”.23

If Fast Startup is turned off but the hibernation file remains on the PC, requesting with this flag means the app bypasses the user’s setting. A utility that respects the setting should check the policy, the local HiberbootEnabled, and whether the hibernation file exists, using the same rules as the script in 5.3.

Combine EWX_SHUTDOWN with EWX_HYBRID_SHUTDOWN only when the effective setting is enabled; otherwise choose a full shutdown that powers off. Confirm the result with Event 27 at the next boot.

7.4 Services Must Handle Power Events, Not Just Stop Notifications

In a hybrid shutdown, apps in the user session are closed, but Session 0 services are hibernated and restored. Per-user services are stopped and deleted at sign-out, so keep the two distinct here.27

When entering hibernation, apps and services are notified first, then drivers. The important point is that on resume, drivers and services are not started over; they return to the state they were in before hibernation.6

Microsoft’s documentation for its assessment tools explains that suspend notifications are sent serially to services that declared SERVICE_ACCEPT_POWEREVENT, that a 30-second timeout applies per service, and that from a service’s point of view Fast Startup is the same as hibernation.24

If a service hibernates while holding a connection to a device and the device is powered off in the meantime, the connection restored the next morning is already unusable. If all cleanup is left to the stop notification, this path is not handled.

Path Required acceptance declaration How the service is handled
Restart or full shutdown SERVICE_ACCEPT_SHUTDOWN / SERVICE_ACCEPT_PRESHUTDOWN Receives the corresponding stop notification and terminates
Hybrid shutdown or hibernation SERVICE_ACCEPT_POWEREVENT Receives power events and is hibernated and restored with its state intact

The stop notifications are SERVICE_CONTROL_SHUTDOWN / SERVICE_CONTROL_PRESHUTDOWN. This handling is needed for restart and full shutdown, so do not remove it. Keep it, and in addition perform cleanup and reconnection on the power events for the transition to sleep or hibernation and the resume from them.25

Neither notification is delivered except to services that made the corresponding acceptance declaration. Without the declaration, the service is terminated without notice at stop time, and hibernated and restored without notice in a hybrid shutdown. What gets started again in the boot after a full shutdown is services whose start type is Automatic. Manual and Disabled services do not come back without a dependency, a trigger, or an explicit start. How to receive power events in practice is covered in “Apps That Break on Resume from Sleep”.24

7.5 Drivers Can Distinguish Fast Startup from a Normal Resume from Hibernation

Drivers can tell the two apart using the SYSTEM_POWER_STATE_CONTEXT included in the system set-power IRP.5

Path TargetSystemState EffectiveSystemState
Fast Startup PowerSystemShutdown PowerSystemHibernate
Resume from a normal hibernation PowerSystemHibernate PowerSystemHibernate

The system-supplied NDIS driver uses this difference: it disables the miniport’s wake capability for Fast Startup and does not disable it for a resume from a normal hibernation. This is the reason, explained in 4.4, why WOL is handled differently even though both are S4.5

Microsoft’s guidance is also that drivers which configure a device differently on a cold boot and on a resume from hibernation should configure it as for a cold boot after Fast Startup.5

8. Reflecting This in Procedures and Monitoring

Once the mechanism is understood, align the operations and wording used on site.

Operational situation What to write in the procedure or notification
First-line isolation of a problem “Restart”, not “turn it off and on again”
When the uptime threshold is exceeded “Please restart”. Explain why the warning appears even for users who shut down every day
When completing updates Make “Update and restart” the standard
When disabling as the standard configuration for device PCs Put the registry setting from 6.3 into provisioning, and at acceptance verify the boot after a normal shutdown with the method in Section 5

Stating “restart” explicitly is also important for preventing forced power-offs by long-pressing the power button on site. Uptime-based monitoring can be used as is. On a Fast Startup machine, it is correctly detecting that the kernel has not been restarted.

Even when a restart makes a problem disappear, obtain the reproduction check and log corroboration from 4.1 before reflecting it in procedures or settings. If a restart does not fix it, pursue causes other than Fast Startup. See also “Windows Shutdown as Seen from Your App” for the relationship between updates and device-PC apps.3

9. Summary

The point to remember is that a “shutdown” with Fast Startup enabled is a power-off from the user’s point of view, not an operation that rebuilds all of Windows’ state. Apps and the user session are closed, but the kernel, drivers, and Session 0 services are saved and restored.52

On a PC with Fast Startup turned off, or with no hibernation file, a normal “Shut down” also closes the kernel session and enters S5.

To reset once, choose Restart; to terminate completely and also cut the power, choose shutdown /s /t 0. Do not conclude the cause just because a restart fixed it; corroborate with a reproduction check, Event 27, and the surrounding logs.19

Whether to turn Fast Startup off is decided by whether the machine assumes initialization and whether another OS modifies the same volume. For the latter, countermeasures for explicit hibernation are also needed. If WOL is the goal, reconsider the standby state rather than toggling the setting.17204

KomuraSoft LLC handles the design of provisioning standards that include the power operation of device PCs and kiosk terminals (shutdown, sleep, hibernation, and Wake on LAN), root-cause investigation of long-running app problems such as “only a restart fixes it” and “it had stopped by morning”, and design review of power-event handling in Windows services and resident apps. Feel free to start from a single case such as “the uptime does not go down even though we shut down every night”.

References

  1. Microsoft Learn, Fast startup causes hibernation or shutdown to fail in Windows 10 or Windows 8.1. On Fast Startup hibernating the kernel session instead of closing it and saving the kernel session and device drivers to hiberfil.sys; a restart performing a full boot cycle; the Fast Startup setting not applying to restarts; it being enabled by default with disabling not recommended; Shutdown /s /t 0 being a full shutdown by default and /hybrid making it hybrid; and the system returning to the lock screen with Event ID 45 logged when initializing the memory dump configuration fails during hibernation, with DumpFilters as the place to check.  2 3 4 5 6 7 8 9 10 11

  2. Microsoft Learn, Delivering a great startup and shutdown experience. On the default shutdown and restart scenario since Windows 8.x being named fast startup, signing out all user sessions (“session 1” in the document’s terminology) and writing the rest to the hibernation file; loading the initialized state from the hibernation file at boot instead of a full boot; the kernel, drivers, and services being saved and restored rather than restarted on a user-initiated shutdown, so that the uptime between kernel restarts can be significantly longer than before; memory leaks in drivers and services needing to be monitored; reading and writing the hibernation file accounting for about 50% of boot time; and the table of shutdown API behavior (InitiateSystemShutdownEx and InitiateSystemShutdown always full shutdown, InitiateShutdown with SHUTDOWN_HYBRID and ExitWindowsEx with EWX_HYBRID_SHUTDOWN for a Fast Startup shutdown).  2 3 4 5 6 7 8 9 10

  3. Microsoft Learn, Updates may not be installed with Fast Startup in Windows 10. On updates sometimes not being installed after a shutdown when Fast Startup is enabled, which does not happen with a restart; some updates only completing in a boot that follows a full shutdown; choosing “Restart” from the power menu to complete pending updates; and the delay in Configuration Manager environments being addressed in Configuration Manager 2002 and Windows 10 21H1.  2 3 4

  4. Microsoft Learn, Wake on LAN (WOL) behavior in Windows 10. On the default shutdown in Windows 7 being S5, with WOL from S5 not officially supported although some models woke on residual power; the default shutdown in Windows 10 being a hybrid shutdown (S4), with WOL from S4 and S5 not supported and the network adapter not explicitly armed for wake; WOL being supported only from sleep (S3) or a hibernation (S4) explicitly chosen by the user; Windows explicitly disabling WOL only on the transition to a hybrid shutdown and not on the transition to hibernation; some models whose firmware and hardware support wake from S4/S5, in which case Windows is not involved; the procedure for disabling by clearing “Turn on fast startup (recommended)” under Control Panel’s “Power Options” > “Choose what the power buttons do”; and disabling not being recommended.  2 3 4 5 6 7

  5. Microsoft Learn, Distinguishing fast startup from wake-from-hibernation. On the three boot modes, cold, resume from hibernation, and fast (introduced in Windows 8); a cold boot loading the kernel, enumerating devices, and loading drivers, whereas Fast Startup only reads the hibernation file; the preparation for Fast Startup of closing apps, signing out all user sessions, sending drivers the power IRP to prepare for hibernation, and saving the kernel’s memory image including kernel-mode drivers to hiberfil.sys before powering off; distinguishing the two with TargetSystemState and EffectiveSystemState of SYSTEM_POWER_STATE_CONTEXT; the NDIS driver disabling the miniport’s wake capability for Fast Startup but not for a resume from hibernation; and drivers that configure differently for a cold boot and a resume from hibernation configuring as for a cold boot after Fast Startup.  2 3 4 5 6 7 8

  6. Microsoft Learn, System power states. On Fast Startup being a type of shutdown that signs the user out before creating the hibernation file; the system appearing to the user to be in S5 while actually going through S4, with the response to device wake alarms following suit; the contents of Session 0 being written to disk; the two hibernation file types, full (40% by default) and reduced (20% by default, Fast Startup only), and the differing powercfg /a output for each; running /size 0 first when /type reduced fails; Fast Startup being the default when a shutdown is requested, while a restart request and an app calling a shutdown API result in a full shutdown (S5); apps, services, and drivers being notified on entering hibernation and drivers and services being restored to their pre-hibernation state rather than restarted on resume; and SHUTDOWN_HYBRID for InitiateShutdown and EWX_HYBRID_SHUTDOWN for ExitWindowsEx 2 3 4 5 6 7 8 9 10

  7. Microsoft Learn, Per-user services in Windows. On per-user services being created when a user signs in and stopped and deleted when the user signs out.  2

  8. Microsoft Learn, Optimizing Performance and Responsiveness. On Fast Startup, introduced in Windows 8, being the default boot behavior, with the shutdown process updated to write data to disk the same way hibernation does; boot going through the phases of BIOS initialization, reading the hibernation file, resuming devices, resuming Winlogon, initializing Explorer, and Post On/Off; and the hibernation file containing all of the system context written at shutdown. 

  9. Microsoft Learn, shutdown. On /s shutting down the computer; /hybrid being the option that shuts down the device and prepares it for Fast Startup, used in combination with /s; /g fully shutting down and then restarting, resuming registered apps if Automatic Restart Sign-On is enabled; and the default for /t being 30 seconds, with 0 allowed.  2 3

  10. Microsoft Q&A, why is Task Host preventing shutdown?. On the support answer explaining that selecting “Shut down” while holding the Shift key on the desktop or the sign-in screen temporarily disables Fast Startup for that one time and performs a full shutdown (a community support answer, not an official reference). 

  11. Microsoft Learn, InitiateSystemShutdownExA function (winreg.h). On the system restarting immediately after shutdown when bRebootAfterShutdown is TRUE, and flushing caches to disk and safely powering off when it is FALSE; and shutting down the local PC requiring the SE_SHUTDOWN_NAME privilege on the calling thread, which a signed-in user can enable by default.  2 3

  12. Microsoft Learn, WMI Tasks: Desktop Management. On obtaining a computer’s uptime by subtracting the LastBootUpTime property of the Win32_OperatingSystem class from the current time. 

  13. Microsoft Learn, Get-Uptime. On the cmdlet being introduced in PowerShell 6.0 and computing the time since the last OS boot from the high-resolution timer (tick count since system start), so that the value can differ slightly from one derived from LastBootUpTime of WMI’s Win32_OperatingSystem

  14. Microsoft Learn, Ethernet. On the default shutdown behavior being a hybrid shutdown (S4); the NIC not being armed for wake and remote wake not being supported in both a hybrid shutdown (S4) and a full shutdown (S5); and WOL being supported only from sleep (S3) or hibernation (S4). 

  15. Microsoft Learn, Modern Standby Wake Sources. On Modern Standby PCs staying connected to the network (Wi-Fi, mobile broadband, Ethernet) at low power even with the screen off; Wi-Fi, Ethernet, and MBB devices providing continuous connectivity and serving as wake sources; Remote Desktop and file sharing being able to wake the SoC over an Ethernet connection; and many wake sources being disabled on Windows 11 version 24H2 and later when excessive battery drain is detected.  2

  16. Microsoft Learn, Wake On LAN for Surface devices. On Wake on LAN working by default on Surface devices during Modern Standby since Windows 10 version 1607, and wake from hibernation (S4) or shutdown (S5) requiring dock-side support such as Surface Dock 2. 

  17. Microsoft Learn, Hibernate Once/Resume Many (HORM). On the registry value that disables Fast Startup being HiberbootEnabled (DWORD, 0 for disabled, 1 for enabled) under HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Power, and powercfg /h off, which disables hibernation, deleting hiberfil.sys.  2 3

  18. Microsoft Learn, Policy CSP - ADMX_WinInit. On the “Require use of fast startup” policy (Hiberboot, WinInit.admx, Computer Configuration > System > Shutdown) controlling the use of Fast Startup, the system requiring hibernation to be enabled when it is Enabled, and the local setting being used when it is Disabled or Not Configured; the registry key being Software\Policies\Microsoft\Windows\System with the value name HiberbootEnabled; and it being configurable from Intune as ./Device/Vendor/MSFT/Policy/Config/ADMX_WinInit/Hiberboot 2 3

  19. Microsoft Learn, How to troubleshoot unexpected reboots by using the system event logs. On Event ID 1074 recording the process, user, reason, and type of shutdown that requested it, and 41 and 6008 indicating an unexpected stop. 

  20. Microsoft Learn, How to disable and re-enable hibernation on a computer that is running Windows. On the powercfg.exe /hibernate off and on procedures; hybrid sleep no longer working when hibernation is disabled; and hiberfil.sys being a hidden system file in the root of the drive where the OS is installed, roughly the same size as the RAM, without which the computer cannot hibernate.  2

  21. Microsoft Learn, Powercfg command-line options. On /hibernate on / off; /size specifying the hibernation file size as a percentage of memory; /type reduced | full specifying the hibernation file type, with a reduced hibernation file supporting only hiberboot; and a HiberFileSizePercent of 40 or more being treated as a full hibernation file, so that /size 0 must be run first to change to reduced. 

  22. Microsoft Learn, InitiateShutdownA function (winreg.h). On Windows 8 and later specifying SHUTDOWN_HYBRID in combination with one or more flags from the same table (the combination with SHUTDOWN_POWEROFF being the power-off for Fast Startup, SHUTDOWN_RESTART being a restart, and SHUTDOWN_NOREBOOT only stopping without powering off), and the shutdown always being a full system shutdown without SHUTDOWN_HYBRID 2

  23. Microsoft Learn, ExitWindowsEx function (winuser.h). On EWX_HYBRID_SHUTDOWN being a flag, available on Windows 8 and later, that is combined with EWX_SHUTDOWN to request a shutdown prepared for Fast Startup; InitiateSystemShutdown / InitiateSystemShutdownEx being the functions to use when not the interactive user; a shutdown or restart requiring the calling process to have enabled the SE_SHUTDOWN_NAME privilege with AdjustTokenPrivileges; and EWX_SHUTDOWN only stopping the system to a point where the power can be safely turned off, with EWX_POWEROFF being what turns the power off.  2 3 4

  24. Microsoft Learn, Suspend Services Duration. On all services registered to receive power management events (SERVICE_ACCEPT_POWEREVENT) receiving the suspend notification; the notifications being sent serially with a 30-second timeout applied per service; and Fast Startup being the same as hibernation from a service’s point of view.  2

  25. Microsoft Learn, SERVICE_STATUS structure (winsvc.h). On only services that set SERVICE_ACCEPT_SHUTDOWN / SERVICE_ACCEPT_PRESHUTDOWN / SERVICE_ACCEPT_POWEREVENT in dwControlsAccepted receiving the SERVICE_CONTROL_SHUTDOWN / SERVICE_CONTROL_PRESHUTDOWN / SERVICE_CONTROL_POWEREVENT notifications, respectively. 

Recent articles sharing the same tags. Deepen your understanding with closely related topics.

These topic pages place the article in a broader service and decision context.

This article connects naturally to the following service pages.

Frequently Asked Questions

Common questions about the topic of this article.

A problem that a 'shutdown' did not fix went away after a 'restart'. Why?
On Windows 8 and later client versions, a 'shutdown' in a configuration where Fast Startup is enabled (the default on most PCs that support hibernation) is a hybrid shutdown. The user is signed out, but the state of the kernel, drivers, and services is saved to the hibernation file (hiberfil.sys) and restored as is on the next boot. In other words, the core of the OS has not been reset. A 'restart', by contrast, always performs a full boot cycle regardless of the Fast Startup setting, so bad state in drivers and services is reset. However, the fact that a restart fixed it does not by itself confirm the cause. An intermittent problem may simply not have reproduced, or the restart may have fixed things by completing a pending update. Confirm several times that 'it reproduces after a shutdown and does not reproduce after a restart', corroborate with Kernel-Boot Event 27 in the System log showing that the most recent boot was 0x1 (Fast Startup) and with driver-side records, and only then treat the carried-over state as the cause. When isolating a problem, use 'restart', not 'turn it off and on again'.
The uptime in Task Manager has not reset for days. Is something broken?
The uptime counter itself is working correctly. If you 'shut down' every night and the uptime keeps growing, it is most likely the specified behavior of Fast Startup (hybrid shutdown), but a shutdown that failed and did not complete looks the same, so do not conclude 'nothing is broken' until you have checked Event 27 and the surrounding log entries described below. Uptime is the elapsed time since the kernel booted, and in a hybrid shutdown the kernel is only hibernated and restored, so the counter keeps running. Microsoft's documentation also states explicitly that on a user-initiated shutdown the kernel, drivers, and services are saved and restored rather than restarted, so the uptime between kernel restarts can be significantly longer than on earlier versions of Windows. Uptime is also preserved across a resume from sleep or hibernation and across a shutdown that did not complete, so to be certain, confirm with Kernel-Boot Event 27 in the System log that the type of the most recent boot was 0x1 (Fast Startup). To reset the uptime, choose 'Restart' or perform a full shutdown with shutdown /s /t 0.
Should I turn Fast Startup off?
Not across the board. Microsoft does not recommend disabling Fast Startup, and on an ordinary laptop the faster boot outweighs the downsides. Turning it off is worthwhile on machines operated on the assumption that 'powering off initializes everything', such as device PCs and test machines, in dual-boot environments that share the same disk with another OS, and on test machines that boot from another OS and modify the volume (in that case, turning off Fast Startup alone leaves explicit hibernation available, so also disable hibernation with powercfg /h off, or require a full shutdown before switching OS in the procedure). If the goal is to free disk space, turning Fast Startup off does not delete the hibernation file (hiberfil.sys), so it will not achieve that. To shrink the hibernation file while keeping Fast Startup, use powercfg /h /type reduced; if you do not need hibernation at all, use powercfg /h off. If you simply 'want to reset once', a restart or shutdown /s /t 0 does the job without changing any setting.
I cannot wake a shut-down PC with Wake on LAN.
On Windows 10/11, Wake on LAN is not supported from either the default shutdown (hybrid shutdown) or a full shutdown (S5). Because a state in which the user ordered a shutdown is expected to consume zero power, Windows does not arm the network adapter for wake. Wake on LAN is available from sleep (S3) or when the user explicitly chose hibernation (S4). A hybrid shutdown is also S4 in reality, but Windows explicitly disables Wake on LAN only on the transition to a hybrid shutdown. For a machine you want to wake overnight for updates, operate it in 'Sleep' or 'Hibernate' rather than 'Shut down', or check the firmware's wake features. On Modern Standby (S0 low-power idle) machines, which have no S3, the network can be a wake source even during sleep, but whether the machine can actually be woken depends on the NIC, firmware, power conditions, and the OEM's implementation, so verify on the real machine before building it into operations.
I chose 'Update and shut down' in Windows Update, but the update is still not finished at the next boot.
Microsoft's support documentation states explicitly that some updates can complete only in a boot that follows a full shutdown, and may not complete when the boot goes through Fast Startup (hibernation). When you want an update to finish for certain, choose 'Update and restart'. In environments managed by Configuration Manager, this delay was improved in Configuration Manager 2002 and Windows 10 21H1.
Our in-house business app calls shutdown. Which API gives a full shutdown?
InitiateSystemShutdownEx and InitiateSystemShutdown never become hybrid: with bRebootAfterShutdown set to FALSE they power off (full shutdown), and with TRUE they restart. InitiateShutdown performs a shutdown for Fast Startup only when the SHUTDOWN_HYBRID flag is combined with SHUTDOWN_POWEROFF (combined with SHUTDOWN_RESTART it restarts, and SHUTDOWN_NOREBOOT only stops the system without powering off), and ExitWindowsEx only when EWX_HYBRID_SHUTDOWN is combined with EWX_SHUTDOWN (EWX_HYBRID_SHUTDOWN is not specified alone). If your app implements the 'power off' button of a device PC, call InitiateSystemShutdownEx with bRebootAfterShutdown = FALSE, or call ExitWindowsEx with EWX_POWEROFF only (no EWX_HYBRID_SHUTDOWN; EWX_SHUTDOWN only stops the system to a point where the power can be safely turned off and does not power off), and you get a full shutdown regardless of the setting (both assume the SE_SHUTDOWN_NAME privilege has been enabled with AdjustTokenPrivileges: ExitWindowsEx on the process token, InitiateSystemShutdownEx on the calling thread's effective token; if it is left disabled the call fails). From the command line, shutdown /s /t 0 is a full shutdown by default and becomes hybrid only when /hybrid is added.

Author Profile

Profile page for the article author.

Go Komura

Representative of KomuraSoft LLC

Focused on Windows software development, technical consulting, and investigations into failures that are difficult to reproduce.

Back to the Blog