информационная безопасность
без паники и всерьез
 подробно о проектеRambler's Top100
За кого нас держат?Все любят мед
BugTraq.Ru
Русский BugTraq
 Анализ криптографических сетевых... 
 Модель надежности двухузлового... 
 Специальные марковские модели надежности... 
 Бэкдор в xz/liblzma, предназначенный... 
 Три миллиона электронных замков... 
 Doom на газонокосилках 
главная обзор RSN блог библиотека закон бред форум dnet о проекте
bugtraq.ru / форум / programming
Имя Пароль
ФОРУМ
если вы видите этот текст, отключите в настройках форума использование JavaScript
регистрация





Легенда:
  новое сообщение
  закрытая нитка
  новое сообщение
  в закрытой нитке
  старое сообщение
  • Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
  • Новичкам также крайне полезно ознакомиться с данным документом.
Еще вопрос по .INF 15.08.03 14:00  Число просмотров: 1149
Автор: amirul <Serge> Статус: The Elderman
<"чистая" ссылка>
> Спасибо за ответ.
> Есть еще вопрос. Можно ли в .INF создать ветвление,
> например, различные start_code при некоторых различных
Это смотря что ты собираешься ставить inf-ом. Вообще-то для установки устройств есть секция [Manufacturer], в которой перечисляются устройства, которые может ставить этот inf.

> условиях? И если можно, то как передавать параметр выбора
> при установке. Можно ли создавать ветвления в зависимости
> от ОС, как?
Ветвления создаются при помощи т.н. decorated названий секций. Подробнее смотри в MSDN статью "Creating INF Files for Multiple Platforms and Operating Systems"

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/install/hh/install/create-inf_9xpj.asp

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/install/hh/install/create-inf_9xpj.asp
<programming>
[Win32] Как сделать из CreateService() -> .INF ? 15.08.03 12:08  
Автор: Green Статус: Незарегистрированный пользователь
<"чистая" ссылка>
Как на основе параметров вызова CreateService() составить аналогичный по действию файл .INF ?
Т.е. есть вызов:

SC_HANDLE CreateService(
hSCManager, // handle to SCM database
"ServiceName", // name of service to start
"lpDisplayName", // display name
SERVICE_ALL_ACCESS, // type of access to service
SERVICE_KERNEL_DRIVER, // type of service
SERVICE_SYSTEM_START, // when to start service
SERVICE_ERROR_NORMAL, // severity of service failure
"BinaryPathName", // name of binary file
"PNP_TDI", // name of load ordering group
TagId, // tag identifier
"Tcpip\0", // array of dependency names
"ServiceStartName", // account name
"Password" // account password
);

как будет выглядеть соотв. .inf ?
[Win32] Вообще-то при установке девайса сервис - не единственная задача inf файла 15.08.03 12:50  
Автор: amirul <Serge> Статус: The Elderman
<"чистая" ссылка>
> Как на основе параметров вызова CreateService() составить
> аналогичный по действию файл .INF ?
> Т.е. есть вызов:
>
> SC_HANDLE CreateService(
> hSCManager, // handle to SCM database
> "ServiceName", // name of service to start
> "lpDisplayName", // display name
> SERVICE_ALL_ACCESS, // type of access to service
> SERVICE_KERNEL_DRIVER, // type of service
> SERVICE_SYSTEM_START, // when to start service
> SERVICE_ERROR_NORMAL, // severity of service failure
> "BinaryPathName", // name of binary file
> "PNP_TDI", // name of load ordering group
> TagId, // tag identifier
> "Tcpip\0", // array of dependency names
> "ServiceStartName", // account name
> "Password" // account password
> );
>
> как будет выглядеть соотв. .inf ?
Посему напишу только часть

В секции DDInstall.Services даешь директиву AddService со следующим синтаксисом:

[install-section-name.Services]
AddService=ServiceName,[flags],service-install-section[,
            event-log-install-section[,[EventLogType][,EventName]]]...

---

Флаги описывать не буду - можно посмотреть в MSDN

А в service-insrall-section указываешь параметры для сервиса:

