|
最普通常用的原始型(RAW)镜像文件以.nb0为文件名后缀,它的数据在物理存储中的起始地址和长度都取决于Manifest数据,因而.nb0型的镜像文件不能单独下载,必须先下载作为它的前导属性信息的BL_IMAGE_TYPE_MANIFEST类型的镜像文件。
由于镜像数据的性质特殊,BL_IMAGE_TYPE_MANIFEST类型的镜像文件——也称作Manifest数据——与一般的镜像文件数据的存放位置不同,它使用专门的DownloadManifest型全局变量g_DownloadManifest来存放。
// Download manifest.
typedef struct _MultiBINInfo_
{
DWORD dwNumRegions; // Number of files to be downloaded.
RegionInfo Region[BL_MAX_BIN_REGIONS];
} MultiBINInfo, *PMultiBINInfo;
typedef MultiBINInfo DownloadManifest;
// Download file info (start address, length, filename, etc.).
typedef struct _RegionInfo_
{
DWORD dwRegionStart;
DWORD dwRegionLength;
CHAR szFileName[MAX_PATH];
} RegionInfo, *PRegionInfo;
RegionInfo结构体的3个成员dwRegionStart、dwRegionLength、szFileName[MAX_PATH]中的dwRegionStart就是你想要的“起始地址信息”。 |
|