NtExtendSection
NTSTATUS __stdcall NtExtendSection(PVOID SectionHandle, LARGE_INTEGER *NewSectionSize){
KPROCESSOR_MODE v4;
NTSTATUS result;
__int64 v6;
PVOID SectionToExtend;
NTSTATUS v8;
UINT64 NewSectionSizea;
NewSectionSizea = 0i64;
v4 = *((_BYTE *)KeGetCurrentThread() + 562);
if( v4 )
{
if( ((unsigned __int8)NewSectionSize & 3) != 0 )
ExRaiseDatatypeMisalignment();
v6 = 0x7FFFFFFF0000i64;
if( (unsigned __int64)NewSectionSize < 0x7FFFFFFF0000i64 )
v6 = (__int64)NewSectionSize;
*(_BYTE *)v6 = *(_BYTE *)v6;
*(_BYTE *)(v6 + 7) = *(_BYTE *)(v6 + 7);
NewSectionSizea = NewSectionSize->QuadPart;
}
else
{
NewSectionSizea = NewSectionSize->QuadPart;
}
SectionToExtend = 0i64;
result = ObReferenceObjectByHandle(SectionHandle, 0x10u, MmSectionObjectType, v4, &SectionToExtend, 0i64);
if( result >= 0 )
{
v8 = MmExtendSection(SectionToExtend, &NewSectionSizea, 0i64);
HalPutDmaAdapter((PADAPTER_OBJECT)SectionToExtend);
NewSectionSize->QuadPart = NewSectionSizea;
return v8;
}
return result;
}Referenced by:
No references.