[service-install-section]
 
[DisplayName=name]
[Description=description-string]
ServiceType=type-code
StartType=start-code
ErrorControl=error-control-level
ServiceBinary=path-to-service
[StartName=driver-object-name]
[AddReg=add-registry-section[, add-registry-section] ...]
[DelReg=del-registry-section[, del-registry-section] ...]
[BitReg=bit-registry-section[,bit-registry-section] ...]
[LoadOrderGroup=load-order-group-name]
[Dependencies=depend-on-item-name[,depend-on-item-name]...]

---

Названия параметров говорят сами за себя. Ну а аккаунт/пасворд придется добавлять из AddReg
Еще вопрос по .INF 15.08.03 13:28  
Автор: Green Статус: Незарегистрированный пользователь
<"чистая" ссылка>
Спасибо за ответ.
Есть еще вопрос. Можно ли в .INF создать ветвление, например, различные start_code при некоторых различных условиях? И если можно, то как передавать параметр выбора при установке. Можно ли создавать ветвления в зависимости от ОС, как?
Еще вопрос по .INF 15.08.03 14:00  
Автор: amirul <Serge> Статус: The Elderman
<"чистая" ссылка>
> Спасибо за ответ.
> Есть еще вопрос. Можно ли в .INF создать ветвление,
> например, различные start_code при некоторых различных
Это смотря что ты собираешься ставить inf-ом. Вообще-то для установки устройств есть секция [Manufacturer], в которой перечисляются устройства, которые может ставить этот inf.

> условиях? И если можно, то как передавать параметр выбора
> при установке. Можно ли создавать ветвления в зависимости
> от ОС, как?
Ветвления создаются при помощи т.н. decorated названий секций. Подробнее смотри в MSDN статью "Creating INF Files for Multiple Platforms and Operating Systems"

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/install/hh/install/create-inf_9xpj.asp

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/install/hh/install/create-inf_9xpj.asp
О сколько нам открытий чудных... 15.08.03 14:49  
Автор: Green Статус: Незарегистрированный пользователь
<"чистая" ссылка>
С ветвлением по типу ОС разобрался.
А как быть если мне нужно, к примеру, start_code определить относительно другой записи в реестре? Т.е. алгоритм примерно такой: читается некоторое значение ключа в реестре и в зависимости от него определяется start_code. Такое в .INF возможно? Или я слишком много от него хочу? :о)
Нельзя 15.08.03 15:06  
Автор: amirul <Serge> Статус: The Elderman
<"чистая" ссылка>
> С ветвлением по типу ОС разобрался.
> А как быть если мне нужно, к примеру, start_code определить
> относительно другой записи в реестре? Т.е. алгоритм
> примерно такой: читается некоторое значение ключа в реестре
> и в зависимости от него определяется start_code. Такое в
> .INF возможно? Или я слишком много от него хочу? :о)
Вернее, смотря чего ты хочешь. Может это можно сделать и по-другому. В принципе inf - это не исполняемый файл, и сам не может иметь какую то логику, но часто он выполняется в паре с co-installer-ом. А вот он может и выбирать и делать все остальное.
Нельзя 15.08.03 15:15  
Автор: Green Статус: Незарегистрированный пользователь
<"чистая" ссылка>
> Вернее, смотря чего ты хочешь. Может это можно сделать и
> по-другому. В принципе inf - это не исполняемый файл, и сам
> не может иметь какую то логику, но часто он выполняется в
> паре с co-installer-ом. А вот он может и выбирать и делать
> все остальное.

Ясно. Спасибо за ответы.
Просто, есть некий проект, инсталяция необходимых дров была в .EXE. Я хотел по аналогии создать .INF для большей гибкости (чтоб не пересобирать каждый рах этот Install.exe при изменениях), а далее (по завершению разработки) на основе этого .INF создать дистрибутив с помощью какого-либо InstallShield или т.п.
1




Rambler's Top100
Рейтинг@Mail.ru


  Copyright © 2001-2024 Dmitry Leonov   Page build time: 0 s   Design: Vadim Derkach