### Namespace

# FwupdPlugin – 1.0

Functionality available to fwupd plugins

Version | 2.1.6
Authors | fwupd Development Team
License | LGPL-2.1-or-later
Website | https://www.fwupd.org
Source | https://github.com/fwupd/fwupd

#### Build

C headers | `fwupdplugin.h`
pkg-config files | `fwupdplugin`

#### Dependencies

GObject—2.0 | The base type system library
| Browse documentation
Gio—2.0 | A modern, easy-to-use VFS API
| Browse documentation
Fwupd—2.0 | Firmware update daemon client library
| Browse documentation

#### Additional documentation

- Environment Variables
- Building & Debugging fwupd
- Plugin Tutorial
- Host Security ID Specification
- UEFI Secure Boot Certificates
- Device Emulation
- Device Version Blocklist
- BOS DS20 Specification
- Hardware IDs
- BIOS Settings API
- Best Known Configuration
- Signing Test Firmware Payloads
- Supermicro BMC License
- dbxtool command line utility
- fwupdmgr client command line utility
- fwupdtool standalone command line utility
- fwupd.conf file format
- fwupd remote file format
- Plugin: UEFI Capsule
- Plugin: ACPI DMAR — DMA Protection
- Plugin: ACPI FACP — Fixed ACPI Description Table
- Plugin: ACPI IVRS — DMA Protection
- Plugin: ACPI PHAT — Platform Health Assessment Table
- Plugin: Algoltek USB
- Plugin: Algoltek Usbcr
- Plugin: AMD Kria
- Plugin: AMD PMC
- Plugin: AMDGPU
- Plugin: Analogix
- Plugin: Android Boot
- Plugin: Asus HID
- Plugin: ATA
- Plugin: Aver HID-ISP
- Plugin: BCM57xx
- Plugin: BIOS
- Plugin: Betterlife Touch Controller Sensor
- Plugin: B&R DisplayPort receiver
- Plugin: CCGX
- Plugin: CCGX DMC
- Plugin: CFU - Component Firmware Update
- Plugin: Corsair
- Plugin: CPU Microcode
- Plugin: Chrome OS EC
- Plugin: Dell
- Plugin: Dell USB-C Dock
- Plugin: Dell USB-C Dock
- Plugin: Devlink
- Plugin: DFU
- Plugin: 8BitDo
- Plugin: Egis Fingerprint Sensor
- Plugin: Elan Touchscreen
- Plugin: Elan TouchPad
- Plugin: Elan Fingerprint Sensor
- Plugin: ELAN Keyboard
- Plugin: eMMC
- Plugin: EP963x
- Plugin: Fastboot
- Plugin: Focal ForcePad
- Plugin: Focal Touchpad and touchscreen
- Plugin: FPC Fingerprint Sensor
- Plugin: Framework QMK
- Plugin: Fresco PD
- Plugin: Genesys Logic
- Plugin: Genesys GL322x/GL323x
- Plugin: Goodix Fingerprint Sensor
- Plugin: Goodix Touch Controller Sensor
- Plugin: GPIO
- Plugin: Himax Touchscreen Controller
- Plugin: HP BIOSCFG
- Plugin: HPI CFU
- Plugin: Huddly Usb
- Plugin: ColorHug
- Plugin: Ilitek Its
- Plugin: Intel AMT
- Plugin: Intel Computer Vision Sensing
- Plugin: Intel GSC — Graphics System Controller
- Plugin: Intel MCHI
- Plugin: Intel ME (PCI)
- Plugin: Intel ME (SMBIOS)
- Plugin: Intel MKHI
- Plugin: Intel USB4
- Plugin: IOMMU
- Plugin: Jabra
- Plugin: Jabra File
- Plugin: Jabra GNP
- Plugin: Kinetic DP
- Plugin: Legion HID
- Plugin: Legion HID 2
- Plugin: Lenovo Accessory
- Plugin: Lenovo Dock
- Plugin: Lenovo ThinkLMI
- Plugin: Linux Display
- Plugin: Linux Kernel Lockdown
- Plugin: Linux Kernel Sleep
- Plugin: Linux Swap
- Plugin: Linux Kernel Tainted
- Plugin: logind
- Plugin: Logitech HID++
- Plugin: Logitech Bulk Controller — Video Collaboration
- Plugin: Logitech Rally System
- Plugin: Logitech Scribe
- Plugin: Logitech Tap — Video Collaboration
- Unknown document
- Plugin: Mediatek Display Controller
- Plugin: ModemManager
- Plugin: MSR
- Plugin: MTD
- Plugin: Nordic HID
- Plugin: Novatek Touchscreen
- Plugin: NVMe
- Plugin: Parade LSPCON
- Plugin: Parade USB Hub
- Plugin: PCI BCR — BIOS Control Register
- Plugin: PCI PSP — Platform Secure Processor
- Plugin: PixArt RF
- Plugin: PixArt Touchpad
- Plugin: Powerd
- Plugin: Qc Firehose
- Plugin: qc-s5gen2
- Plugin: QSI Dock
- Plugin: Raydium Touch Controller Sensor
- Plugin: Realtek MST
- Plugin: Redfish
- Plugin: Raspberry Pi Pico Microcontrollers
- Plugin: RTS54HUB
- Plugin: Star Labs Coreboot
- Plugin: SteelSeries
- Plugin: Sunplus Camera
- Plugin: SCSI
- Plugin: Snapd UEFI Integration
- Plugin: Sunwinon HID
- Plugin: Synaptics CAPE
- Plugin: Synaptics CxAudio — Conexant Audio
- Plugin: Synaptics MST
- Plugin: Synaptics Prometheus
- Plugin: Synaptics RMI4
- Plugin: Synaptics VMM9xxxx
- Plugin: System76 Launch
- Plugin: Test
- Plugin: Telink DFU
- Plugin: Thelio IO
- Plugin: Thunderbolt
- Plugin: TI TPS6598x
- Plugin: TPM
- Plugin: UEFI db
- Plugin: UEFI dbx
- Plugin: UEFI ESRT
- Plugin: UEFI KEK
- Plugin: UEFI MOK
- Plugin: UEFI PK
- Plugin: UEFI Recovery
- Plugin: UEFI SBAT
- Plugin: UF2
- Plugin: UPower
- Plugin: USI Dock
- Plugin: VBE — Verified Boot for Embedded
- Plugin: VIA
- Plugin: Wacom RAW
- Plugin: Wacom USB
- Plugin: CH341A
- Plugin: CH347
- Plugin: Wistron Dock
- Classes Hierarchy

#### Classes

