Пример нахождения BBS таблицы есть в исходных текстах
Edk\Sample\Platform\Generic\Dxe\PlatformBds\BootMaint\BootOption.c
функция BOpt_GetLegacyOptions:
...
for (Index = 0; Index < BbsCount; Index++) {
if ((BBS_IGNORE_ENTRY == BbsTable
.BootPriority) ||
(BBS_DO_NOT_BOOT_FROM == BbsTable
.BootPriority) ||
(BBS_LOWEST_PRIORITY == BbsTable
.BootPriority)
) {
continue;
}
// Вот тут можно найти интересующие устройства:
if ( BbsTable
.Class == 0x0C && BbsTable
.SubClass == 3 && BbsTable
.DeviceType == 1 )
; // USB FDD: Class=C SubClass=3 DeviceType=1
else if ( BbsTable
.Class == 0x0C && BbsTable
.SubClass == 3 && BbsTable
.DeviceType == 2 )
; // USB HDD: Class=C SubClass=3 DeviceType=2
}
...
Пример нахождения BBS таблицы есть в исходных текстах
Edk\Sample\Platform\Generic\Dxe\PlatformBds\BootMaint\BootOption.c
функция BOpt_GetLegacyOptions: