MmZeroPageWrite
NTSTATUS __stdcall MmZeroPageWrite(
_FILE_OBJECT *FileObject,
_LARGE_INTEGER *FileOffset,
_LARGE_INTEGER *LargeNumberOfBytes,
UINT64 MaximumWriteSize){
LONGLONG QuadPart;
NTSTATUS v5;
unsigned int v6;
NTSTATUS result;
int v10;
QuadPart = LargeNumberOfBytes->QuadPart;
v5 = 0;
v6 = MaximumWriteSize;
if( HIDWORD(LargeNumberOfBytes->QuadPart) )
{
LABEL_5:
v10 = 0;
while( 1 )
{
result = MiZeroPageWrite(FileObject, FileOffset, 0x40000000ui64, v6);
v5 = result;
if( result < 0 )
break;
QuadPart -= 0x40000000i64;
if( (unsigned int)++v10 >= 4 )
{
if( HIDWORD(QuadPart) )
goto LABEL_5;
goto LABEL_2;
}
}
}
else
{
LABEL_2:
if( !(_DWORD)QuadPart )
return v5;
result = MiZeroPageWrite(FileObject, FileOffset, (unsigned int)QuadPart, v6);
v5 = result;
if( result >= 0 )
return v5;
}
return result;
}Referenced by:
CcZeroDataOnDisk
MiZeroPageFile
PopZeroHiberFile