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 )
    {
      LOBYTE(result) = MiZeroPageWrite((_KPRCB *)FileObject, (_KWAIT_BLOCK *)FileOffset, 0x40000000i64, (_KTHREAD **)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;
    LOBYTE(result) = MiZeroPageWrite(
                       (_KPRCB *)FileObject,
                       (_KWAIT_BLOCK *)FileOffset,
                       (unsigned int)QuadPart,
                       (_KTHREAD **)v6);
    v5 = result;
    if( result >= 0 )
      return v5;
  }
  return result;
}

Referenced by:

CcZeroDataOnDisk
MiZeroPageFile
PopZeroHiberFile