HalpDmaStartWcb
CHAR __fastcall HalpDmaStartWcb(INT64 a1, _QWORD *a2, CHAR a3){
UINT64 *v3;
unsigned __int8 v7;
unsigned __int64 v8;
CHAR v9;
_QWORD *v10;
v3 = (UINT64 *)(a1 + 176);
KeAcquireSpinLockRaiseToDpc((UINT64 *)(a1 + 176), (UINT64)a2);
v8 = v7;
if( *(_BYTE *)(a1 + 216) )
{
v9 = 0;
if( !a3 )
{
v10 = *(_QWORD **)(a1 + 192);
if( *v10 != a1 + 184 )
__fastfail(3u);
*a2 = a1 + 184;
a2[1] = v10;
*v10 = a2;
*(_QWORD *)(a1 + 192) = a2;
}
}
else
{
v9 = 1;
*(_BYTE *)(a1 + 216) = 1;
}
KxReleaseSpinLock(v3);
__writecr8(v8);
return v9;
}Referenced by:
HalpAllocateAdapterChannel