Windows: What is CLSID GUID UUID
Windows NTUSER.DAT CLSID
On Microsoft Windows you see filenames like this
{838f9f38-f241-11de-a663-002421597a5c}
For example, in my home directory:
What are those strings?
CLSID = Globally Unique Identifier
That string is basically just a ID string. It is 32 digits of Hexadecimal Number.
So, the total possible such string is 16^32, which is 340282366920938463463374607431768211456 or approximately 10^39.
It is written in blocks separated by hyphen, then enclosed by curly brackets.
12345678 1234 1234 1234 123456789012 {C97FCC79-E628-407D-AE68-A06AD6D8B4D1} 8 4 4 4 12
Here's a quote from Wikipedia Globally unique identifier:
Microsoft Windows uses GUIDs internally to identify the classes and interfaces of COM objects. A script can activate a specific class or object without having to know the name or location of the dynamic linked library that contains it.
Quote from Microsoft 2.5.5 Globally Unique Identifiers (GUIDs) At http://msdn.microsoft.com/en-us/library/cc246025%28v=PROT.13%29.aspx:
In Microsoft Windows® programming and in Windows operating systems, a globally unique identifier (GUID), as specified in [RFC4122], is a 128-bit value that is a binary unique identifier (ID) for a specific entity. The term universally unique identifier (UUID) is sometimes used in Windows protocol specifications as a synonym for GUID.
CLSID = UUID = Universally Unique Identifier
Microsoft CLSID is just a different name for the scheme known as UUID (Universally Unique Identifier). The essence is that it's just a sequence of 32 hexadecimal digits, generated randomly, used to assign a ID to items.
Second Life UUID
It's used in Second Life too. In Second Life, every “agent” (that is, every account in Second Life), has a UUID, and every item you see in Second Life has a UUID (For example, images (aka textures), objects (prims), sounds, animation files). For example, here's a LSL code excerpt:
key pSprite = "1f9e3064-47e1-87bd-1b82-20638ae6e36e"; // particle image. updateParticle() { // make particle, with burstrate and sprite age depending on avatar speed float speed = llVecMag(llGetVel()); if (speed < 1.) { bRate = 1.; pAge = 1.2; } else { bRate = distBetweenCrumb/speed; pAge = trailLength / speed; } partyOn ( pPtrn, beginColor, endColor, bRate, pAge, (key)pSprite, startScale, endScale, changeOrientationQ ); }