忘れるのでメモっておこう。
このところ、レジストリ直接編集なんて久しぶりの作業を頻繁に行う機会がありまして。その中で、設定値の記述方法で引っかかりがちな項目があるのでメモしておきます。
DWORDでの表現
DWORD形式でのレジストリ値の設定は、CPUがデータを取り扱う方式(エンディアン: endian)の違いによって並びが変わります。インテルのx86系CPU、いわゆるPentiumナントカ、やCoreナントカってやつは「リトルエンディアン」という形式。その場合、もともと「12 34 56 78」という数字の並びのデータは「78 56 34 12」と並べる必要があります*1。
従って、BINARY形式(レジストリエディタだと、REG_BINARY)で「00 00 01 00」という設定は、DWORD形式だと「00 01 00 00」になります。
参考情報
マイクロソフトのサイトに公式に記載されていますね。
- Registry Value Types/Windows Dev Center
- https://msdn.microsoft.com/en-us/library/windows/desktop/ms724884(v=vs.85).aspx
また、このあたりにも末尾の備考に書いてあります。
- JSI Tip 8407. How does the EditFlags Value Name control a users ability to modify a files association?/Windows IT Pro
- http://windowsitpro.com/windows/jsi-tip-8407-how-does-editflags-value-name-control-users-ability-modify-files-association