I am going to migrate the EDA software environment from Windows NT to Linux but I have still some software components requireing Windows. That's why I use Wine. I own and use some software packages licensed to a valid MAC address (flexlm MAC based license) and the corresponding NIC is present in the Linux system.
Using wine-20010824 I get the following message:
fixme:win32:DeviceIoControl Unimplemented control 256 for VxD device VNETBIOS
Given what you said above I wouldn't be entirely suprised if control 256 of VNETBIOS return the MAC address.
However...
I scanned the Web resources and studied the file 'win32/device.c' a little bit but I got no answers to my questions. Is there already a solution/implementation for this service? I am also ready to contribute (at least I hope I'm able to do so and it would be fun ;-) but I need some advice (docus, especially related to the VNETBIOS VxD and some general hints).
... documentation for VxD:s is virtually non existant.
Find out how VxD:s work generally involves low level reverse engineering.
I'm looking forward for any hints.
Hmm. Reading MSDN...
There is a DLL called NETAPI32.DLL that is not currentlu implemented in Wine that has a function Netbios that possible calls the VNETBIOS VxD.
Perhaps implementing this DLL in Wine would help at least it would be better than trying the figure out what the VNETBIOS VxD does.
The function Netbios in NETAPI32.DLL is at least documented.
Hmm. Reading some more...
Netbios has a command NCBASTAT that retreives the adapter status in a structure called ADAPTER_STATUS that has a field:
UCHAR adapter_address[6]; // Specifies encoded address of the adapter.
This might be the MAC address.
Implementing this in Wine wouldn't be that hard. If Linux provides a way to get the MAC that is.
I assume Linux does but I don't know how. Does anybody else know?
in linux you can find it in /proc/net/arp, but i don't know if there's a more portable way. Maybe check ifconfig source?
Bobby Bingham
On Thu, Oct 18, 2001 at 12:21:35PM +0200, Patrik Stridvall wrote:
I am going to migrate the EDA software environment from Windows NT to Linux but I have still some software components requireing Windows. That's why I use Wine. I own and use some software packages licensed to a valid MAC address (flexlm MAC based license) and the corresponding NIC is present in the Linux system.
Using wine-20010824 I get the following message:
fixme:win32:DeviceIoControl Unimplemented control 256 for VxD device VNETBIOS
Given what you said above I wouldn't be entirely suprised if control 256 of VNETBIOS return the MAC address.
However...
I scanned the Web resources and studied the file 'win32/device.c' a little bit but I got no answers to my questions. Is there already a solution/implementation for this service? I am also ready to contribute (at least I hope I'm able to do so and it would be fun ;-) but I need some advice (docus, especially related to the VNETBIOS VxD and some general hints).
... documentation for VxD:s is virtually non existant.
Find out how VxD:s work generally involves low level reverse engineering.
I'm looking forward for any hints.
Hmm. Reading MSDN...
There is a DLL called NETAPI32.DLL that is not currentlu implemented in Wine that has a function Netbios that possible calls the VNETBIOS VxD.
Perhaps implementing this DLL in Wine would help at least it would be better than trying the figure out what the VNETBIOS VxD does.
The function Netbios in NETAPI32.DLL is at least documented.
Hmm. Reading some more...
Netbios has a command NCBASTAT that retreives the adapter status in a structure called ADAPTER_STATUS that has a field:
UCHAR adapter_address[6]; // Specifies encoded address of the adapter.
This might be the MAC address.
Implementing this in Wine wouldn't be that hard. If Linux provides a way to get the MAC that is.
I assume Linux does but I don't know how. Does anybody else know?
On Thu, Oct 18, 2001 at 12:21:35PM +0200, Patrik Stridvall wrote:
Hmm. Reading MSDN...
There is a DLL called NETAPI32.DLL that is not currentlu implemented in Wine that has a function Netbios that possible calls the VNETBIOS VxD.
Perhaps implementing this DLL in Wine would help at least it would be better than trying the figure out what the VNETBIOS VxD does.
The function Netbios in NETAPI32.DLL is at least documented.
Well, provided that the program actually called into NETAPI32 and not directly into VNETBIOS...
Hmm. Reading some more...
Netbios has a command NCBASTAT that retreives the adapter status in a structure called ADAPTER_STATUS that has a field:
UCHAR adapter_address[6]; // Specifies encoded address of the adapter.
This might be the MAC address.
You could bet that it is, given that it's 6 bytes long, just like a MAC address.
Implementing this in Wine wouldn't be that hard. If Linux provides a way to get the MAC that is.
I assume Linux does but I don't know how. Does anybody else know?
Huh ? Well, of course ifconfig eth0 gives it as the "HWaddr" field. I guess you might want to read ifconfig source in order to find out where it gathers HWaddr from...
On Thu, 18 Oct 2001 12:21:35 +0200, you wrote:
UCHAR adapter_address[6]; // Specifies encoded address of the adapter.
This might be the MAC address.
Implementing this in Wine wouldn't be that hard. If Linux provides a way to get the MAC that is.
I assume Linux does but I don't know how. Does anybody else know?
Wine already does that, see UuidCreate()
Rein.
On Thu, 18 Oct 2001, Patrik Stridvall wrote:
I'm looking forward for any hints.
Hmm. Reading MSDN...
There is a DLL called NETAPI32.DLL that is not currentlu implemented in Wine that has a function Netbios that possible calls the VNETBIOS VxD.
Perhaps implementing this DLL in Wine would help at least it would be better than trying the figure out what the VNETBIOS VxD does.
The function Netbios in NETAPI32.DLL is at least documented.
Hmm. Reading some more...
Netbios has a command NCBASTAT that retreives the adapter status in a structure called ADAPTER_STATUS that has a field:
UCHAR adapter_address[6]; // Specifies encoded address of the adapter.
This might be the MAC address.
Implementing this in Wine wouldn't be that hard. If Linux provides a way to get the MAC that is.
I assume Linux does but I don't know how. Does anybody else know?
Using an ioctl(). SIOCGIFHWADDR (Get InterFace HardWare ADDRess). If you look in the source for ifconfig, that should show you how it's done in more detail, but here's an overview:
First, run through calling access() on the /proc/net entries. Once you find one which succeeds, create a socket using that protocol (IPX in this case), and call ioctl(fd,SIOCGIFHWADDR,buffer*).
I'll do a simple implementation later today, if nobody already has one?
James.