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