CoCreateGuid

Windowsで使われている技術の中にコンポーネントオブジェクトモデル(COM)というものがある。オブジェクトが提供するサービスをインターフェイスとして表して他のアプリケーションからの利用を容易にする技術だ。
オブジェクトやインターフェイスを一意的にあらわすためにはGUIDと呼ばれるIDが割り振られる。このGUIDの生成にはCoCreateGuidというAPIが使える。MS製の開発環境に含まれるguidgenというツールでIDを生成することができる。
私が気になるのはこのGUIDの生成方法だ。一意性を確保するためにMACアドレス+日付+乱数をハッシングするらしい。だとすると、あるCOMオブジェクトが特定のマシンで作られたかどうかを調べることが可能なんじゃないかと思った。昔のWindowsの仕様では下12桁はMACアドレスをそのまま使っていたそうだけど、改良されたというWindows2000以降のGUID資料を探索中。