[OpenAFS-devel] Windows Loopback Adapter, revisited

Chaskiel M Grundman cg2v@andrew.cmu.edu
Sat, 23 Nov 2002 14:41:24 -0500


--On Thursday, November 21, 2002 15:59:38 -0600 "Lantzer, Ryan" 
<lantzer@umr.edu> wrote:


> Unfortunately, the same unattend file that installed the loopback adapter
> in Windows 2000 would not install a loopback adapter in Windows XP.
I *suspect* that this is because netloop.sys isn't signed. I have not yet
tried to install the loopback adapter "in the background", I've always run
the devcon-like app I wrote from a CMD prompt, and have had to deal with
the "unsigned driver" dialog popping up every time.

> I tried to follow the directions you have given for attaching the AFS
> Client to ONLY the loopback adapter on Windows XP, but I had trouble
> determining the LANA number of the loopback device.
There are a couple of ways, I most like the recent post that matches the
MAC address of a scanned lana number with the constant one that the loopback
adapter uses....
All the other ways of doing it I know of involve using the values in the
registry key HKLM\SYSTEM\CurrentControlSet\Services\NetBIOS\Linkage to map
a network device "name" (or guid) to a lana number*.

> were to bind only to the loopback adapter, if it is present. If the
> loopback adapter isn't present, then the default behavior [...]
> If we can bind the SMB server for the AFS Client ONLY to the loopback
> adapter, then we might be able to register the name "AFS" [...]
While both of these things sound like nice things to do, they can't be
combined without making things somewhat more nondeterministic than I think
 is good. I would suggest that the best long-term course of action is
 probably to register the "AFS" name as you suggest and make afsd fail
 if it cannot find a loopback adapter to bind to.



* the multi-string list in the "Bind" value is in the same order as the
list of two byte values in the "LanaMap" value, the first byte is a
bitmask. 0x1 means that the entry is valid.  the second byte is the
lana number. One way of getting the guids is to enumerate the keys under
HKLM\SYSTEM\CurrentControlSet\Control\Class\{4D36E972-E325-11CE-BFC1-08002b
e10318}. each subkey is a real or virtual network adapter. the relevant 
guid to
use when looking in the NetBIOS linkage can be found in the RootDevice
value in the Linkage subkey of a particular adapter. (Since I know that
wasn't clear, here's an example: 
HKLM\SYSTEM\CurrentControlSet\Control\Class\{4D36E972-E325-11CE-BFC1-08002b
e10318} \0000\Linkage) Not all subkeys will have a RootDevice value. Those 
can
be ignored.