DmrConvertDeviceScope
NTSTATUS __stdcall DmrConvertDeviceScope(INT64 a1, _BYTE *a2){
_WORD *v2;
__int16 v4;
unsigned __int16 v5;
VOID *v7;
LODWORD(v2) = 0;
v4 = a1;
if( *a2 == 1 )
{
v5 = (unsigned __int8)a2[1] - 6;
if( (v5 & 1) == 0 )
{
v7 = 0i64;
ExtEnvAllocateMemory(a1, (unsigned int)v5 + 24, (INT64 *)&v7);
v2 = v7;
if( v7 )
{
memset(v7, 0i64, v5 + 24);
*(_DWORD *)v2 = 1;
v2[4] = v4;
*((_BYTE *)v2 + 11) = a2[5];
v2[7] = v5 >> 1;
*((_QWORD *)v2 + 2) = v2 + 12;
memmove(v2 + 12, a2 + 6, v5);
}
}
}
return(int)v2;
}Referenced by:
HalpIvtCreateReservedDevice