MiValidateControlAreaPartition
NTSTATUS __stdcall MiValidateControlAreaPartition(INT64 a1, INT64 a2){
_MI_PARTITION *v2;
_MI_PARTITION **v3;
int v5;
v2 = *(_MI_PARTITION **)(*(&stru_140C4DB30 + 267) + 8i64 * (*(_WORD *)(a2 + 60) & 0x3FF));
v3 = *(_MI_PARTITION ***)(a1 + 176);
if( !v3 )
{
if( (*(_BYTE *)(a2 + 62) & 1) != 0 )
{
if( v2 == *(_MI_PARTITION **)(*(&stru_140C4DB30 + 267)
+ 8i64 * KeGetCurrentThread()->ApcState.Process->Vm.Instance.PartitionId) )
return 0;
if( (*(_DWORD *)a1 & 1) == 0 )
{
v5 = *(_DWORD *)a1 | 0x1000000;
LABEL_9:
*(_DWORD *)a1 = v5;
return -1073740682;
}
}
else if( v2 == &Irp )
{
return 0;
}
if( (*(_DWORD *)a1 & 0x2000000) != 0 )
return 0;
v5 = *(_DWORD *)a1 | 0x2000000;
goto LABEL_9;
}
if( *v3 == v2 && (((unsigned __int8)(*(_DWORD *)a1 >> 23) ^ *(_BYTE *)(a2 + 62)) & 1) == 0 )
return 0;
*(_DWORD *)a1 |= 0x1000000u;
return -1073740682;
}Referenced by:
MiReferenceControlArea
MiReferenceExistingControlArea
MiShareExistingControlArea