views:

53

answers:

2

Hi,

I have a software that runs over 2 000 computers on my company, without any issues.

This software, at some time, generate a GUID (or UUID) using UuidCreateSequential() (MSDN link).

The call usually returns RPC_S_OK on every computer. But on one of them, it always returns RPC_S_UUID_LOCAL_ONLY.

The documentation states that:

The UuidCreateSequential function returns RPC_S_UUID_LOCAL_ONLY when the originating computer does not have an ethernet/token ring (IEEE 802.x) address.

However, there seem to be no networking issues with this computer. It has a network card with both valid and unique MAC address and IP address, and it is working perfectly.

What else could cause UuidCreateSequential() to always return RPC_S_UUID_LOCAL_ONLY ? Have you ever experienced a similar situation ?

I this can help, the computer which has the issues runs an updated Windows XP, with Service Pack 3.

+1  A: 

Perhaps its a security issue, is the user making the call an Administrator? If not, the NIC driver may be failing to supply the MAC address.

As long as the UUID is used for something local to that machine, then accepting this error as a valid result may be OK.

If the UUID must be guaranteed globally unique (e.g. asset registration) then asking another box (e.g. the registration server) might be a better idea.

devstuff
Thanks for your answer (and for the typo-fix ;) !). Unfortunately, the UUID must be globally unique and I can't change the software (at least, not too much) and make it ask another box for an UUID.I wonder why this is only happening on one computer.
ereOn
Does this machine have a different NIC and/or driver version to the other working machines? In that case, try uninstalling the NIC driver, rebooting, and when the NIC is re-detected using the manufacturer's version instead of the Microsoft one (or vice versa).
devstuff
+1  A: 

I contacted Microsoft and it seems that bug occurs only on Windows XP, when the first byte of the MAC address is superior or equal to 0x80.

This has been fixed for Windows Vista and Windows Seven. It won't be fixed for Windows XP.

ereOn