This is close. It is important to understand site awareness and closeness
will work with a non-Microsoft DNS server.
When DsGetDCName is called, Netlogon will determine what site the client is
in. It queries DNS for DCs that are either in that site or cover that site.
It then udp ldap query/"pings" the DCs that are returned by DNS. It
respects weight and priority settings when choosing the order. It uses the
response time + data the DC returns to determine which DC for DsGetDCName to
return. When a DC's netlogon is registering DNS SRV records it registers
records for the site it is in. It may also determine it should register
records for a "close" site that doesn't have a DC in it. Close in this case
is determined by sitelink costs between sites. So when the client queries
for a DC in a site that has no DCs, one of these close DCs will be returned
as it registered a site based DNS record for the site with no DC in it.
"Name Resolution in Active Directory" chapter of the Distributed Systems
Guide of the Windows 2000 Server Resource Kit describes the DNS records AD
registers and how DC location is performed.
http://www.microsoft.com/windows2000/techinfo/reskit/en-us/distrib/dsbc_nar_jevl.asp?frame=true
provides details and examples of the above.
Jason