GUID

GUID () またはグローバル一意識別子（ぐろーばるいちいしきべつし）は、UUIDの実装のひとつ、あるいは（事実上）UUIDの別名である。

UUIDのマイクロソフトによる実装を指すと解されることもあるが、オラクルのデータベースやNetIQのeDirectory（ディレクトリ・サービス）、GUIDパーティションテーブルなど、ほぼUUIDを指して、GUIDの語が使われることもある。

GUIDを生成するツールとして、Microsoft Windows SDKに付属する GuidGen Generate GUID using guidgen.exe – Syed's Blogなどがある。GuidGenはMicrosoft Visual Studioのメニューから呼び出すこともできる。Windows APIにはCoCreateGuid()関数CoCreateGuid function (combaseapi.h) | Microsoft DocsおよびUuidCreate()関数UuidCreate function (rpcdce.h) | Microsoft Docsが用意されている。.NET FrameworkにはSystem.Guid.NewGuid()メソッドが用意されているGuid.NewGuid Method (System) | Microsoft Docs。

 構造 
GUID は16バイト (128ビット) の2進数値で、以下のような構造体で表現される。

 GUID STRUCT
  Data1 dd
  Data2 dw
  Data3 dw
  Data4 db 8
 GUID ENDS

<guiddef.h> におけるGUID構造体の定義は以下のとおりGUID | Microsoft Docs。

typedef struct _GUID {
    unsigned long  Data1;
    unsigned short Data2;
    unsigned short Data3;
    unsigned char  Data4[8];
} GUID;
Microsoft Windowsでは16ビット/32ビット/64ビットいずれのターゲットプラットフォーム（CPUアーキテクチャ）においても、short型は常に16ビットであり、long型は常に32ビットである。

 テキスト表記 
GUIDの表記には一般に以下のような16進表記が使われる。

3F2504E0-4F89-11D3-9A0C-0305E82C3301

このテキスト表記は以下のような32桁の構造を持つ。

 Data1：3F2504E0(8桁)
 ハイフン
 Data2：4F89(4桁)
 ハイフン
 Data3：11D3(4桁)
 ハイフン
 Data4 の最初の2アイテム：9A 0C(4桁)
 ハイフン
 Data4 の残りの6アイテム：03 05 E8 2C 33 01(12桁)

波括弧 (ブレース) で囲んで表記することも多い。
{3F2504E0-4F89-11D3-9A0C-0305E82C3301}

 使用例 

 COMで用いられているオブジェクト識別のためのクラスID、インターフェイスIDなど。
 MSBuildで用いられているプロジェクトIDなど。

 脚注 

 外部リンク 
 Microsoft,GuidGenのダウンロードサイト
 GuidGen

Category:識別子