GUID (英: Globally Unique Identifier) またはグローバル一意識別子(ぐろーばるいちいしきべつし)は、UUIDの実装のひとつ、あるいは(事実上)UUIDの別名である。
UUIDのマイクロソフトによる実装を指すと解されることもあるが、オラクルのデータベースやNetIQのeDirectory(ディレクトリ・サービス)、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]。
CoCreateGuid()
UuidCreate()
System.Guid.NewGuid()
GUID は16バイト (128ビット) の2進数値で、以下のような構造体で表現される。
GUID STRUCT Data1 dd Data2 dw Data3 dw Data4 db 8 GUID ENDS
<guiddef.h> におけるGUID構造体の定義は以下のとおり[5]。
GUID
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ビットである。
short
long
GUIDの表記には一般に以下のような16進表記が使われる。
3F2504E0-4F89-11D3-9A0C-0305E82C3301
このテキスト表記は以下のような32桁の構造を持つ。
3F2504E0
4F89
11D3
9A 0C
03 05 E8 2C 33 01
波括弧 (ブレース) で囲んで表記することも多い。
{3F2504E0-4F89-11D3-9A0C-0305E82C3301}
この項目は、コンピュータに関連した書きかけの項目です。この項目を加筆・訂正などしてくださる協力者を求めています(PJ:コンピュータ/P:コンピュータ)。