GUID
表示
GUID (Globally Unique Identifier) またはグローバル一意識別子(ぐろーばるいちいしきべつし)は、UUIDの実装のひとつ、あるいは(事実上)UUIDの別名である。
UUIDのマイクロソフトによる実装を指すと解されることもあるが、オラクルのデータベースやNetIQのeDirectory(ディレクトリ・サービス)、GUIDパーティションテーブルなど、ほぼUUIDを指して、GUIDの語が使われることもある。
GUIDを生成するツールとして、Microsoft Windows SDKに付属するGuidGenなどがある。Windows APIにはCoCreateGuid()
関数[1]およびUuidCreate()
関数[2]が用意されている。.NET FrameworkにはSystem.Guid.NewGuid()
メソッドが用意されている[3]。
構造
GUID は16バイト (128ビット) の2進数値で、以下のような構造体で表現される。
GUID STRUCT Data1 dd Data2 dw Data3 dw Data4 db 8 GUID ENDS
<guiddef.h> におけるGUID構造体の定義は以下のとおり。
typedef struct _GUID {
unsigned long Data1;
unsigned short Data2;
unsigned short Data3;
unsigned char Data4[8];
} GUID;
Microsoft Windowsでは16ビット/32ビット/64ビットいずれのターゲットプラットフォームにおいても、long
型は常に32ビットである。
テキスト表記
GUIDの表記には一般に以下のような16進表記が使われる。
- 3F2504E0-4F89-11D3-9A0C-0305E82C3301
このテキスト表記は以下のような32桁の構造を持つ。
- Data1 (8桁)
- ハイフン
- Data2 (4桁)
- ハイフン
- Data3 (4桁)
- ハイフン
- Data4 の最初の2アイテム (4桁)
- ハイフン
- Data4 の残りの6アイテム (12桁)
波括弧 (ブレース) で囲んで表記することも多い。
- {3F2504E0-4F89-11D3-9A0C-0305E82C3301}