rem: struct ResourceContext* ctx )
add: struct MinList*          conflicts, struct ResourceContext*  ctx )
context: ResetResourceIterator( struct ResourceIterator* iter,                       struct ResourceContext* ctx ){  switch( iter->m_Resource->m_Type )  {    case ISAPNP_NT_IRQ_RESOURCE:    {      struct ISAPNP_IRQResource* r;      r = (struct ISAPNP_IRQResource*) iter->m_Resource;      iter->m_IRQBit = 0;            while( iter->m_IRQBit < 16 )      {        if( r->m_IRQMask & ( 1 << iter->m_IRQBit ) )        {          if( LockResource( iter, ctx ) )          {            return TRUE;          }        }        ++iter->m_IRQBit;      }      break;    }    case ISAPNP_NT_DMA_RESOURCE:    {      struct ISAPNP_DMAResource* r;      r = (struct ISAPNP_DMAResource*) iter->m_Resource;      iter->m_ChannelBit = 0;            while( iter->m_ChannelBit < 8 )      {        if( r->m_ChannelMask & ( 1 << iter->m_ChannelBit ) )        {          if( LockResource( iter, ctx ) )          {            return TRUE;          }        }        ++iter->m_ChannelBit;      }      break;    }    case ISAPNP_NT_IO_RESOURCE:    {      struct ISAPNP_IOResource* r;            r = (struct ISAPNP_IOResource*) iter->m_Resource;      iter->m_Base   = r->m_MinBase;      iter->m_Length = r->m_Length;      while( iter->m_Base <= r->m_MaxBase )      {        if( LockResource( iter, ctx ) )        {          return TRUE;        }        iter->m_Base = r->m_MaxBase + r->m_Alignment;      }      break;    }    case ISAPNP_NT_MEMORY_RESOURCE:    default:      return FALSE;      break;  }  return FALSE;}