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.