ViSwap
UINT64 __stdcall ViSwap(VOID **MapRegisterBase, _MDL **Mdl, VOID **CurrentVa){
_MAP_REGISTER_FILE *MapRegisterFile;
VOID **v7;
VOID *MdlBufferSa;
__int16 v9;
UINT64 MapRegisterNumber;
LODWORD(MapRegisterNumber) = 0;
MapRegisterFile = ViGetMapRegisterFile(*MapRegisterBase);
if( !MapRegisterFile )
return 0i64;
MdlBufferSa = ViGetMdlBufferSa((ULONG_PTR)*Mdl, *v7);
if( !MdlBufferSa || !ViFindMappedRegisterInFile(MapRegisterFile, MdlBufferSa, &MapRegisterNumber) )
return 0i64;
*Mdl = (_MDL *)*((_QWORD *)MapRegisterFile + 7);
*CurrentVa = (VOID *)(*(_QWORD *)(*((_QWORD *)MapRegisterFile + 7) + 32i64)
+ (unsigned int)((_DWORD)MapRegisterNumber << 12)
+ *(unsigned int *)(*((_QWORD *)MapRegisterFile + 7) + 44i64)
+ (unsigned __int64)(v9 & 0xFFF));
*MapRegisterBase = (VOID *)*((_QWORD *)MapRegisterFile + 6);
return 1i64;
}Referenced by:
VfBuildScatterGatherList
VfFlushAdapterBuffers
VfGetScatterGatherList
VfMapTransfer