IopVerifyDiskSignature
UINT8 __stdcall IopVerifyDiskSignature(
_DRIVE_LAYOUT_INFORMATION_EX *DriveLayout,
_ARC_DISK_SIGNATURE *LoaderDiskBlock,
UINT64 *DiskSignature){
ULONG Signature;
__int64 v6;
if( *((_BYTE *)LoaderDiskBlock + 36) )
{
if( DriveLayout->PartitionStyle )
{
if( DriveLayout->PartitionStyle == 1 && *((_BYTE *)LoaderDiskBlock + 38) )
{
v6 = *((_QWORD *)LoaderDiskBlock + 5) - *(_QWORD *)&DriveLayout->Mbr.Signature;
if( !v6 )
v6 = *((_QWORD *)LoaderDiskBlock + 6) - *(_QWORD *)DriveLayout->Gpt.DiskId.Data4;
if( !v6 )
{
if( DiskSignature )
*(_DWORD *)DiskSignature = 0;
return 1;
}
}
}
else
{
Signature = DriveLayout->Mbr.Signature;
if( LoaderDiskBlock[4] == Signature )
{
if( DiskSignature )
*(_DWORD *)DiskSignature = Signature;
return 1;
}
}
}
return 0;
}Referenced by:
IopCreateArcName
IopGetBootDiskInformation