A. When SQL Server starts up it "registers" itself with the network. The list of workstations/servers/etc is held in a browser list which is normally maintained by the domain controllers. You can also use the SQLBrowseConnect api.
A client needing a list of resources - in this case SQL Servers - issues NetEnumXXXX commands to get the list back - this is provided by whichever server running as a browser master has the info. For more details on browsing see the NT resource kits.
Some restrictions :-
1. The client side Win32 named pipe Net-Library (DBNMPNTW.DLL) does not
support server enumeration on Windows 9x-based computers. This means you won't see a list from a Win9x client.
2. There is no support for server enumeration with the Multi-Protocol
Net-Library. Any server just running multi-protocol will not be visible.