HalpGrowMapBufferWorker
void __fastcall HalpGrowMapBufferWorker(void *Context){
PHYSICAL_ADDRESS *v2;
int v3;
unsigned __int8 CurrentIrql;
int v5;
v2 = (PHYSICAL_ADDRESS *)*((_QWORD *)Context + 4);
v3 = (*((_DWORD *)Context + 11) + 16) & 0xFFFFF;
if( *((_BYTE *)Context + 40) )
HalpDmaGrowScatterMapBuffers(v2, v3);
else
HalpDmaGrowContiguousMapBuffers((__int64)v2, v3);
*(_DWORD *)((char *)&HalpDmaGrowMapBufferWorkerQueued + (*((_BYTE *)Context + 40) != 0 ? 4 : 0)) = 0;
CurrentIrql = KeGetCurrentIrql();
__writecr8(2ui64);
v5 = *((_DWORD *)Context + 12);
if( v5 == 2 )
{
HalpDmaProcessMapRegisterQueueV2((__int64)v2, *((_BYTE *)Context + 40));
}
else if( v5 == 3 )
{
HalpDmaProcessMapRegisterQueueV3((__int64)v2, *((_BYTE *)Context + 40));
}
__writecr8(CurrentIrql);
ExFreePoolWithTag(Context, 0);
}Referenced by:
No references.