6.3.4 エクスポート序数テーブル

エクスポート序数テーブルはエクスポート アドレス テーブルへの16ビット インデックスの配列です。序数はエクスポート ディレクトリ テーブルの序数ベース フィールドによってバイアスがかけられています。いいかえると、序数ベースはエクスポート アドレス テーブルへの真のインデックスを得るために、序数から引かれなければなりません。

エクスポート名ポインタ テーブルとエクスポート序数テーブルは2つの並行する配列を形成し、分割されることによって自然なフィールド アラインメントができるようになっています。これら2つのテーブルは、実質的には1つのテーブルとして働きます。このとき、エクスポート名ポインタ「列」がパブリック(エクスポートされた)名を指し、エクスポート序数「列」がそのパブリック名に対応する序数を与えます。エクスポート名ポインタ テーブルのメンバとエクスポート序数テーブルのメンバは、それぞれの配列で同じ位置(インデックス)を持つことによって関連付けられています。

したがって、エクスポート名ポインタテーブルが探索され、一致する文字列が位置iで見つかるときの、シンボルのアドレスを見つけるためのアルゴリズムは次のようになります。

i = Search_ExportNamePointerTable (ExportName);
ordinal = ExportOrdinalTable [i];
SymbolRVA = ExportAddressTable [ordinal - OrdinalBase];


戻る