Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/Rikitav/Unified.Firmware/llms.txt

Use this file to discover all available pages before exploring further.

OsIndications is a [Flags] enum used to exchange requests between the OS and UEFI firmware through the OsIndications and OsIndicationsSupported NVRAM variables. The firmware exposes the set of features it supports in OsIndicationsSupported; the OS sets corresponding bits in OsIndications to request that action on the next reboot. The underlying type is ulong, matching the 64-bit UEFI specification field.

Namespace

Unified.Firmware

Members

MemberValueDescription
None0x0000000000000000No indications set.
BOOT_TO_FW_UI0x0000000000000001Requests that the firmware stop at its configuration UI (setup screen) on the next restart instead of proceeding to a boot entry.
TIMESTAMP_REVOCATION0x0000000000000002Indicates support for timestamp-based revocation via the dbt (authorised timestamp database) Secure Boot variable.
FILE_CAPSULE_DELIVERY_SUPPORTED0x0000000000000004Set by the OS to trigger processing of a firmware update capsule delivered via a mass-storage device on the next reboot.
FMP_CAPSULE_SUPPORTED0x0000000000000008Indicates the platform supports processing Firmware Management Protocol (FMP) update capsules, as defined in the UEFI capsule specification.
CAPSULE_RESULT_VAR_SUPPORTED0x0000000000000010Indicates the platform will create a result NVRAM variable after deferred capsule processing, reporting success or failure of the update.
START_OS_RECOVERY0x0000000000000020Requests that OS-defined recovery commence on the next reboot, bypassing normal boot order processing.
START_PLATFORM_RECOVERY0x0000000000000040Requests that platform-defined recovery (e.g., factory reset or firmware-driven recovery partition) commence on the next reboot.
JSON_CONFIG_DATA_REFRESH0x0000000000000080Set by the OS to ask the firmware to collect current configuration and refresh the JSON data exposed in the EFI System Configuration Table on the next boot.

Usage Patterns

Check Whether a Feature Is Supported

Always read OsIndicationsSupported before writing OsIndications. Setting an unsupported bit is silently ignored by most firmware implementations but can cause unexpected behaviour on others.
bool canBootToUi = FirmwareEnvironment.Global.OsIndicationsSupported
    .HasFlag(OsIndications.BOOT_TO_FW_UI);

Set a Flag Manually

FirmwareEnvironment.Global.OsIndications |= OsIndications.BOOT_TO_FW_UI;

Using the High-Level Wrapper

FirmwareInterface.BootToUserInterface() performs the support check and sets the flag in one call, throwing PlatformNotSupportedException if the firmware does not support the feature.
FirmwareInterface.BootToUserInterface();

Full Boot-to-UI Example

The following example shows the complete flow — check availability, verify support, set the flag, then restart.
using Unified.Firmware;

// Verify the system is running on UEFI firmware
if (!FirmwareInterface.Available)
    throw new PlatformNotSupportedException("UEFI firmware is not available.");

// Use the high-level helper (handles the support check internally)
FirmwareInterface.BootToUserInterface();

// The flag is now set. Reboot the OS to let the firmware act on it.
// Environment.FailFast("Rebooting to firmware UI");
Alternatively, perform each step explicitly:
using Unified.Firmware;

if (!FirmwareInterface.Available)
    throw new PlatformNotSupportedException("UEFI firmware is not available.");

OsIndications supported = FirmwareEnvironment.Global.OsIndicationsSupported;

if (!supported.HasFlag(OsIndications.BOOT_TO_FW_UI))
    throw new PlatformNotSupportedException("This firmware does not support boot to UI.");

FirmwareEnvironment.Global.OsIndications |= OsIndications.BOOT_TO_FW_UI;
Always check OsIndicationsSupported before writing any bit to OsIndications. The supported mask tells you exactly which features the firmware honours; writing unsupported bits wastes an NVRAM write cycle and may be rejected on some implementations.

Build docs developers (and LLMs) love