コマンド ラインからの BinPlace の使用

重要: このトピックの例では、BINPLACE_PLACEFILE マクロと BinPlace配置ファイルの使用について説明します。 このマクロとファイルは、Windows Driver Kit の Windows 7 バージョンでは廃止されており、WDK の将来のバージョンではサポートされない可能性があります。

このトピックでは、コマンド ラインから BinPlace を使用する例を示します。

最初に、ルートの宛先ディレクトリを次のように設定できます。

set _NTTREE=d:\ProjectRoot

その後、place ファイルのパスとファイル名を次のように設定できます。

set BINPLACE_PLACEFILE=d:\mystuff\myplacefile.txt

ファイル d:\mystuff\myplacefile.txt の内容を次のようにします。

; This is a simple place file.
commonmodule.dll   retail
application.exe    files\bin
mydriver.sys       *\drivertree
extra.cab          appendix

次のコマンドを使用して BinPlace を実行できるようになりました。

binplace g:\somelocation\extra.cab

extra.cab は実行可能ファイルではないため、BinPlace は移動するだけです。 ルートの宛先ディレクトリは d:\projectroot です。 このファイルのクラス ディレクトリは、付録として place ファイルで指定されています。 ファイルの種類のサブディレクトリは cab (移動するファイルのファイル名拡張子) です。 したがって、このファイルは d:\projectroot\appendix\cab\extra.cab の場所にコピーされます。

次に、実行可能ファイルとそのシンボル ファイルで BinPlace を使用します。 これを行うには、実行可能ファイル名を指定します。BinPlace は、関連付けられているシンボル ファイルを検索します。

実行可能ファイル名を BinPlace に渡すと、実行可能ファイルと同じディレクトリ内でそのシンボル ファイルが検索されます。 見つからない場合は、実行可能ファイルに格納されている CodeView レコードを読み取ります。そのレコード内のシンボル ファイル パスが見つかると、そのパス内のシンボル ファイルが検索されます。

注: シンボル ファイル名を明示的に指定した場合、BinPlace はシンボル ファイル名を処理せず、単に移動します。

binplace -a -x -s d:\stripped -n g:\full g:\builddir\application.exe

実行可能ファイルは、以前と同じルート宛先ディレクトリを使用します。 そのクラス ディレクトリは files\bin です。 したがって、これは d:\projectroot\files\bin\application.exe に配置されます。

シンボル ファイルは 2 つの場所に配置されます。 完全なシンボル ファイル (プライベートシンボルとパブリック シンボルの両方を含む) は、g:\full\files\bin\exe\application.pdb に移動します。 削除されたシンボル ファイル (パブリック シンボルのみを含む) は、d:\stripped\files\bin\exe\application.pdb に移動します。

次に、commonmodule.dll で同様のコマンドを使用します。

binplace -a -x -s d:\stripped -n g:\full g:\builddir\commonmodule.dll

今回は、クラスサブディレクトリはリテールです。 実行可能ファイルの場合、このディレクトリ名は "クラス サブディレクトリを使用しないでください" のコードであるため、d:\projectroot\application.exe に配置されます。 シンボル ファイルは g:\full\retail\dll\application.pdb と d:\stripped\retail\dll\application.pdb に配置されます。

最後に、mydriver.sysで BinPlace を使用し、-n スイッチを省略します。

binplace -a -x -s d:\stripped g:\builddir\mydriver.sys

ここでは、クラス サブディレクトリは */drivertree です。 実行可能ファイルの場合、アスタリスク (*) はプロセッサの種類に置き換えられます。 x86 コンピューターで実行していると仮定すると、実行可能ファイルは d:\projectroot\i386\drivertree\application.exe に配置されます。 シンボル ファイルのアスタリスクは無視されるため、削除されたシンボル ファイルは g:\full\drivertree\sys\application.pdb に配置されます。 -n スイッチを省略したため、完全なシンボル ファイルはどこにも配置されません。