MiNodeFreeZeroPages

NTSTATUS __stdcall MiNodeFreeZeroPages(_MI_NODE_INFORMATION *NodeInformation, UINT64 Channel, UINT64 Flags){
  __int64 v3; 
  volatile unsigned __int64 *FreeCount; 
  __int64 v5; 
  __int64 v6; 
  _MMLISTS v7; 
  __int64 v8; 
  int v9; 
  volatile unsigned __int64 *v11; 
  __int64 v12; 
  __int64 v14; 

  v3 = (unsigned int)Channel;
  FreeCount = NodeInformation->FreeCount;
  v5 = ((unsigned int)~(_DWORD)Flags >> 1) & 1;
  v6 = 0i64;
  v7 = ZeroedPageList;
  v8 = 0i64;
  v9 = Flags & 0x1000;
  do
  {
    if( (unsigned int)MmNumberOfChannels > 1 )
      v11 = &NodeInformation->ChannelFreeCount[v3][v8];
    else
      v11 = FreeCount;
    v6 += *v11;
    v12 = v6;
    if( v9 )
    {
      LODWORD(v14) = MiNodeLargeFreeZeroPages(NodeInformation, (unsigned int)v3, v7);
      v6 = v12 + v14;
    }
    ++v7;
    ++v8;
    ++FreeCount;
  }
  while( v8 <= v5 );
  return v6;
}

Referenced by:

MiDemoteLocalLargePage
MiFreeZeroPageSlistSufficient
MiPruneStandbyPages
MiRebalanceZeroFreeLists
MiRebuildLargePage
MiRebuildLargePages
MiReplenishPageSlist
MiSignalLargePageRebuild