AcpiTable | An generic ACPI table.
Backend | An device discovery backend, for instance USB, BlueZ or UDev.
BiosSettings |
BlockDevice | See also: `FuUdevDevice`.
BlockPartition | See also: `FuBlockDevice`.
BluezDevice | A BlueZ Bluetooth device.
CabFirmware |
CabImage |
CfiDevice | A chip conforming to the Common Flash Memory Interface, typically a SPI flash chip.
CfuOffer | A CFU offer. This is a 16 byte blob which contains enough data for the device to either accept or refuse a firmware payload. The offer may be loaded from disk, network, or even constructed manually. There is much left to how the specific firmware implements CFU, and it’s expected that multiple different plugins will use this offer in different ways.
CfuPayload | A CFU payload. This contains of a variable number of blocks, each containing the address, size and the chunk data. The chunks do not have to be the same size, and the address ranges do not have to be continuous.
Chunk | A optionally mutable packet of chunked data with address, page and index.
ChunkArray | Create chunked data with address and index as required.
CompositeInputStream | A input stream that is made up of other partial streams, e.g.
Config |
Context | A context that represents the shared system state. This object is shared between the engine, the plugins and the devices.
CoswidFirmware | A coSWID SWID section.
CsvEntry | A comma seporated value entry.
CsvFirmware | A comma seporated value file.
Device | A physical or logical device that is exported to the daemon.
DeviceEvent | A device event, used to enumulate hardware.
DeviceLocker | Easily close a shared resource (such as a device) when an object goes out of scope.
DeviceProgress |
DfuFirmware | A DFU firmware image.
DfuseFirmware | A DfuSe firmware image.
DpauxDevice | A Display Port AUX device.
DrmDevice | A DRM device.
Edid |
EfiDevicePath | See also: `FuFirmware`.
EfiDevicePathList |
EfiFile | A UEFI file.
EfiFilesystem | A UEFI filesystem.
EfiFtwStore | A fault tolerant working block store, as found in EDK2 NVRAM blocks.
EfiHardDriveDevicePath | See also: `FuEfiDevicePath`.
EfiLoadOption |
EfiSection | A UEFI firmware section.
EfiSignature | A UEFI Signature as found in an `EFI_SIGNATURE_LIST`.
EfiSignatureList | A UEFI signature list typically found in the `PK` and `KEK` keys.
EfiVariableAuthentication2 | A UEFI signature list typically found in the `KEKUpdate.bin` and `DBXUpdate.bin` files.
Efivars |
EfiVolume | A UEFI file volume.
EfiVss2VariableStore | A NVRAM variable store.
EfiVssAuthVariable | A NVRAM authenticated variable.
EfiX509Device | See also: `FuUdevDevice`.
EfiX509Signature | A X.509 certificate as found in an `EFI_SIGNATURE_LIST`.
ElfFirmware | Executable and Linkable Format is a common standard file format for executable files, object code, shared libraries, core dumps — and sometimes firmware.
FdtFirmware | A Flattened DeviceTree firmware image.
FdtImage | A Flattened DeviceTree firmware image.
Firmware | A firmware file which can have children which represent the images within.
FitFirmware | A Flat Image Tree.
FmapFirmware | A FMAP firmware image.
HeciDevice | A HECI device.
HidDescriptor | A HID descriptor.
HidDevice | A Human Interface Device (HID) device.
HidrawDevice | See also: `FuUdevDevice`.
HidReport | See also: `FuHidDescriptor`.
Hwids | A the hardware IDs on the system.
I2cDevice | A I²C device with an assigned bus number.
IfdBios | An Intel BIOS section.
IfdFirmware | An Intel Flash Descriptor.
IfdImage | An Intel Flash Descriptor image, e.g. BIOS.
IfwiCpdFirmware | An Intel Code Partition Directory (aka CPD) can be found in IFWI (Integrated Firmware Image) firmware blobs which are used in various Intel products using an IPU (Infrastructure Processing Unit).
IfwiFptFirmware | An Intel Flash Program Tool (aka FPT) header can be found in IFWI (Integrated Firmware Image) firmware blobs which are used in various Intel products using an IPU (Infrastructure Processing Unit).
IhexFirmware | A Intel hex (ihex) firmware image.
IntelMeDevice |
IntelThunderboltFirmware | The Non-Volatile-Memory file-format specification. This is what you would find as the update payload.
IntelThunderboltNvm | The Non-Volatile-Memory device specification. This is what you would find on the device SPI chip.
IOChannel | A bidirectional IO channel which can be read from and written to.
Ioctl |
JsonFirmware | A “dummy” loader that just checks if the file can be parsed and written as JSON format.
KernelSearchPathLocker | Easily reset the firmware search path.
LinearFirmware | A firmware made up of concatenated blobs of a different firmware type.
MeiDevice | The Intel proprietary Management Engine Interface.
MsgpackItem |
OpromDevice |
OpromFirmware | An OptionROM can be found in nearly every PCI device. Multiple OptionROM images may be appended.
PartialInputStream | A input stream that is a slice of another input stream.
PathStore |
PciDevice | See also: `FuUdevDevice`.
PefileFirmware | A PE file consists of a Microsoft MS-DOS stub, the PE signature, the COFF file header, and an optional header, followed by section data.
Pkcs7 | A PKCS#7 object, typically containing signed X.509 certificates.
Plugin | A plugin which is used by fwupd to enumerate and update devices.
ProcessorDevice |
Progress | Objects can use `fu_progress_set_percentage()` if the absolute percentage is known. Percentages should always go up, not down.
Quirks | Quirks can be used to modify device behavior. When fwupd is installed in long-term support distros it’s very hard to backport new versions as new hardware is released.
SbatlevelSection |
SecurityAttr |
SecurityAttrs | A set of Host Security ID attributes that represents the system state.
SerioDevice | See also: `FuUdevDevice`.
Smbios | Enumerate the SMBIOS data on the system.
SrecFirmware | A SREC firmware image.
TemporaryDirectory | An object to create and destroy a temporary directory.
TpmEventlog |
TpmEventlogItem |
TpmEventlogV1 |
TpmEventlogV2 | Parse the TPM eventlog.
UdevDevice | A UDev device, typically only available on Linux.
UefiDevice | A device that represents a UEFI EFI variable.
UsbBosDescriptor | This object is a thin glib wrapper around a `libusb_bos_dev_capability_descriptor`.
UsbConfigDescriptor | This object is a thin glib wrapper around a `libusb_config_dev_capability_descriptor`.
UsbDescriptor |
UsbDevice | A USB device.
UsbDeviceDs20 | A USB DS20 BOS descriptor.
UsbDeviceFwDs20 |
UsbDeviceMsDs20 |
UsbEndpoint | This object is a thin glib wrapper around a libusb_endpoint_descriptor.
UsbHidDescriptor | This object is a placeholder for the HID descriptor, and is populated with data after the device has been opened.
UsbInterface | This object is a thin glib wrapper around a libusb_interface_descriptor.
UswidFirmware | A uSWID header with multiple optionally-compressed SBOM sections.
V4lDevice | See also: `FuUdevDevice`.
Volume | Volume abstraction that uses UDisks.
VolumeLocker | Easily unmount a volume when an object goes out of scope.
X509Certificate | An X.509 certificate.
ZipFile |
ZipFirmware |

#### Structs

CborItem |
ErrorConvertEntry |
ErrorMapEntry |
IntelThunderboltNvmArcParams |
IntelThunderboltNvmDigital |
IntelThunderboltNvmDram |
IntelThunderboltNvmDrom |
MeiCsme11Hfsts1 |
MeiCsme11Hfsts2 |
MeiCsme11Hfsts3 |
MeiCsme11Hfsts4 |
MeiCsme11Hfsts5 |
MeiCsme11Hfsts6 |
MeiCsme18Hfsts1 |
MeiCsme18Hfsts2 |
MeiCsme18Hfsts3 |
MeiCsme18Hfsts4 |
MeiCsme18Hfsts5 |
MeiCsme18Hfsts6 |
MkhiArbhSvnGetInfoRequest |
MkhiArbhSvnGetInfoResponse |
MkhiArbhSvnInfoEntry |
MkhiReadFileExRequest |
MkhiReadFileExResponse |
MkhiReadFileRequest |
MkhiReadFileResponse |
PluginData | The plugin-allocated private data.
PluginVfuncs | A subset of virtual functions that are implemented by modular plugins.
StructAcpiTable |
StructCabData |
StructCabFile |
StructCabFolder |
StructCabHeader |
StructCabHeaderReserve |
StructCfuContentReq |
StructCfuContentRsp |
StructCfuGetVersionRsp |
StructCfuGetVersionRspComponent |
StructCfuOffer |
StructCfuOfferInfoReq |
StructCfuOfferRsp |
StructCfuPayload |
StructDfuFtr |
StructDfuseElement |
StructDfuseHdr |
StructDfuseImage |
StructDpauxDpcd |
StructDs20 |
StructEdid |
StructEdidDescriptor |
StructEfiDevicePath |
StructEfiFaultTolerantWorkingBlockHeader64 |
StructEfiFile |
StructEfiFile2 |
StructEfiHardDriveDevicePath |
StructEfiLoadOption |
StructEfiLz77DecompressorHeader |
StructEfiSection |
StructEfiSection2 |
StructEfiSectionCompression |
StructEfiSectionFreeformSubtypeGuid |
StructEfiSectionGuidDefined |
StructEfiSignatureList |
StructEfiTime |
StructEfiVariableAuthentication2 |
StructEfiVolume |
StructEfiVolumeBlockMap |
StructEfiVolumeExtEntry |
StructEfiVolumeExtHeader |
StructEfiVss2VariableStoreHeader |
StructEfiVssAuthVariableHeader |
StructEfiWinCertificate |
StructElfFileHeader64le |
StructElfProgramHeader64le |
StructElfSectionHeader64le |
StructFdt |
StructFdtProp |
StructFdtReserveEntry |
StructFmap |
StructFmapArea |
StructIfdFcba |
StructIfdFdbar |
StructIfwiCpd |
StructIfwiCpdEntry |
StructIfwiCpdManifest |
StructIfwiCpdManifestExt |
StructIfwiFpt |
StructIfwiFptEntry |
StructIntelMeHfsts |
StructMsDs20 |
StructOprom |
StructOpromPci |
StructPeCoffFileHeader |
StructPeCoffOptionalHeader64 |
StructPeCoffSection |
StructPeCoffSymbol |
StructPeDosHeader |
StructSbatLevelSectionHeader |
StructShimHive |
StructShimHiveItem |
StructSmbiosBiosInformation |
StructSmbiosEp32 |
StructSmbiosEp64 |
StructSmbiosStructure |
StructTpmEfiStartupLocalityEvent |
StructTpmEventLog1Item |
StructTpmEventLog2 |
StructTpmEventLog2Hdr |
StructUswid |
StructZipCdfh |
StructZipEocd |
StructZipExtraHdr |
StructZipLfh |
UsbBaseHdr |
UsbBosHdr |
UsbDescriptorHdr |
UsbDeviceHdr |
UsbDfuDescriptorHdr |
UsbEndpointHdr |
UsbHidDescriptorHdr |
UsbInterfaceHdr |

#### Aliases

EndianType | The endian type, e.g. `G_LITTLE_ENDIAN`.

#### Enumerations

