Question trong VFR là gì?
Question là đơn vị tương tác trong VFR, nối UI với QuestionId, VarStore và callback.
Trong HII/VFR, question là một item người dùng có thể tương tác hoặc Browser có thể xử lý như một đơn vị cấu hình. oneof, checkbox, numeric, string, date, time, orderedlist đều là các dạng question.
Question quan trọng vì nó là điểm nối giữa UI và dữ liệu.
| Mục | Giá trị | Ghi chú |
|---|---|---|
| QuestionId | ID logic của question | Callback thường dùng ID này để phân nhánh xử lý. |
| Prompt | String token hiển thị chính | Lấy từ String Package/.UNI. |
| Help | String token mô tả | Nên viết rõ vì người dùng BIOS rất hay dựa vào help text. |
| VarStoreId + Offset | Vị trí dữ liệu | Cho biết question đọc/ghi field nào. |
| Flags | DEFAULT, RESET_REQUIRED, INTERACTIVE... | Ảnh hưởng default, callback, reset message. |
Ví dụ question với callback
checkbox varid = Setup.FastBoot,
prompt = STRING_TOKEN(STR_FAST_BOOT),
help = STRING_TOKEN(STR_FAST_BOOT_HELP),
questionid = QUESTION_ID_FAST_BOOT,
flags = INTERACTIVE | RESET_REQUIRED;
endcheckbox;
Khi user đổi Fast Boot, Browser có thể gọi callback của driver nếu question có cờ phù hợp hoặc được Browser xử lý tương tác. Callback sẽ biết question nào đổi thông qua QuestionId.
EFI_STATUS
EFIAPI
SetupCallback (
IN CONST EFI_HII_CONFIG_ACCESS_PROTOCOL *This,
IN EFI_BROWSER_ACTION Action,
IN EFI_QUESTION_ID QuestionId,
IN UINT8 Type,
IN EFI_IFR_TYPE_VALUE *Value,
OUT EFI_BROWSER_ACTION_REQUEST *ActionRequest
)
{
if (QuestionId == QUESTION_ID_FAST_BOOT && Action == EFI_BROWSER_ACTION_CHANGED) {
DEBUG ((DEBUG_INFO, "FastBoot changed to %d\n", Value->u8));
}
return EFI_SUCCESS;
}
Common Pitfall
Question hiển thị đúng nhưng không callback vì thiếu INTERACTIVE, callback protocol chưa install, hoặc FormSet không dùng đúng driver handle.
Khi question không hoạt động như mong đợi
Bài liên quan
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.
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.
Biến note thành bài viết hoàn chỉnh
Notes là nơi ghi nhanh khái niệm.