KiFindFirstAvailableNode

NTSTATUS __stdcall KiFindFirstAvailableNode(UINT16 *Node){
  unsigned __int16 v1; 
  unsigned __int16 v2; 
  _KNODE *v3; 
  unsigned __int16 *v4; 

  v1 = KeNumberNodes;
  v2 = 0;
  if( !KeNumberNodes )
    return -1073741275;
  while( 1 )
  {
    v3 = (_KNODE *)KeNodeBlock[v2];
    if( (v3->Flags._bf_0 & 2) != 0 && !KiIsNodeFull(v3) )
      break;
    if( ++v2 >= v1 )
      return -1073741275;
  }
  *v4 = v2;
  return 0;
}

Referenced by:

KiQueryProcessorNode