com port selection

Is there a general description somewhere about whatever the com port negotiation/selection process is ?
My particular situation deals with Win7 and Mega2560 and Micro boards but from the forum comments
it seems to be a general problem but all the solutions seem to be fiddles/reloads/restarts. What is actually
supposed to happen between the Arduino and the PC operating system and why does tools/port selection get greyed-out????

The IDE has no clue whether there is an Arduino connected to a given serial port. There is something at a given port that has the potential to be an Arduino.

So, the IDE makes a list of all the ports that have the potential to be an Arduino.

An empty list means that there is nothing to select, so having the ability to select nothing is silly, to the Tools + Port menu item is made unavailable.