HalpGetCacheCoherency
CHAR __fastcall HalpGetCacheCoherency(INT64 a1, DEVICE_OBJECT *a2, BYTE *a3){
INT8 v4;
void *Context;
CHAR result;
INTERFACE v8;
__int64 v9;
v4 = 0;
*a3 = 0;
memset(&v8, 0, sizeof(v8));
v9 = 0i64;
if( a1 )
{
result = *(_BYTE *)(a1 + 72);
*a3 = result;
}
else if( a2 && IoQueryInterface(a2, 1, &GUID_DMA_CACHE_COHERENCY_INTERFACE, 0x28u, 1u, 0i64, &v8) >= 0 )
{
Context = v8.Context;
*a3 = v9;
return((__int64(__fastcall *)(void *))v8.InterfaceDereference)(Context);
}
else
{
*a3 = 1;
KeSystemFullyCacheCoherent((KDPC *)a1, v4);
if( !result )
*a3 = 0;
}
return result;
}Referenced by:
HalGetAdapterV2
HalGetAdapterV3