HalpDmaControllerQueryMaxFragments
NTSTATUS __stdcall HalpDmaControllerQueryMaxFragments(INT64 a1, INT64 a2, UINT64 a3){
unsigned int v3;
char v6;
unsigned __int8 CurrentIrql;
UINT64 *v8;
NTSTATUS v9;
v3 = a3;
v6 = 0;
CurrentIrql = KeGetCurrentIrql();
if( CurrentIrql == 15 )
{
v8 = (UINT64 *)(a1 + 168);
}
else
{
CurrentIrql = KeGetCurrentIrql();
__writecr8(*(unsigned __int8 *)(a1 + 176));
v8 = (UINT64 *)(a1 + 168);
KxAcquireSpinLock((UINT64 *)(a1 + 168));
v6 = 1;
}
v9 = (*(__int64(__fastcall **)(_QWORD, _QWORD, _QWORD))(a1 + 96))(
*(_QWORD *)(a1 + 64),
*(unsigned int *)(a2 + 372),
v3);
if( v6 )
{
KxReleaseSpinLock(v8);
__writecr8(CurrentIrql);
}
return v9;
}Referenced by:
HalMapTransferEx