Config Access Protocol là gì?
Config Access Protocol nối Setup Browser với driver để extract, route và callback dữ liệu HII.
EFI_HII_CONFIG_ACCESS_PROTOCOL là cầu nối giữa Setup Browser và driver sở hữu cấu hình. Nếu VFR mô tả UI, VarStore mô tả dữ liệu, thì Config Access Protocol là nơi driver can thiệp vào quá trình đọc, lưu và phản ứng khi user đổi setting.
Nó thường có ba hàm chính:
| Mục | Giá trị | Ghi chú |
|---|---|---|
| ExtractConfig | Xuất cấu hình hiện tại ra dạng config string | Browser dùng để lấy dữ liệu ban đầu. |
| RouteConfig | Nhận config string và ghi lại vào storage | Thường dẫn tới SetVariable hoặc internal state. |
| Callback | Phản ứng khi question thay đổi | Dùng cho validation, dynamic UI, reset request. |
Callback khi user thay đổi setting
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
)
{
switch (Action) {
case EFI_BROWSER_ACTION_CHANGING:
// Validate trước khi Browser chấp nhận giá trị.
break;
case EFI_BROWSER_ACTION_CHANGED:
if (QuestionId == QUESTION_ID_NETWORK_STACK && Value->u8 == 1) {
DEBUG ((DEBUG_INFO, "Network Stack enabled\n"));
*ActionRequest = EFI_BROWSER_ACTION_REQUEST_RESET;
}
break;
}
return EFI_SUCCESS;
}
Save & Exit thường đi như thế nào?
User đổi setting
Browser update local buffer hoặc gọi callback.
Callback validate
Driver có thể reject, request reset, refresh form.
Save & Exit
Browser route config về driver.
RouteConfig
Driver parse config string và ghi storage.
SetVariable
Nếu dùng NVRAM, variable được update.
Pitfall
Build pass nhưng callback không chạy thường do:
- question thiếu flag/attribute cần thiết;
EFI_HII_CONFIG_ACCESS_PROTOCOLchưa install đúng handle;- FormSet không gắn với driver handle đó;
QuestionIdtrong code không khớp IFR dump;- callback trả status sai làm Browser bỏ qua.
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.