I have written a (Delphi) program to extract the MAC address of the ethernet card.
The old (albeit non-standard) way to get this info was extracting it from an UUID created with UuidCreate.
At a certain point, Microsoft realized that putting a MAC address in the UUID was a privacy breach, and changed the UuidCreate function NOT to include the MAC Address. The old function was renamed to UuidCreateSequantial. This means that to get the MAC Address on old OSes you should call UuidCreate, while on newer OSes you should call UuidCreateSequential.
According to msdn, the shift was done with Windows 2000
BUT, the fact is that on some WinMe machines I get rubbish results (always changing) calling UUIDCreate
Also, I found this (russian) page where it seems that on WinMe you should call UuidCreateSequential:
We get to the question:
Does anyone know if UuidCreateSequential is defined under WinME?
Alternatively, I have written a small Delphi program that allows you to test. You can download it from
You should run it under WinME (ON A PC WITH A NETWORK CARD!!) with and without the "Use UuidCreateSequential" option and post here the results. Better if several times, to see if the results are consistent.
If (with the option checked) you get an error "Read of address FFFFFF" this means that UuidCreateSequential is not defined.