Windows CLSID GUID UUID
You know how on Windows you see this strings like this {838f9f38-f241-11de-a663-002421597a5c}
?
For example, on my PC, i have these mysterious files generated by Windows Vista right in my home directory:
NTUSER.DAT{838f9f38-f241-11de-a663-002421597a5c}.TM.blf NTUSER.DAT{838f9f38-f241-11de-a663-002421597a5c}.TMContainer00000000000000000001.regtrans-ms NTUSER.DAT{ac2d24f1-7d46-11e0-b16f-002421597a5c}.TM.blf NTUSER.DAT{ac2d24f1-7d46-11e0-b16f-002421597a5c}.TMContainer00000000000000000001.regtrans-ms NTUSER.DAT{bc030bf2-8ab8-11de-a498-002421597a5c}.TM.blf NTUSER.DAT{bc030bf2-8ab8-11de-a498-002421597a5c}.TMContainer00000000000000000001.regtrans-ms NTUSER.DAT{c328fef0-6a85-11db-9fbd-cf3689cba3de}.TxR.0.regtrans-ms NTUSER.DAT{c328fef0-6a85-11db-9fbd-cf3689cba3de}.TxR.blf NTUSER.DAT{c328fef1-6a85-11db-9fbd-cf3689cba3de}.TM.blf NTUSER.DAT{c328fef1-6a85-11db-9fbd-cf3689cba3de}.TMContainer00000000000000000001.regtrans-ms {1142e5c3-9068-44d7-be47-bcc2b55df042} {7f144bc9-70e0-4dac-b227-7cfb808ce5f5} {f145a167-2aa9-4bb1-9128-31bc1537e7bb}
And in my Event Viewer (Control Panel\Administrative Tools\Event Viewer
or %SystemRoot%\system32\eventvwr.msc /s
), for example there's a message:
The application-specific permission settings do not grant Local Launch permission for the COM Server application with CLSID {C97FCC79-E628-407D-AE68-A06AD6D8B4D1} to the user NT AUTHORITY\SYSTEM SID (S-1-5-18) from address LocalHost (Using LRPC). This security permission can be modified using the Component Services administrative tool.
What are those long strings?
CLSID = Globally Unique Identifier
That string is basically just a ID string. It is long because it is meant to be unique, to the degree that a randomly generated string will unlikely to be the same.
It is 32 digits of hexadecimal. So, the total possible such string is 16^32, which is 340282366920938463463374607431768211456 or approximately 10^39. Here's a example:
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 ] [ https://en.wikipedia.org/wiki/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 ] [ https://en.wikipedia.org/wiki/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.
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 ); }