HalpDmaAllocateTranslationBuffer
_HALP_DMA_TRANSLATION_BUFFER *__stdcall HalpDmaAllocateTranslationBuffer(
_HALP_ALLOC_CONTEXT *PageCount,
_HALP_DMA_TRANSLATION_BUFFER_POSITION *BufferEnd){
_HALP_ALLOC_CONTEXT *v3;
UINT8 *v4;
UINT8 *v5;
_HALP_ALLOC_CONTEXT *v6;
UINT8 *v7;
_HALP_DMA_TRANSLATION_BUFFER *result;
v4 = HalpMmAllocCtxAlloc(PageCount, 0x18ui64);
if( v4 )
{
v5 = HalpMmAllocCtxAlloc(v3, 0x4000ui64);
v7 = v5;
if( v5 )
{
*(_QWORD *)v4 = 0i64;
*((_DWORD *)v4 + 3) = 0;
memset(v5, 0i64, 0x4000u);
*((_DWORD *)v4 + 2) = 227;
result = (_HALP_DMA_TRANSLATION_BUFFER *)v4;
*((_QWORD *)v4 + 2) = v7;
BufferEnd->Offset = 0;
BufferEnd->Buffer = (_HALP_DMA_TRANSLATION_BUFFER *)v4;
return result;
}
HalpMmAllocCtxFree(v6, v4);
}
return 0i64;
}Referenced by:
HalpDmaInitializeMasterAdapter