6.7 .rsrcセクション

リソースには複数レベルの二分木構造によってインデックスが付けられます。一般的な設計では2**31レベルを含めることができます。しかし、規約により、Windows NTは3レベルを使用します。

一連のリソース ディレクトリ テーブルは、すべてのレベルを以下のような方法で関係させます。各ディレクトリ テーブルの後には、一連のディレクトリ エントリが続き、これはそのレベル(型、名前、または言語レベル)の名前またはIDおよびデータ記述または別のディレクトリ テーブルのアドレスを与えます。データ記述が指し示されている場合には、データはツリーのリーフです。別のディレクトリ テーブルが指し示されている場合には、そのテーブルが1つ下のレベルのディレクトリ エントリのリストを示します。

リーフの型、名前、および言語IDはディレクトリを通じてリーフに達するパスによって決定されます。最初のテーブルは型IDを決定し、2番目のテーブル(最初のテーブルのディレクトリエントリによって示される)は名前IDを決定し、3番目のテーブルは言語IDを決定します。

.rsrc セクションの一般的な構造を示します。

データ 解説
Resource Directory Tables
(および Resource Directory Entries)
一連のテーブル。ツリー中のノードのグループにつき1つ。すべてのトップ レベル(型)ノードは最初のテーブルにリストされています。このテーブルのエントリは、2番目のレベルのテーブルを指します。2番目のレベルのツリーはそれぞれ同じ型識別子を持ちますが、別々の名前識別子を持ちます。3番目のレベルのツリーは同じ型および名前の識別子を持ちますが、異なる言語識別子を持ちます。

各テーブルの直後には、ディレクトリ エントリが続きます。各エントリは1)名前または数値識別子、および2)データ記述または1つ下のレベルのテーブルへのポインタを含みます。

Resource Directory Strings 2バイト境界に合わせられたUnicode(tm) 文字列で、ディレクトリ エントリによって指し示される文字列データとして使われます。
Resource Data Description テーブルによって指し示されるレコードの配列で、リソース データの実際のサイズと位置を記述します。これらのレコードはリソース記述ツリーのリーフです。
Resource Data リソース セクションの生データ。リソース データ記述内のサイズおよび場所の情報で、リソース データの個々のリージョンを区切ります。


戻る