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