HII VFR Element Cheat Sheet
Bảng tổng hợp các element VFR như checkbox, oneof, numeric, string, date, time và ordered list.
Trang này là bảng tra nhanh các element thường gặp trong VFR/HII. Khi thêm một option mới vào BIOS Setup, hãy chọn element theo loại dữ liệu thật sự cần lưu, không chọn theo cảm giác UI.
Bảng element thường gặp
| Mục | Giá trị | Ghi chú |
|---|---|---|
| checkbox | Bật/tắt | Dùng cho boolean: Fast Boot, Network Stack, Wake on LAN. |
| oneof | Chọn một trong nhiều option | Dùng cho SATA Mode, Boot Mode, Power Policy. |
| numeric | Nhập/chọn số | Dùng cho timeout, threshold, fan speed limit. |
| string | Nhập text | Dùng cho asset tag, hostname, custom string. |
| password | Nhập mật khẩu | Cần xử lý security và storage rất cẩn thận. |
| date | Ngày | Thường liên quan RTC hoặc manufacturing data. |
| time | Giờ | Có thể liên quan RTC hoặc wake schedule. |
| orderedlist | Danh sách có thứ tự | Dùng khi user sắp xếp priority list. |
| goto | Điều hướng sang form khác | Dùng để tạo menu tree. |
| subtitle/text | Hiển thị thông tin | Không nhất thiết ghi vào VarStore. |
Bảng condition/control opcode
| Mục | Giá trị | Ghi chú |
|---|---|---|
| suppressif | Ẩn option/block | Dùng khi option không liên quan hoặc không support. |
| grayoutif | Khóa option nhưng vẫn hiển thị | Dùng khi user cần biết option tồn tại nhưng bị policy khóa. |
| disableif | Vô hiệu hóa theo điều kiện | Tùy Browser/platform, nên test kỹ behavior. |
| warningif | Cảnh báo khi điều kiện đúng | Dùng cho setting nguy hiểm. |
| inconsistentif | Reject cấu hình không hợp lệ | Dùng khi hai setting xung đột. |
| nosubmitif | Không cho submit/save | Dùng để bắt user sửa input trước khi lưu. |
| refresh / refreshguid | Yêu cầu refresh | Dùng với UI động hoặc data thay đổi. |
Chọn element theo dữ liệu
Chọn element đúng
Ví dụ kết hợp với NVRAM
typedef struct {
UINT8 FastBoot; // checkbox
UINT8 SataMode; // oneof
UINT16 BootTimeout; // numeric
CHAR16 AssetTag[32]; // string
} SETUP_DATA;
varstore SETUP_DATA,
varid = Setup,
name = Setup,
guid = SETUP_GUID;
Trong mô hình này, mỗi UI element ghi vào một field trong SETUP_DATA. Khi user nhấn Save & Exit, toàn bộ buffer hoặc phần thay đổi sẽ được route về driver rồi lưu vào NVRAM variable.
Debug tip
Nếu UI element hiển thị đúng nhưng dữ liệu sai, đừng nhìn element trước. Hãy kiểm tra VarOffset, VarStoreId, size field, alignment struct và dump variable sau khi save.
Nguồn tham khảo public
Thấy nội dung này hữu ích?
Lưu lại hoặc chia sẻ cho người cũng đang học firmware, BIOS/UEFI và embedded systems.
Nội dung liên quan
Một số bài viết, ghi chú hoặc project có liên quan đến nội dung bạn vừa đọc.
HII Architecture Overview
Knowledge map tổng quan về HII, VFR, IFR, VarStore, callback và flow lưu BIOS Setup.
HII Save, Callback và Reset Flow
Giải thích cách Setup Browser gọi callback, route config, lưu NVRAM và áp dụng sau reset.
VFR là gì?
VFR là source mô tả form, question, condition và VarStore trước khi compile thành IFR.
Biến note thành bài viết hoàn chỉnh
Notes là nơi ghi nhanh khái niệm.