AcpiFadtPmProfile | ACPI Fixed ACPI Description Table (FADT) Preferred_PM_Profile values.
CabCompression |
CabFileAttribute |
CborItemKind |
CborLen |
CborSpecialValue |
CborTag |
CfiDeviceCmd |
CfuContentFlags |
CfuContentStatus |
CfuOfferComponentId |
CfuOfferInfoCode |
CfuOfferStatus |
CfuRrCode |
CoffSubsystem |
ContextQuirkSource |
CoswidEntityRole |
CoswidHashAlg |
CoswidLinkRel |
CoswidTag |
CoswidVersionScheme |
CpuVendor | The CPU vendor.
CrcKind |
DisplayState | The device display state.
EdidDescriptorTag |
EfiCompressionType |
EfiDevicePathType |
EfiFileAttrib |
EfiFileType |
EfiHardDriveDevicePathPartitionFormat |
EfiHardDriveDevicePathSignatureType |
EfiHardDriveDevicePathSubtype |
EfiLoadOptionAttrs |
EfiLoadOptionKind |
EfiLz77DecompressorVersion |
EfiSectionType |
EfiSignatureKind |
EfiStatus | EFI_STATUS is u64le on 64-bit and u32le on 32-bit — but be pragmatic.
EfiVariableAttrs |
EfiVariableState |
EfiVariableStoreFormat |
EfiVariableStoreState |
EfiVolumeExtEntryType |
ElfFileHeaderType |
ElfSectionHeaderType |
FdtToken |
FirmwareAlignment |
FirmwareSrecRecordKind | SREC record kind.
HidBusType |
HidItemKind |
HidItemTag |
IfdRegion |
IhexFirmwareRecordType |
IntegerBase |
IntelMeFamily |
IntelMeIssue |
IntelThunderboltNvmFamily |
IntelThunderboltNvmSection |
LidState | The device lid state.
MeHfsCws |
MeHfsEnforcementPolicy |
MeHfsError |
MeHfsMode |
MeHfsState |
MeiCsme18ErrorStatusCode |
MeiFirmwareSku |
MkhiArbhSvnInfoEntryUsageId |
MkhiCommand |
MkhiGroupId |
MkhiStatus |
MsgpackCmd |
MsgpackItemKind |
OpromCompressionType |
OpromIndicatorFlags |
OpromMachineType |
OpromSubsystem |
PathKind | Path types to use when dynamically determining a path at runtime.
PciDeviceClassBase |
PciDeviceClassCode |
PciVendorId |
PeCoffMachine |
PeCoffMagic |
PluginRule | The rules used for ordering plugins. Plugins are expected to add rules in fu_plugin_initialize().
PluginVerifyFlags | Flags used when verifying, currently unused.
PowerState | The system power state. This does not have to be exactly what the battery is doing, but is supposed to represent the 40,000ft view of the system power state. For example, it is perfectly correct to set `FU_POWER_STATE_AC` if the system is connected to AC power, but the battery cells are discharging for health or for other performance reasons.
ProcessorKind |
ProtobufWireType |
SmbiosChassisKind |
SmbiosStructureType |
TpmAlg |
TpmEventlogItemKind |
UsbClass |
UsbDescriptorKind |
UsbDeviceMsDs20Desc |
UsbDirection |
UsbLangid |
UsbRecipient |
UsbRequestType |
UswidHeaderFlags |
UswidPayloadCompression |
UswidPayloadFormat |
V4lCap |
ZipCompression |
ZipExtraHeaderId |

#### Bitfields

BackendSetupFlags |
ConfigLoadFlags |
ContextEspFileFlags |
ContextFlags |
ContextLoadFlags |
DeviceIncorporateFlags | Flags to use when incorporating a device instance.
DeviceInstanceFlags |
DumpFlags | Flags to use when configuring debugging.
EfiCapsuleHeaderFlags |
FirmwareBuilderFlags |
FirmwareExportFlags |
FirmwareFlags |
FirmwareParseFlags |
HidDeviceFlags | Flags used when calling GetReport() and SetReport().
IfdAccess |
IntelThunderboltNvmSectionFlags |
IoChannelFlags | Flags used when reading data from the TTY.
IoChannelOpenFlags |
IoctlFlags | Flags used when calling `fu_ioctl_execute()` and fu_udev_device_ioctl().
ProcessorFeatureFlags |
ProcessorMitigationFlags |
ProgressFlags |
SecurityAttrsFlags | Flags to use when calculating an HSI version.
SmbiosBiosCharacteristics |
SmbiosBiosCharacteristicsExt |
UsbDeviceClaimFlags | Flags for the fu_usb_device_claim_interface and fu_usb_device_release_interface methods flags parameters.
UtfConvertFlags | The flags to use when converting to and from UTF-8.
ZipFlags |

#### Callbacks

ContextLookupIter | The context lookup iteration callback.
CoswidItemFunc |
DeviceLockerFunc | Callback to use when opening and closing using `fu_device_locker_new_full()`.
DeviceRetryFunc | The device retry iteration callback.
InputStreamChunkifyFunc |
IoctlFixupFunc |
QuirksIter | The quirks iteration callback.
StrsplitFunc | The `fu_strsplit_full()` iteration callback.

#### Functions

