IopRemovePageDumpRange
NTSTATUS __stdcall IopRemovePageDumpRange(_KBUGCHECK_REMOVE_PAGES *RemovePages, UINT8 *ContinueProcessing){
int Flags;
NTSTATUS result;
UINT8 v5;
unsigned __int64 Count;
unsigned __int64 Address;
int v8;
__int64 v9;
__int64 v10[2];
__int128 Context;
__int128 v12;
__int128 v13;
Context = 0i64;
v12 = 0i64;
v13 = 0i64;
if( ContinueProcessing )
*ContinueProcessing = 0;
Flags = RemovePages->Flags;
if( (Flags & 0x7FFFFFFC) != 0 )
return -1073741582;
if( Flags >= 0 )
{
v5 = 0;
}
else
{
Flags &= ~0x80000000;
v5 = 1;
RemovePages->Flags = Flags;
}
if( ((Flags - 1) & Flags) != 0 )
return -1073741811;
Count = RemovePages->Count;
if( !Count )
return 0;
Address = RemovePages->Address;
v8 = Flags & 1;
if( !v8 )
Address >>= 12;
v9 = *(_QWORD *)(qword_140C50960 + 8i64);
v10[0] = *(_QWORD *)(v9 + 48);
v10[1] = v9 + 56;
*(_QWORD *)&v12 = v10;
IoFreeDumpRange((_MM_KERNEL_DUMP_CONTEXT *)&Context, (VOID *)Address, Count, 2 * (v8 ^ 1u));
if( result >= 0 )
{
if( ContinueProcessing )
*ContinueProcessing = v5;
}
return result;
}Referenced by:
IopDumpCallRemovePagesCallbacks