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
におけるGUID構造体の定義は以下のとおりGUID | Microsoft Docs。
typedef struct _GUID { unsigned long Data1; unsigned short Data2; unsigned short Data3; unsigned char Data4; } 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