base64_encode | Encode a sequence of binary data into its Base-64 stringified representation. since: 2.1.5
byte_array_align_up | Align a byte array length to a power of 2 boundary, where `alignment` is the bit position to align to. If `alignment` is zero then `array` is unchanged. since: 1.6.0
byte_array_append_array | Adds the content of `array2` to `array`. since: 2.0.17
byte_array_append_bytes | Adds the contents of a GBytes to a byte array. since: 1.5.8
byte_array_append_safe | Adds the content of `buf` at `offset` to `array`. since: 2.1.1
byte_array_append_uint16 | Adds a 16 bit integer to a byte array. since: 1.3.1
byte_array_append_uint24 | Adds a 24 bit integer to a byte array. since: 1.8.13
byte_array_append_uint32 | Adds a 32 bit integer to a byte array. since: 1.3.1
byte_array_append_uint64 | Adds a 64 bit integer to a byte array. since: 1.5.8
byte_array_append_uint8 | Adds a 8 bit integer to a byte array. since: 1.3.1
byte_array_compare | Compares two buffers for equality. since: 1.8.0
byte_array_from_string | Converts a lowercase hex string to a byte array. since: 1.9.6
byte_array_set_size | Sets the size of the GByteArray, expanding with `data` as required. since: 1.8.2
byte_array_to_string | Converts the byte array to a lowercase hex string. since: 1.8.9
bytes_align | Aligns a block of memory to `blksize` using the `padval` value; if the block is already aligned then the original `bytes` is returned. since: 1.8.2
bytes_compare | Compares the buffers for equality. since: 1.8.2
bytes_from_string | Converts a lowercase hex string to a `GBytes`. since: 2.0.5
bytes_get_contents | Reads a blob of data from a file. since: 1.8.2
bytes_get_data_safe | Get the byte data in the `GBytes`. This data should not be modified. This function will always return the same pointer for a given `GBytes`. since: 1.6.0
bytes_is_empty | Checks if a byte array are just empty (0xff) bytes. since: 1.8.2
bytes_new_offset | Creates a `GBytes` which is a subsection of another `GBytes`. since: 1.8.2
bytes_pad | Pads a GBytes to a minimum `sz` with `0xff`. since: 2.0.7
bytes_set_contents | Writes a blob of data to a filename, creating the parent directories as required. since: 1.8.2
bytes_set_contents_full | Writes a blob of data to a filename with specific permissions, creating the parent directories as required. since: 2.1.3
bytes_to_string | Converts `bytes` to a lowercase hex string. since: 2.0.4
cab_compression_to_string | Converts an enumerated value to a string.
cbor_special_value_to_string | Converts an enumerated value to a string.
cbor_tag_to_string | Converts an enumerated value to a string.
cfu_content_status_to_string | Converts an enumerated value to a string.
cfu_rr_code_to_string | Converts an enumerated value to a string.
coff_subsystem_to_string | Converts an enumerated value to a string.
common_align_up | Align a value to a power of 2 boundary, where `alignment` is the bit position to align to. If `alignment` is zero then `value` is always returned unchanged. since: 1.6.0
common_from_bcd_u16 | Converts a decimal value from BCD. since: 2.1.5
common_from_bcd_u8 | Converts a decimal value from BCD. since: 2.1.5
common_get_kernel_cmdline | Returns the current kernel command line options. since: 1.5.6
common_get_memory_size | Returns the size of physical memory. since: 1.5.6
common_get_olson_timezone_id | Gets the system Olson timezone ID, as used in the CLDR and ICU specifications. since: 1.9.7
common_get_random | Gets random bytes using a cryptographically secure RNG. since: 2.1.5
common_get_random_string | Generates a random password using a cryptographically secure RNG. since: 2.1.5
common_guid_is_plausible | Checks whether a chunk of memory looks like it could be a GUID. since: 1.2.5
common_to_bcd_u16 | Converts a decimal value to BCD. since: 2.1.5
common_to_bcd_u8 | Converts a decimal value to BCD. since: 2.1.5
coswid_entity_role_from_string | Converts a string to an enumerated value.
coswid_entity_role_to_string | Converts an enumerated value to a string.
coswid_hash_alg_from_string | Converts a string to an enumerated value.
coswid_hash_alg_to_string | Converts an enumerated value to a string.
coswid_link_rel_from_string | Converts a string to an enumerated value.
coswid_link_rel_to_string | Converts an enumerated value to a string.
coswid_parse_one_or_many | Parses an item that may be an array, calling `func` on each map value. since: 1.9.17
coswid_read_string | Reads a string value. If a bytestring is provided it is converted to a GUID. since: 1.9.17
coswid_read_tag | Reads a tag value. since: 1.9.17
coswid_read_version_scheme | Reads a version-scheme value. since: 1.9.17
coswid_tag_from_string | Converts a string to an enumerated value.
coswid_tag_to_string | Converts an enumerated value to a string.
coswid_version_scheme_from_string | Converts a string to an enumerated value.
coswid_version_scheme_to_string | Converts an enumerated value to a string.
coswid_write_tag_bool | Writes a #gboolean tag value. since: 1.9.17
coswid_write_tag_bytestring | Writes a bytestring tag value. since: 1.9.17
coswid_write_tag_integer | Writes an integer tag value. since: 1.9.17
coswid_write_tag_item | Writes a raw tag value. since: 1.9.17
coswid_write_tag_string | Writes a string tag value. since: 1.9.17
cpu_get_attrs | Gets attributes for the first CPU listed in `/proc/cpuinfo`. since: 2.0.7
cpuid | Calls CPUID and returns the registers for the given leaf. since: 1.8.2
crc16 | Returns the cyclic redundancy check value for the given memory buffer. since: 2.0.0
crc16_bytes | Returns the cyclic redundancy check value for the given memory buffer. since: 2.0.2
crc16_safe | Returns the cyclic redundancy check value for the given memory buffer. since: 2.1.2
crc32 | Returns the cyclic redundancy check value for the given memory buffer. since: 2.0.0
crc32_bytes | Returns the cyclic redundancy check value for the given memory buffer. since: 2.0.2
crc32_safe | Returns the cyclic redundancy check value for the given memory buffer. since: 2.1.2
crc8 | Returns the cyclic redundancy check value for the given memory buffer. since: 2.0.0
crc8_bytes | Returns the cyclic redundancy check value for the given memory buffer. since: 2.0.2
crc8_safe | Returns the cyclic redundancy check value for the given memory buffer. since: 2.1.2
crc_find | Returns the cyclic redundancy kind for the given memory buffer and target CRC. since: 2.1.1
crc_kind_from_string | Converts a string to an enumerated value.
crc_kind_to_string | Converts an enumerated value to a string.
crc_misr16 | Returns the MISR check value for the given memory buffer. since: 1.9.17
crc_size | Returns the size of the CRC in bits. since: 2.0.19
display_state_from_string | Converts a string to an enumerated value. since: 1.9.6
display_state_to_string | Converts an enumerated value to a string. since: 1.9.6
dump_bytes | Dumps a byte buffer to the screen. since: 1.8.2
dump_full | Dumps a raw buffer to the screen. since: 1.8.2
dump_raw | Dumps a raw buffer to the screen. since: 1.8.2
efi_guid_to_name | Converts a GUID to the known nice name. since: 1.6.2
efi_lz77_decompressor_version_to_string | Converts an enumerated value to a string.
efi_parse_sections | Parses a UEFI section. since: 2.0.0
efi_status_to_string | Converts an enumerated value to a string.
efi_timestamp_build | Imports an `EFI_TIME` from XML. since: 2.0.17
efi_timestamp_export | Exports an `EFI_TIME` to XML. since: 2.0.17
efi_variable_attrs_from_string | Converts a string to an enumerated value.
efi_variable_attrs_to_string | Converts an enumerated value to a string.
efi_variable_state_from_string | Converts a string to an enumerated value.
efi_variable_state_to_string | Converts an enumerated value to a string.
efi_variable_store_state_from_string | Converts a string to an enumerated value.
efi_variable_store_state_to_string | Converts an enumerated value to a string.
elf_section_header_type_to_string | Converts an enumerated value to a string.
error_convert | Convert the error to a `FwupdError`, if required. since: 2.0.14
hid_bus_type_to_string | Converts an enumerated value to a string.
hid_item_kind_to_string | Converts an enumerated value to a string.
hid_item_tag_from_string | Converts a string to an enumerated value.
hid_item_tag_to_string | Converts an enumerated value to a string.
ifd_access_to_string | Converts an enumerated value to a string.
ifd_region_to_string | Converts an enumerated value to a string.
input_stream_chunkify | Split the stream into blocks and calls a function on each chunk. since: 2.0.0
input_stream_compute_checksum | Generates the checksum of the entire stream. since: 2.0.0
input_stream_compute_crc16 | Returns the cyclic redundancy check value for the given memory buffer. since: 2.0.0
input_stream_compute_crc32 | Returns the cyclic redundancy check value for the given memory buffer. since: 2.0.0
input_stream_compute_sum16 | Returns the arithmetic sum of all bytes in the stream. since: 2.0.0
input_stream_compute_sum32 | Returns the arithmetic sum of all bytes in the stream. since: 2.0.1
input_stream_compute_sum8 | Returns the arithmetic sum of all bytes in the stream. since: 2.0.0
input_stream_find | Find a memory buffer within an input stream, without loading the entire stream into a buffer. since: 2.0.18
input_stream_from_path | Opens the file as n input stream. since: 2.0.0
input_stream_read_byte_array | Read a byte array from a stream in a safe way. since: 2.0.0
input_stream_read_bytes | Read a `GBytes` from a stream in a safe way. since: 2.0.0
input_stream_read_safe | Tries to read count bytes from the stream into the buffer starting at `buf`. since: 2.0.0
input_stream_read_string | Read a UTF-8 string from a stream in a safe way. since: 2.0.0
input_stream_read_u16 | Read a value from a stream using a specified endian in a safe way. since: 2.0.0
input_stream_read_u24 | Read a value from a stream using a specified endian in a safe way. since: 2.0.0
input_stream_read_u32 | Read a value from a stream using a specified endian in a safe way. since: 2.0.0
input_stream_read_u64 | Read a value from a stream using a specified endian in a safe way. since: 2.0.0
input_stream_read_u8 | Read a value from a stream using a specified endian in a safe way. since: 2.0.0
input_stream_size | Reads the total possible of the stream. since: 2.0.0
intel_me_family_to_string | Converts an enumerated value to a string.
intel_me_issue_to_string | Converts an enumerated value to a string.
kenv_get_string | Gets a BSD kernel environment string. This will not work on Linux or Windows. since: 1.6.1
kernel_add_cmdline_arg | Add a kernel command line argument. since: 1.9.5
kernel_check_cmdline_mutable |
kernel_check_version | Determines if the system is running at least a certain required kernel version. since: 1.8.2
kernel_get_cmdline | Loads all the kernel /proc/cmdline key/values into a hash table. since: 1.8.5
kernel_get_config | Loads all the kernel options into a hash table. Commented out options are not included. since: 1.8.5
kernel_locked_down | Determines if kernel lockdown in effect. since: 1.8.2
kernel_parse_cmdline | Parses all the kernel key/values into a hash table, respecting double quotes when required. since: 1.9.1
kernel_parse_config | Parses all the kernel options into a hash table. Commented out options are not included. since: 1.9.6
kernel_remove_cmdline_arg | Remove a kernel command line argument. since: 1.9.5
lid_state_to_string | Converts an enumerated value to a string. since: 1.7.4
me_hfs_cws_to_string | Converts an enumerated value to a string.
memchk_read | Works out if reading from a buffer is safe. Providing the buffer sizes allows us to check for buffer overflow. since: 1.9.1
memchk_write | Works out if writing to a buffer is safe. Providing the buffer sizes allows us to check for buffer overflow. since: 1.9.1
memcmp_safe | Compares the buffers for equality. since: 1.8.2
memcpy_safe | Copies some memory using memcpy in a safe way. Providing the buffer sizes of both the destination and the source allows us to check for buffer overflow. since: 1.8.2
memdup_safe | Duplicates some memory using memdup in a safe way. since: 1.8.2
memmem_safe | Finds a block of memory in another block of memory in a safe way. since: 1.8.2
memread_string_safe | Reads a NUL-terminated string from a buffer. since: 2.1.4
memread_uint16 | Read a value from a buffer using a specified endian. since: 1.8.2
memread_uint16_safe | Read a value from a buffer using a specified endian in a safe way. since: 1.8.2
memread_uint24 | Read a value from a buffer using a specified endian. since: 1.8.2
memread_uint24_safe | Read a value from a buffer using a specified endian in a safe way. since: 1.8.3
memread_uint32 | Read a value from a buffer using a specified endian. since: 1.8.2
memread_uint32_safe | Read a value from a buffer using a specified endian in a safe way. since: 1.8.2
memread_uint64 | Read a value from a buffer using a specified endian. since: 1.8.2
memread_uint64_safe | Read a value from a buffer using a specified endian in a safe way. since: 1.8.2
memread_uint8_safe | Read a value from a buffer in a safe way. since: 1.8.2
memstrsafe | Converts a byte buffer to a ASCII string. since: 1.9.3
memwrite_uint16 | Writes a value to a buffer using a specified endian. since: 1.8.2
memwrite_uint16_safe | Write a value to a buffer using a specified endian in a safe way. since: 1.8.2
memwrite_uint24 | Writes a value to a buffer using a specified endian. since: 1.8.2
memwrite_uint32 | Writes a value to a buffer using a specified endian. since: 1.8.2
memwrite_uint32_safe | Write a value to a buffer using a specified endian in a safe way. since: 1.8.2
memwrite_uint64 | Writes a value to a buffer using a specified endian. since: 1.8.2
memwrite_uint64_safe | Write a value to a buffer using a specified endian in a safe way. since: 1.8.2
memwrite_uint8_safe | Write a value to a buffer in a safe way. since: 1.8.2
mkhi_status_to_string | Converts an enumerated value to a string.
output_stream_from_path | Opens the file as an output stream. since: 2.0.12
output_stream_write_bytes | Write bytes into the stream, retrying as required. Will block during the operation. since: 2.0.12
path_get_files | Returns every file found under `directory`, and any subdirectory. If any path under `directory` cannot be accessed due to permissions an error will be returned. since: 1.8.2
path_get_symlink_target | Returns the symlink target. since: 2.0.0
path_glob | Returns all the filenames that match a specific glob pattern. Any results are sorted. No matching files will set `error`. since: 1.8.2
path_kind_to_string | Converts an enumerated value to a string.
path_make_absolute | Returns the resolved absolute file name. since: 2.0.0
path_mkdir | Creates any required directories, including any parent directories. since: 1.8.2
path_mkdir_parent | Creates any required directories, including any parent directories. since: 1.8.2
path_rmtree | Recursively removes a directory. since: 1.8.2
path_sanitize_basename | Sanitizes a string for use as a path basename by replacing path separators and other dangerous characters with underscores. since: 2.1.4
path_verify_safe | Verifies the path is safe to use from an archive. since: 2.1.2
power_state_is_ac | Determines if the power state can be considered “on AC power”. since: 1.8.11
power_state_to_string | Converts an enumerated value to a string. since: 1.8.11
processor_feature_flags_to_string | Converts an enumerated value to a string.
processor_kind_from_string | Converts a string to an enumerated value.
processor_kind_to_string | Converts an enumerated value to a string.
processor_mitigation_flags_from_string | Converts a string to an enumerated value.
processor_mitigation_flags_to_string | Converts an enumerated value to a string.
protobuf_wire_type_to_string | Converts an enumerated value to a string.
ptr_array_copy | Deep copies a `GPtrArray` using `func` to copy each element. The new array uses `free_func` as the element free function. since: 2.0.8
size_checked_add | Performs a checked addition of a and b, ensuring the result does not overflow. since: 2.0.19
size_checked_inc | Performs a checked increment of `value` and `len`, ensuring the result does not overflow. since: 2.1.2
size_checked_inc_product | Performs a checked increment of `value` and `a` x `b`, ensuring the result does not overflow. since: 2.1.2
size_from_uint64 | Safely converts a 64-bit unsigned integer to a #gsize value, ensuring the value fits within the platform’s #gsize range. On 32-bit platforms where #gsize is 32 bits, this prevents silent truncation that could lead to security vulnerabilities. since: 2.1.2
strdup | Copies a string from a buffer of a specified size up to (but not including) `NUL`. since: 1.8.11
string_strip | Removes leading and trailing whitespace from a mutable string. since: 2.0.17
strjoin | Joins an array of strings together to form one long string, with the optional separator inserted between each of them. since: 1.8.2
strpassmask | Hides password strings encoded in HTTP requests. since: 1.9.10
strsafe | Converts a string into something that can be safely printed. since: 1.8.2
strsafe_bytes | Converts a `GBytes` into something that can be safely printed. since: 2.0.2
strsplit | Splits a string into a maximum of `max_tokens` pieces, using the given delimiter. If `max_tokens` is reached, the remainder of string is appended to the last token. since: 1.8.2
strsplit_bytes | Splits a string into a maximum of `max_tokens` pieces, using the given delimiter. If `max_tokens` is reached, the remainder of string is appended to the last token. since: 2.0.7
strsplit_full | Splits the string, calling the given function for each of the tokens found. If any `callback` returns `FALSE` scanning is aborted. since: 1.8.2
strsplit_stream | Splits the string, calling the given function for each of the tokens found. If any `callback` returns `FALSE` scanning is aborted. since: 2.0.0
strstrip | Removes leading and trailing whitespace from a constant string. since: 1.8.2
strtobool | Converts a string value to a boolean. Only `true` and `false` are accepted values. since: 1.8.2
strtoll | Converts a string value to an integer. Values are assumed base 10, unless prefixed with “0x” where they are parsed as base 16. since: 2.0.0
strtoull | Converts a string value to an integer. If the `value` is prefixed with `0x` then the base is set to 16 automatically. since: 2.0.0
strwidth | Returns the width of the string in displayed characters on the console. since: 1.8.2
sum16 | Returns the arithmetic sum of all bytes in `buf`, adding them one byte at a time. since: 1.8.2
sum16_bytes | Returns the arithmetic sum of all bytes in `blob`, adding them one byte at a time. since: 1.8.2
sum16_safe | Returns the arithmetic sum of all bytes in `buf`, adding them one byte at a time. since: 2.1.2
sum16w | Returns the arithmetic sum of all bytes in `buf`, adding them one word at a time. The caller must ensure that `bufsz` is a multiple of 2. since: 1.8.2
sum16w_bytes | Returns the arithmetic sum of all bytes in `blob`, adding them one word at a time. The caller must ensure that the size of `blob` is a multiple of 2. since: 1.8.2
sum32 | Returns the arithmetic sum of all bytes in `buf`, adding them one byte at a time. since: 1.8.2
sum32_bytes | Returns the arithmetic sum of all bytes in `blob`, adding them one byte at a time. since: 1.8.2
sum32w | Returns the arithmetic sum of all bytes in `buf`, adding them one dword at a time. The caller must ensure that `bufsz` is a multiple of 4. since: 1.8.2
sum32w_bytes | Returns the arithmetic sum of all bytes in `blob`, adding them one dword at a time. The caller must ensure that the size of `blob` is a multiple of 4. since: 1.8.2
sum8 | Returns the arithmetic sum of all bytes in `buf`. since: 1.8.2
sum8_bytes | Returns the arithmetic sum of all bytes in `blob`. since: 1.8.2
sum8_safe | Returns the arithmetic sum of all bytes in `buf`. since: 2.1.2
tpm_alg_from_string | Converts a string to an enumerated value.
tpm_alg_to_string | Converts an enumerated value to a string.
usb_class_to_string | Converts an enumerated value to a string.
uswid_payload_compression_from_string | Converts a string to an enumerated value.
uswid_payload_compression_to_string | Converts an enumerated value to a string.
uswid_payload_format_from_string | Converts a string to an enumerated value.
uswid_payload_format_to_string | Converts an enumerated value to a string.
utf16_to_utf8_byte_array | Converts a UTF-16 buffer to a UTF-8 string. since: 1.9.3
utf16_to_utf8_bytes | Converts a UTF-16 buffer to a UTF-8 string. since: 1.9.3
utf8_to_utf16_byte_array | Converts UTF-8 string to a buffer of UTF-16, optionially including the trailing NULw. since: 1.9.3
utf8_to_utf16_bytes | Converts UTF-8 string to a buffer of UTF-16, optionally including the trailing NULw. since: 1.9.3
v4l_cap_to_string | Converts an enumerated value to a string.
version_compare | Compares version numbers for sorting taking into account the version format if required. since: 1.8.2
version_ensure_semver | Builds a semver from the possibly crazy version number. Depending on the `semver` value the string will be split and a string in the correct format will be returned. since: 1.8.2
version_from_uint16 | Returns a dotted decimal version string from a 16 bit number. since: 1.8.2
version_from_uint16_hex | Returns a dotted hex version string from a 16 bit number. since: 2.0.0
version_from_uint24 | Returns a dotted decimal version string from a 24 bit number. since: 1.8.9
version_from_uint32 | Returns a dotted decimal version string from a 32 bit number. since: 1.8.2
version_from_uint32_hex | Returns a dotted decimal hex string from a 32 bit number. since: 2.0.0
version_from_uint64 | Returns a dotted decimal version string from a 64 bit number. since: 1.8.2
version_guess_format | Guesses the version format from the version number. This is only a heuristic and plugins and components should explicitly set the version format whenever possible. since: 1.8.2
version_parse_from_format | Returns a dotted decimal version string from a version string using `fmt`. The supported formats are:. since: 1.8.2
version_verify_format | Verifies if a version matches the input format. since: 1.8.2
xmlb_builder_insert_kb | Convenience function to add an XML node with a boolean value. since: 1.6.0
xmlb_builder_insert_kv | Convenience function to add an XML node with a string value. If `value` is `NULL` then no member is added. since: 1.6.0
xmlb_builder_insert_kx | Convenience function to add an XML node with an integer value. If `value` is 0 then no member is added. since: 1.6.0
xor8 | Returns the bitwise XOR of all bytes in `buf`. since: 2.1.1
xor8_safe | Returns the bitwise XOR of all bytes in `buf` in a safe way. since: 2.1.1
zip_compression_from_string | Converts a string to an enumerated value.
zip_compression_to_string | Converts an enumerated value to a string.

