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.

Unified.Firmware gives .NET developers a clean, strongly-typed API for interacting with UEFI firmware. Read and write NVRAM variables, manage boot entries, locate the EFI System Partition, and trigger boot-to-firmware-UI — all from managed C# code without raw P/Invoke boilerplate.

Quickstart

Install the package and run your first UEFI operation in minutes.

Installation

NuGet package references and platform requirements.

Boot Service

Read, create, update, and delete UEFI boot entries from NVRAM.

API Reference

Full reference for every class, method, and enum in the library.

What You Can Do

Manage Boot Entries

Enumerate, create, edit, and delete Boot#### NVRAM variables with a typed model.

Read Firmware Variables

Access global and vendor-specific UEFI environment variables as strings, structs, or arrays.

Locate the ESP

Find the EFI System Partition volume path on both Windows and Linux without manual disk enumeration.

Device Path Protocols

Work with hardware and media device path protocols including PCI, HardDrive, FilePath, and more.

Getting Started

1

Install the NuGet package

Add Unified.Firmware (and optionally Unified.Firmware.BootService) to your project via NuGet.
dotnet add package Unified.Firmware
dotnet add package Unified.Firmware.BootService
2

Check UEFI availability

Before calling any firmware API, verify that the current system booted in UEFI mode.
using Unified.Firmware;

if (!FirmwareInterface.Available)
    throw new PlatformNotSupportedException("This system is not running in UEFI mode.");
3

Read your boot entries

Enumerate all boot options in boot order using FirmwareBootService.
using Unified.Firmware.BootService;
using Unified.Firmware.BootService.LoadOption;

foreach (FirmwareBootOption option in FirmwareBootService.EnumerateBootOptions())
{
    Console.WriteLine($"{option.Description}  [{option.Attributes}]");
}
4

Explore the full API

See the API Reference for all classes, the Guides for task-oriented walkthroughs, and Core Concepts for deeper background.
Most operations require elevated privileges. On Windows, run your application as Administrator. On Linux, the process needs CAP_SYS_ADMIN or must run as root to access /sys/firmware/efi/vars.

Build docs developers (and LLMs) love