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





Легенда:
  новое сообщение
  закрытая нитка
  новое сообщение
  в закрытой нитке
  старое сообщение
  • Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
  • Новичкам также крайне полезно ознакомиться с данным документом.
О сколько нам открытий чудных... 15.08.03 14:49  Число просмотров: 1108
Автор: Green Статус: Незарегистрированный пользователь
<"чистая" ссылка>
С ветвлением по типу ОС разобрался.
А как быть если мне нужно, к примеру, start_code определить относительно другой записи в реестре? Т.е. алгоритм примерно такой: читается некоторое значение ключа в реестре и в зависимости от него определяется start_code. Такое в .INF возможно? Или я слишком много от него хочу? :о)
<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