Ескертпе
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
Важный Примеры, приведенные в этом разделе, обсуждают использование макроса BINPLACE_PLACEFILE и файла местаBinPlace. Этот макрос и файл устарели в windows 7 версии комплекта драйверов Windows и могут не поддерживаться в будущих версиях WDK.
В этом разделе приведены примеры использования BinPlace из командной строки.
Сначала можно задать корневой каталог назначения следующим образом:
set _NTTREE=d:\ProjectRoot
Затем можно задать путь и имя файла места следующим образом:
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. Каталог классов для этого файла указывается в файле с указанием в качестве приложения. Подкаталог типа файла — 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.
Файл символов размещён в двух местах. Полный файл символов (включая частные и общедоступные символы) переходит в 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
На этот раз подкаталог класса назван retail. Для исполняемого файла название каталога является кодом для "не использовать подкаталог класса", поэтому он помещается в d:\projectroot\application.exe. Файлы символов помещаются в g:\full\retail\dll\application.pdb и d:\stripped\retail\dll\application.pdb.
Наконец, используйте BinPlace в mydriver.sys и опустите параметр -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 был опущен, полный файл символов не помещается нигде.