HalpGetChipHacks
__int64 __fastcall HalpGetChipHacks(__int16 a1, __int16 a2, unsigned __int8 a3, _DWORD *a4){
__int64 v5;
_WORD *i;
unsigned int v8;
int v9;
if( !HalpErrataChipHacksInitialized )
KeBugCheckEx(
0x5Cu,
0x8000ui64,
(ULONG_PTR)"HalpGetChipHacks",
(ULONG_PTR)"minkernel\\hals\\lib\\errata\\chiphacks.c",
0x125ui64);
v5 = 0i64;
if( !HalpChipHackCount )
return 3221226021i64;
for( i = (_WORD *)HalpChipHacksTable; *i != a1 || i[1] != a2; i += 4 )
{
v5 = (unsigned int)(v5 + 1);
if( (unsigned int)v5 >= HalpChipHackCount )
return 3221226021i64;
}
v8 = *(_DWORD *)(HalpChipHacksTable + 8 * v5 + 4);
if( a3 && HIBYTE(v8) && a3 >= HIBYTE(v8) )
v8 >>= 12;
v9 = v8 & 0xFFF;
*a4 = v9;
if( (HalpWAETDeviceFlags & 2) != 0 )
*a4 = v9 & 0xFFFFFFFE;
return 0i64;
}Referenced by:
HalpPiix4Detect