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

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

GUIDを生成するツールとして、Microsoft Windows SDKに付属する GuidGen [1]などがある。GuidGenはMicrosoft Visual Studioのメニューから呼び出すこともできる。Windows APIにはCoCreateGuid()関数[2]およびUuidCreate()関数[3]が用意されている。.NET FrameworkにはSystem.Guid.NewGuid()メソッドが用意されている[4]

構造

編集

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

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

<guiddef.h> におけるGUID構造体の定義は以下のとおり[5]

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桁の構造を持つ。

  1. Data1:3F2504E0(8桁)
  2. ハイフン
  3. Data2:4F89(4桁)
  4. ハイフン
  5. Data3:11D3(4桁)
  6. ハイフン
  7. Data4 の最初の2アイテム:9A0C(4桁)
  8. ハイフン
  9. Data4 の残りの6アイテム:0305E82C3301(12桁)

波括弧 (ブレース) で囲んで表記することも多い。

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

使用例

編集

脚注

編集

外部リンク

編集