HalpGrowMapBufferWorker
VOID __stdcall HalpGrowMapBufferWorker(VOID *Context){
_HALP_DMA_MASTER_ADAPTER_OBJECT *v2;
UINT64 v3;
INT64 v4;
unsigned __int8 CurrentIrql;
int v6;
v2 = (_HALP_DMA_MASTER_ADAPTER_OBJECT *)*((_QWORD *)Context + 4);
v3 = (*((_DWORD *)Context + 11) + 16) & 0xFFFFF;
if( *((_BYTE *)Context + 40) )
HalpDmaGrowScatterMapBuffers(&v2->AdapterObject, v3);
else
HalpDmaGrowContiguousMapBuffers(&v2->AdapterObject, v3);
*(_DWORD *)((char *)&HalpDmaGrowMapBufferWorkerQueued + (*((_BYTE *)Context + 40) != 0 ? 4 : 0)) = 0;
CurrentIrql = KeGetCurrentIrql();
__writecr8(2ui64);
v6 = *((_DWORD *)Context + 12);
if( v6 == 2 )
{
LOBYTE(v4) = *((_BYTE *)Context + 40);
HalpDmaProcessMapRegisterQueueV2(v2, v4);
}
else if( v6 == 3 )
{
LOBYTE(v4) = *((_BYTE *)Context + 40);
HalpDmaProcessMapRegisterQueueV3(v2, v4);
}
__writecr8(CurrentIrql);
ExFreePoolWithTag(Context, 0);
}Referenced by:
No references.