EFI_DEVICE_PATH_PROTOCOL *LastDevicePathNode;\r
UINT32 BlockSize;\r
UINT32 MediaId;\r
- EFI_LBA LastBlock;\r
+ EFI_LBA LastSector;\r
EFI_PARTITION_INFO_PROTOCOL PartitionInfo;\r
\r
Found = EFI_NOT_FOUND;\r
\r
- BlockSize = BlockIo->Media->BlockSize;\r
- MediaId = BlockIo->Media->MediaId;\r
- LastBlock = BlockIo->Media->LastBlock;\r
+ BlockSize = BlockIo->Media->BlockSize;\r
+ MediaId = BlockIo->Media->MediaId;\r
+ LastSector = DivU64x32 (\r
+ MultU64x32 (BlockIo->Media->LastBlock + 1, BlockSize),\r
+ MBR_SIZE\r
+ ) - 1;\r
\r
//\r
// Ensure the block size can hold the MBR\r
Found = Status;\r
goto Done;\r
}\r
- if (!PartitionValidMbr (Mbr, LastBlock)) {\r
+ if (!PartitionValidMbr (Mbr, LastSector)) {\r
goto Done;\r
}\r
//\r