#### Function Macros

BIT_CLEAR | Clears a bit in a value using a bitwise operation. since: 2.0.0
BIT_SET | Sets a bit in a value using a bitwise operation. since: 2.0.0
device_add_checksum |
device_add_icon |
device_add_issue |
device_add_protocol |
device_add_release |
device_add_request_flag |
device_add_vendor_id |
device_get_branch |
device_get_checksums |
device_get_composite_id |
device_get_created |
device_get_details_url |
device_get_flags |
device_get_flashes_left |
device_get_guid_default |
device_get_guids |
device_get_icons |
device_get_id |
device_get_install_duration |
device_get_instance_ids |
device_get_issues |
device_get_name |
device_get_percentage |
device_get_plugin |
device_get_protocols |
device_get_release_default |
device_get_serial |
device_get_status |
device_get_summary |
device_get_update_error |
device_get_update_state |
device_get_vendor |
device_get_vendor_ids |
device_get_version |
device_get_version_bootloader |
device_get_version_bootloader_raw |
device_get_version_build_date |
device_get_version_format |
device_get_version_highest |
device_get_version_highest_raw |
device_get_version_lowest |
device_get_version_lowest_raw |
device_get_version_raw |
device_has_checksum |
device_has_flag |
device_has_icon |
device_has_protocol |
device_has_request_flag |
device_has_vendor_id |
device_set_branch |
device_set_description |
device_set_details_url |
device_set_flags |
device_set_flashes_left |
device_set_install_duration |
device_set_percentage |
device_set_plugin |
device_set_serial |
device_set_status |
device_set_summary |
device_set_update_error |
device_set_version_bootloader_raw |
device_set_version_build_date |
plugin_add_flag |
plugin_get_flags |
plugin_has_flag |
plugin_remove_flag |

#### Constants

ACPI_FADT_PM_PROFILE_LAST |
BLUEZ_DEVICE_UUID_DI_FIRMWARE_REVISION |
BLUEZ_DEVICE_UUID_DI_HARDWARE_REVISION |
BLUEZ_DEVICE_UUID_DI_MANUFACTURER_NAME |
BLUEZ_DEVICE_UUID_DI_MODEL_NUMBER |
BLUEZ_DEVICE_UUID_DI_PNP_UID |
BLUEZ_DEVICE_UUID_DI_SERIAL_NUMBER |
BLUEZ_DEVICE_UUID_DI_SOFTWARE_REVISION |
BLUEZ_DEVICE_UUID_DI_SYSTEM_ID |
CBOR_ITEM_KIND_LAST |
CBOR_TAG_LAST |
CFI_DEVICE_CMD_LAST |
CHUNK_ADDR_OFFSET_NONE | No address offset is used.
CHUNK_PAGESZ_NONE | No page size is used.
CONTEXT_LOAD_FLAG_HWID_ALL |
CONTEXT_QUIRK_SOURCE_LAST |
COSWID_ENTITY_ROLE_LAST |
COSWID_TAG_LAST |
CPU_VENDOR_LAST |
CRC_KIND_LAST |
DEVICE_ICON_AC_ADAPTER | A generic icon of an AC adapter.
DEVICE_ICON_APPLICATION_CERTIFICATE | A generic icon of a certificate.
DEVICE_ICON_AUDIO_CARD | An icon of an audio card.
DEVICE_ICON_AUTH_FINGERPRINT | A generic icon of a fingerprint reader.
DEVICE_ICON_COMPUTER | A generic icon of a computer.
DEVICE_ICON_DOCK | A generic icon of a dock.
DEVICE_ICON_DOCK_USB | An icon of a dock attached via USB.
DEVICE_ICON_DRIVE_HARDDISK | A generic icon of a hard disk drive.
DEVICE_ICON_DRIVE_MULTIDISK | A generic icon of a multidisk drive.
DEVICE_ICON_DRIVE_SSD | A generic icon of a hard disk drive.
DEVICE_ICON_GPU | A generic icon of a gpu.
DEVICE_ICON_INPUT_DIALPAD | A generic icon of a dialpad.
DEVICE_ICON_INPUT_GAMING | A generic icon of a gaming controller.
DEVICE_ICON_INPUT_KEYBOARD | A generic icon of a keyboard.
DEVICE_ICON_INPUT_MOUSE | A generic icon of a mouse.
DEVICE_ICON_INPUT_TABLET | A generic icon of a drawing tablet.
DEVICE_ICON_INPUT_TOUCHPAD | A generic icon of a touchpad.
DEVICE_ICON_MEMORY | A generic icon of a memory card.
DEVICE_ICON_MODEM | An icon of a modem.
DEVICE_ICON_NETWORK_WIRED | A generic icon of a wired connection.
DEVICE_ICON_NETWORK_WIRELESS | A generic icon of a wireless connection.
DEVICE_ICON_PDA | A generic icon of a PDA.
DEVICE_ICON_THUNDERBOLT | A generic icon of a thunderbolt device.
DEVICE_ICON_USB_HUB | An icon of a hub of USB devices.
DEVICE_ICON_USB_RECEIVER | A generic icon of an USB receiver.
DEVICE_ICON_VIDEO_CAMERA | A generic icon of a video camera.
DEVICE_ICON_VIDEO_DISPLAY | A generic icon of a display.
DEVICE_ICON_WEB_CAMERA | A generic icon of a web camera.
DEVICE_METADATA_TBT_IS_SAFE_MODE | If the Thunderbolt hardware is stuck in safe mode. Consumed by the thunderbolt plugin.
DEVICE_METADATA_UEFI_CAPSULE_FLAGS | The capsule flags for the UEFI device, e.g. `EFI_CAPSULE_HEADER_FLAGS_PERSIST_ACROSS_RESET` Consumed by the uefi plugin when other devices register fake devices that need to be handled as a capsule update.
DEVICE_METADATA_UEFI_DEVICE_KIND | The type of UEFI device, e.g. “system-firmware” or “device-firmware” Consumed by the uefi plugin when other devices register fake devices that need to be handled as a capsule update.
DEVICE_METADATA_UEFI_FW_VERSION | The firmware version of the UEFI device specified as a 32 bit unsigned integer. Consumed by the uefi plugin when other devices register fake devices that need to be handled as a capsule update.
DEVICE_PRIVATE_FLAG_ADD_COUNTERPART_GUIDS | The device will add counterpart GUIDs from an alternate mode like bootloader. This flag is typically specified in a quirk.
DEVICE_PRIVATE_FLAG_ADD_INSTANCE_ID_REV | Add the `_REV` instance ID suffix.
DEVICE_PRIVATE_FLAG_ATTACH_EXTRA_RESET | Device needs resetting twice for attach after the firmware update.
DEVICE_PRIVATE_FLAG_AUTO_PARENT_CHILDREN | Automatically assign the parent for children of this device.
DEVICE_PRIVATE_FLAG_AUTO_PAUSE_POLLING | Pause polling when reading or writing to the device.
DEVICE_PRIVATE_FLAG_COUNTERPART_VISIBLE | Add the counterpart instance IDs as visible GUID that can be matched in firmware.
DEVICE_PRIVATE_FLAG_DELAYED_REMOVAL | Use the device removal delay every time the device is removed, rather than when explicitly waiting for a replug.
DEVICE_PRIVATE_FLAG_DETACH_PREPARE_FIRMWARE | Detach, then prepare firmware rather than parsing firmware from the runtime device. For some devices the firmware GType isn’t known until the bootloader gets added.
DEVICE_PRIVATE_FLAG_DISPLAY_REQUIRED | The device requires a display to be plugged in.
DEVICE_PRIVATE_FLAG_EMULATED_REQUIRE_SETUP | The device requires `FuDevice->setup()` rather than `FuDevice->probe()` to add instance IDs during emulated device enumeration.
DEVICE_PRIVATE_FLAG_ENFORCE_REQUIRES | The device uses a generic instance ID and firmware requires a parent, child, sibling or CHID requirement.
DEVICE_PRIVATE_FLAG_ENSURE_SEMVER | Ensure the version is a valid semantic version, e.g. numbers separated with dots.
DEVICE_PRIVATE_FLAG_EXPLICIT_ORDER | Do not automatically set the device order, e.g. updating the child before the parent.
DEVICE_PRIVATE_FLAG_HAS_DS20 | The device provided a DS-20 quirk descriptor.
DEVICE_PRIVATE_FLAG_HOST_CPU | The device represents the main CPU device.
DEVICE_PRIVATE_FLAG_HOST_CPU_CHILD | The device should be a child of the main CPU device.
DEVICE_PRIVATE_FLAG_HOST_FIRMWARE | The device represents the main system host firmware.
DEVICE_PRIVATE_FLAG_HOST_FIRMWARE_CHILD | The device should be a child of the main system host firmware device.
DEVICE_PRIVATE_FLAG_IGNORE_SYSTEM_POWER | Allow updating firmware when the system power is otherwise too low. This is only really useful when updating the system battery firmware.
DEVICE_PRIVATE_FLAG_INHERIT_ACTIVATION | Inherit activation status from the history database on startup.
DEVICE_PRIVATE_FLAG_INHIBIT_CHILDREN | Children of the device are inhibited by the parent.
DEVICE_PRIVATE_FLAG_INSTALL_LOOP_RESTART | Restart the `detach->write_firmware->attach->reload` loop without completing the sequence. This can be set on any step, unlike `another-write-required` which does all steps.
DEVICE_PRIVATE_FLAG_INSTALL_PARENT_FIRST | The composite device requires installation of composite firmware on the parent before the child. Normally the child is installed before the parent.
DEVICE_PRIVATE_FLAG_IS_FAKE | The device is fake, and constructed from a fake sysfs test directory.
DEVICE_PRIVATE_FLAG_IS_OPEN | The device opened successfully and ready to use.
DEVICE_PRIVATE_FLAG_LAZY_VERFMT | Allow the device version to be specified as an integer in the release XML.
DEVICE_PRIVATE_FLAG_MD_ONLY_CHECKSUM | Only use the metadata checksum to set device attributes.
DEVICE_PRIVATE_FLAG_MD_SET_FLAGS | Set the device flags from the metadata if available.
DEVICE_PRIVATE_FLAG_MD_SET_ICON | Set the device icon from the metadata if available.
DEVICE_PRIVATE_FLAG_MD_SET_NAME | Set the device name from the metadata `name` if available.
DEVICE_PRIVATE_FLAG_MD_SET_NAME_CATEGORY | Set the device name from the metadata `category` if available.
DEVICE_PRIVATE_FLAG_MD_SET_REQUIRED_FREE | Set the device required free size from the metadata if available.
DEVICE_PRIVATE_FLAG_MD_SET_SIGNED | Set the signed/unsigned payload from the metadata if available.
DEVICE_PRIVATE_FLAG_MD_SET_VENDOR | Set the device vendor from the metadata `developer_name` if available.
DEVICE_PRIVATE_FLAG_MD_SET_VERFMT | Set the device version format from the metadata or history database if available.
DEVICE_PRIVATE_FLAG_MD_SET_VERSION | Set the device version from the metadata if available.
DEVICE_PRIVATE_FLAG_NO_AUTO_INSTANCE_IDS | Do not add instance IDs from the device baseclass.
DEVICE_PRIVATE_FLAG_NO_AUTO_REMOVE | The device is not auto removed.
DEVICE_PRIVATE_FLAG_NO_AUTO_REMOVE_CHILDREN | Do not auto-remove children in the device list.
DEVICE_PRIVATE_FLAG_NO_GENERIC_GUIDS | Do not add generic GUIDs from outside the plugin.
DEVICE_PRIVATE_FLAG_NO_GENERIC_VERSION | Do not add generic versions from outside the plugin.
DEVICE_PRIVATE_FLAG_NO_LID_CLOSED | Do not allow updating when the laptop lid is closed.
DEVICE_PRIVATE_FLAG_NO_PROBE | Do not probe this device.
DEVICE_PRIVATE_FLAG_NO_SERIAL_NUMBER | Do not attempt to read the device serial number.
DEVICE_PRIVATE_FLAG_NO_VERSION_EXPECTED | Allow the device version to be unset.
DEVICE_PRIVATE_FLAG_ONLY_SUPPORTED | Only devices supported in the metadata will be opened.
DEVICE_PRIVATE_FLAG_PARENT_NAME_PREFIX | Use the parent device as the name prefix.
DEVICE_PRIVATE_FLAG_REFCOUNTED_PROXY | Reference-count the proxy — which is useful when using `ProxyGType`.
DEVICE_PRIVATE_FLAG_REGISTERED | The device has been registered with other plugins.
DEVICE_PRIVATE_FLAG_REPLUG_MATCH_GUID | Match GUIDs on device replug where the physical and logical IDs will be different.
DEVICE_PRIVATE_FLAG_RETRY_OPEN | Retry the device open up to 5 times if it fails.
DEVICE_PRIVATE_FLAG_SAVE_INTO_BACKUP_REMOTE | Save the cabinet archive to persistent storage remote before starting the update process.
DEVICE_PRIVATE_FLAG_SKIPS_RESTART | The device relies upon activation or power cycle to load firmware.
DEVICE_PRIVATE_FLAG_STRICT_EMULATION_ORDER | Do not allow out-of-order or skipped emulation events. This allows a developer to refactor a plugin ensuring that the device behavior remains 100% unchanged.
DEVICE_PRIVATE_FLAG_UNCONNECTED | The device is not connected and is probably awaiting replug.
DEVICE_PRIVATE_FLAG_UPDATE_PENDING | The device has an update that is waiting to be applied.
DEVICE_PRIVATE_FLAG_USE_PROXY_FALLBACK | Use parent for the battery level and threshold.
DEVICE_PRIVATE_FLAG_USE_PROXY_FOR_OPEN | Use proxy to open and close the device.
DEVICE_PRIVATE_FLAG_USE_RUNTIME_VERSION | The device will always display use the runtime version rather than the bootloader version.
DEVICE_REMOVE_DELAY_RE_ENUMERATE | The default removal delay for device re-enumeration taking into account a chain of slow USB hubs. This should be used when the device is able to reset itself between bootloader->runtime->bootloader.
DEVICE_REMOVE_DELAY_USER_REPLUG | The default removal delay for device re-plug taking into account humans being slow and clumsy. This should be used when the user has to do something, e.g. unplug, press a magic button and then replug.
DFU_FIRMWARE_VERSION_ATMEL_AVR | The Atmel AVR version of the DFU standard in BCD format.
DFU_FIRMWARE_VERSION_DFU_1_0 | The 1.0 version of the DFU standard in BCD format.
DFU_FIRMWARE_VERSION_DFU_1_1 | The 1.1 version of the DFU standard in BCD format.
DFU_FIRMWARE_VERSION_DFUSE | The DfuSe version of the DFU standard in BCD format, defined by ST.
DFU_FIRMWARE_VERSION_UNKNOWN | Unknown version of the DFU standard in BCD format.
DISPLAY_STATE_LAST |
DPAUX_DEVICE_DPCD_OFFSET_BRANCH_DEVICE |
DPAUX_DEVICE_DPCD_OFFSET_LINK_CONFIGURATION |
DPAUX_DEVICE_DPCD_OFFSET_LINK_SINK_STATUS |
DPAUX_DEVICE_DPCD_OFFSET_RECEIVER_CAPABILITY |
DPAUX_DEVICE_DPCD_OFFSET_SINK_DEVICE |
DPAUX_DEVICE_DPCD_OFFSET_SOURCE_DEVICE |
EFI_FILE_GUID_BIOS_GUARD |
EFI_FILE_GUID_FV_IMAGE |
EFI_FILE_GUID_MICROCODE |
EFI_HARD_DRIVE_DEVICE_PATH_SIGNATURE_TYPE_LAST |
EFI_LOAD_OPTION_KIND_LAST |
EFI_LOAD_OPTION_METADATA_CMDLINE | The key for the kernel command line.
EFI_LOAD_OPTION_METADATA_PATH | The key for the 2nd-stage loader path.
EFI_LZ77_DECOMPRESSOR_VERSION_LAST |
EFI_SECTION_GUID_ACPI1_TABLE |
EFI_SECTION_GUID_ACPI2_TABLE |
EFI_SECTION_GUID_ESRT_TABLE |
EFI_SECTION_GUID_LZMA_COMPRESS |
EFI_SECTION_GUID_SMBIOS_TABLE |
EFI_SECTION_GUID_TIANO_COMPRESS |
EFI_SIGNATURE_GUID_FRAMEWORK |
EFI_SIGNATURE_GUID_MICROSOFT |
EFI_SIGNATURE_GUID_OVMF |
EFI_SIGNATURE_GUID_OVMF_LEGACY |
EFI_SIGNATURE_GUID_ZERO |
EFI_SIGNATURE_KIND_LAST |
EFI_VOLUME_GUID_APPLE_BOOT |
EFI_VOLUME_GUID_FFS1 |
EFI_VOLUME_GUID_FFS2 |
EFI_VOLUME_GUID_FFS3 |
EFI_VOLUME_GUID_HP_FS |
EFI_VOLUME_GUID_NVRAM_EVSA |
EFI_VOLUME_GUID_NVRAM_EVSA2 |
EFI_VOLUME_GUID_NVRAM_NVAR |
EFI_VOLUME_GUID_PFH1 |
EFI_VOLUME_GUID_PFH2 |
EFIVARS_GUID_EFI_CAPSULE_REPORT |
EFIVARS_GUID_EFI_GLOBAL |
EFIVARS_GUID_FWUPDATE |
EFIVARS_GUID_SECURITY_DATABASE |
EFIVARS_GUID_SHIM |
EFIVARS_GUID_UX_CAPSULE |
FIRMWARE_ALIGNMENT_LAST |
FIRMWARE_ID_HEADER | The usual firmware ID string for the header.
FIRMWARE_ID_PAYLOAD | The usual firmware ID string for the payload.
FIRMWARE_ID_SIGNATURE | The usual firmware ID string for the signature.
FIRMWARE_SEARCH_MAGIC_BUFSZ_MAX |
FIRMWARE_SREC_RECORD_KIND_LAST |
FIT_FIRMWARE_ATTR_ALGO | The checksum algorithm for the FIT image, typically a string, e.g. `crc32`.
FIT_FIRMWARE_ATTR_COMPATIBLE | The compatible metadata for the FIT image, typically a string list, e.g. `pine64,rockpro64-v2.1:pine64,rockpro64`.
FIT_FIRMWARE_ATTR_DATA | The raw data for the FIT image, typically a blob.
FIT_FIRMWARE_ATTR_DATA_OFFSET | The external data offset after the FIT image, typically a uint32.
FIT_FIRMWARE_ATTR_DATA_SIZE | The data size of the external image, typically a uint32.
FIT_FIRMWARE_ATTR_SKIP_OFFSET | The offset to skip when writing the FIT image, typically a uint32.
FIT_FIRMWARE_ATTR_STORE_OFFSET | The store offset for the FIT image, typically a uint32.
FIT_FIRMWARE_ATTR_TIMESTAMP | The creation timestamp of FIT image, typically a uint32.
FIT_FIRMWARE_ATTR_VALUE | The value of the checksum, which is typically a blob.
FIT_FIRMWARE_ATTR_VERSION | The version of the FIT image, typically a string, e.g. `1.2.3`.
FIT_FIRMWARE_ID_CONFIGURATIONS | The usual firmware ID string for the configurations.
FIT_FIRMWARE_ID_IMAGES | The usual firmware ID string for the images.
FMAP_FIRMWARE_STRLEN |
GB | The number of bytes in 1 GiB.
HECI_DEVICE_UUID_FWUPDATE | UUID for firmware updates.
HECI_DEVICE_UUID_MCHI | UUID for MCHI, commonly called MCA.
HECI_DEVICE_UUID_MCHI2 | Another UUID for MCHI, commonly called MCA.
HECI_DEVICE_UUID_MKHI | UUID for MKHI, usually a legacy interface.
HID_ITEM_KIND_LAST |
HWIDS_KEY_BASEBOARD_MANUFACTURER | The HwID key for the baseboard (motherboard) vendor.
HWIDS_KEY_BASEBOARD_PRODUCT | The HwID key for baseboard (motherboard) product.
HWIDS_KEY_BIOS_MAJOR_RELEASE | The HwID key for the BIOS major version.
HWIDS_KEY_BIOS_MINOR_RELEASE | The HwID key for the BIOS minor version.
HWIDS_KEY_BIOS_RELEASE_DATE | The HwID key for the BIOS date.
HWIDS_KEY_BIOS_VENDOR | The HwID key for the BIOS vendor.
HWIDS_KEY_BIOS_VERSION | The HwID key for the BIOS version.
HWIDS_KEY_ENCLOSURE_KIND | The HwID key for the enclosure kind.
HWIDS_KEY_FAMILY | The HwID key for the deice family.
HWIDS_KEY_FIRMWARE_MAJOR_RELEASE | The HwID key for the firmware major version.
HWIDS_KEY_FIRMWARE_MINOR_RELEASE | The HwID key for the firmware minor version.
HWIDS_KEY_MANUFACTURER | The HwID key for the top-level product vendor.
HWIDS_KEY_PRODUCT_NAME | The HwID key for the top-level product name.
HWIDS_KEY_PRODUCT_SKU | The HwID key for the top-level product SKU.
I2C_DEVICE_PRIVATE_FLAG_NO_HWID_GUIDS | Do not add the HWID instance IDs.
IFWI_CPD_FIRMWARE_IDX_MANIFEST | The index for the IFWI manifest image.
IFWI_CPD_FIRMWARE_IDX_METADATA | The index for the IFWI metadata image.
IFWI_CPD_FIRMWARE_IDX_MODULEDATA_IDX | The index for the IFWI module data image.
IFWI_FPT_FIRMWARE_IDX_CKSM | The index for the IFWI checksum image.
IFWI_FPT_FIRMWARE_IDX_FWIM | The index for the IFWI firmware image.
IFWI_FPT_FIRMWARE_IDX_IMGI | The index for the IFWI image instance.
IFWI_FPT_FIRMWARE_IDX_INFO | The index for the IFWI info image.
IFWI_FPT_FIRMWARE_IDX_SDTA | The index for the IFWI firmware data image.
INTEL_ME_FAMILY_LAST |
INTEL_ME_ISSUE_LAST |
INTEL_THUNDERBOLT_NVM_FAMILY_LAST |
INTEL_THUNDERBOLT_NVM_SECTION_LAST |
KB | The number of bytes in 1 KiB.
LID_STATE_LAST |
MB | The number of bytes in 1 MiB.
ME_HFS_ENFORCEMENT_POLICY_LAST |
ME_HFS_ERROR_LAST |
ME_HFS_MODE_LAST |
ME_HFS_STATE_LAST |
MEI_CSME18_ERROR_STATUS_CODE_LAST |
MSGPACK_ITEM_KIND_LAST |
OPROM_COMPRESSION_TYPE_LAST |
OPROM_MACHINE_TYPE_LAST |
OPROM_SUBSYSTEM_LAST |
PATH_KIND_LAST |
POWER_STATE_LAST |
PROCESSOR_KIND_LAST |
PROTOBUF_WIRE_TYPE_LAST |
QUIRKS_ACQUIESCE_DELAY | The quirk key for the device removal delay in milliseconds, e.g. `2500`.
QUIRKS_BATTERY_THRESHOLD | The quirk key for the battery threshold in percent, e.g. `80`.
QUIRKS_BRANCH | The quirk key for the firmware branch.
QUIRKS_CFI_DEVICE_BLOCK_SIZE | The quirk key to set the CFI block size, e.g. `0x100`.
QUIRKS_CFI_DEVICE_CMD_BLOCK_ERASE | The quirk key to set the CFI block erase command, e.g. `0xF8`.
QUIRKS_CFI_DEVICE_CMD_CHIP_ERASE | The quirk key to set the CFI chip erase command, e.g. `0xF8`.
QUIRKS_CFI_DEVICE_CMD_PAGE_PROG | The quirk key to set the CFI page program command, e.g. `0xF8`.
QUIRKS_CFI_DEVICE_CMD_READ_DATA | The quirk key to set the CFI read data command, e.g. `0xF8`.
QUIRKS_CFI_DEVICE_CMD_READ_ID | The quirk key to set the CFI read ID command, e.g. `0xF8`.
QUIRKS_CFI_DEVICE_CMD_READ_ID_SZ | The quirk key to set the CFI read ID size, e.g. `0xF8`.
QUIRKS_CFI_DEVICE_CMD_READ_STATUS | The quirk key to set the CFI read status command, e.g. `0xF8`.
QUIRKS_CFI_DEVICE_CMD_SECTOR_ERASE | The quirk key to set the CFI sector erase command, e.g. `0xF8`.
QUIRKS_CFI_DEVICE_CMD_WRITE_EN | The quirk key to set the CFI write en command, e.g. `0xF8`.
QUIRKS_CFI_DEVICE_CMD_WRITE_STATUS | The quirk key to set the CFI write status command, e.g. `0xF8`.
QUIRKS_CFI_DEVICE_PAGE_SIZE | The quirk key to set the CFI page size, e.g. `0xF8`.
QUIRKS_CFI_DEVICE_SECTOR_SIZE | The quirk key to set the CFI sector size, e.g. `0x100`.
QUIRKS_CHILDREN | The quirk key for the children. This should contain the custom GType, e.g. `FuRts54xxDeviceUSB\VID_0763&PID_2806&I2C_01`.
QUIRKS_COUNTERPART_GUID | The quirk key for the counterpart GUID, e.g. `537f7800-8529-5656-b2fa-b0901fe91696`.
QUIRKS_DETAILS_URL | The quirk key for the device-specific product page, e.g. `https://www.lenovo.com/us/en/p/laptops/thinkpad/thinkpadp/thinkpad-p50/22tp2wpwp50`.
QUIRKS_FIRMWARE_GTYPE | The quirk key for the custom firmware GType, e.g. `FuUswidFirmware`.
QUIRKS_FIRMWARE_SIZE | The quirk key for the exact required firmware size in bytes, e.g. `1024`.
QUIRKS_FIRMWARE_SIZE_MAX | The quirk key for the maximum firmware size in bytes, e.g. `1024`.
QUIRKS_FIRMWARE_SIZE_MIN | The quirk key for the minimum firmware size in bytes, e.g. `512`.
QUIRKS_FLAGS | The quirk key for either for public, internal or private flags, e.g. `is-bootloader`.
QUIRKS_GTYPE | The quirk key for the custom GType, e.g. `FuCcgxHidDevice`.
QUIRKS_GUID | The quirk key for the GUID, e.g. `537f7800-8529-5656-b2fa-b0901fe91696`.
QUIRKS_GUID_QUIRK | The quirk key for the GUID, only used for quirk matching, e.g. `SYNAPTICS_CAPE\CX31993`.
QUIRKS_ICON | The quirk key for the icon, e.g. `media-removable`.
QUIRKS_INHIBIT | The quirk key to inhibit the UPDATABLE flag and to set an update error, e.g. `In safe mode`.
QUIRKS_INSTALL_DURATION | The quirk key for the install duration in seconds, e.g. `60`.
QUIRKS_ISSUE | The quirk key to add security issues affecting a specific device, e.g. `https://www.pugetsystems.com/support/guides/critical-samsung-ssd-firmware-update/`.
QUIRKS_NAME | The quirk key for the name, e.g. `ColorHug`.
QUIRKS_PARENT_GUID | The quirk key for the parent GUID, e.g. `537f7800-8529-5656-b2fa-b0901fe91696`.
QUIRKS_PLUGIN | The quirk key for the plugin name, e.g. `csr`.
QUIRKS_PRIORITY | The quirk key for the device priority, e.g. `2`.
QUIRKS_PROTOCOL | The quirk key for the protocol, e.g. `org.usb.dfu`.
QUIRKS_PROXY_GTYPE | The quirk key for the custom proxy GType, e.g. `FuCcgxHidDevice`.
QUIRKS_PROXY_GUID | The quirk key for the proxy GUID, e.g. `537f7800-8529-5656-b2fa-b0901fe91696`.
QUIRKS_REMOVE_DELAY | The quirk key for the device removal delay in milliseconds, e.g. `2500`.
QUIRKS_SUMMARY | The quirk key for the summary, e.g. `An open source display colorimeter`.
QUIRKS_UPDATE_IMAGE | The quirk key for the update image shown before the update is performed.
QUIRKS_UPDATE_MESSAGE | The quirk key for the update message shown after the transaction has completed.
QUIRKS_VENDOR | The quirk key for the vendor name, e.g. `Hughski Limited`.
QUIRKS_VENDOR_ID | The quirk key for the vendor ID, e.g. `USB:0x123A`.
QUIRKS_VERSION | The quirk key for the version, e.g. `1.2.3`.
QUIRKS_VERSION_FORMAT | The quirk key for the version format, e.g. `quad`.
QUIRKS_VERSION_HIGHEST | The quirk key for the highest allowed version, e.g. `1.2.3`.
QUIRKS_VERSION_LOWEST | The quirk key for the lowest allowed version, e.g. `1.2.3`.
SMBIOS_CHASSIS_KIND_LAST |
SMBIOS_STRUCTURE_TYPE_LAST |
TPM_DIGEST_SIZE_SHA1 |
TPM_DIGEST_SIZE_SHA256 |
TPM_DIGEST_SIZE_SHA384 |
TPM_DIGEST_SIZE_SHA512 |
TPM_DIGEST_SIZE_SM3_256 |
UDEV_DEVICE_ATTR_READ_TIMEOUT_DEFAULT | The default IO timeout when reading sysfs attributes.
UDEV_DEVICE_FLAG_SYSFS_USE_PHYSICAL_ID | Use the physical ID for the sysfs path rather than the backend ID.
USB_DEVICE_MS_DS20_DESC_LAST |
USB_DIRECTION_LAST |
USB_RECIPIENT_LAST |
USB_REQUEST_TYPE_LAST |
VOLUME_KIND_BDP | The GUID for the BDP, see: https://en.wikipedia.org/wiki/Microsoft_basic_data_partition.
VOLUME_KIND_ESP | The GUID for the ESP, see: https://en.wikipedia.org/wiki/EFI_system_partition.