Легенда:
новое сообщение
закрытая нитка
новое сообщение
в закрытой нитке
старое сообщение
|
- Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
- Новичкам также крайне полезно ознакомиться с данным документом.
Навеяно старой гифкой 21.01.03 12:53
Автор: amirul <Serge> Статус: The Elderman
|
Создать файлик mousepad.inf (или любое другое название)
;/*++
;
;Copyright (c) 1990-2003 Microsoft Corporation All rights Reserved
;
;Module Name:
;
; MOUSEPAD.INF
;
;Abstract:
; INF file for installing Mouse Pad driver
;
;--*/
[Version]
Signature="$CHICAGO$"
Class=Mouse
ClassGuid={4D36E96F-E325-11CE-BFC1-08002BE10318}
Provider=%MFCT%
DriverVer=01/20/2003, 5.1.2600.0
;**************************************; MousePad Install Section
;**************************************
[Manufacturer]
%StdMfg%=Generic
[Generic]
%MousePad.DeviceDesc%=MousePad_Device, *MousePad
[MousePad_Device]
[MousePad_Device.Services]
AddService = mousepad, %SPSVCINST_ASSOCSERVICE% , MousePad_Service
[MousePad_Service]
DisplayName = %MousePad.SVCDESC%
ServiceType = 1 ; SERVICE_KERNEL_DRIVER
StartType = 3 ; SERVICE_DEMAND_START
ErrorControl = 0 ; SERVICE_ERROR_IGNORE
ServiceBinary = %12%\mouclass.sys
LoadOrderGroup = Extended Base
[Strings]
SPSVCINST_ASSOCSERVICE = 0x00000002
MFCT = "Мелкософт"
StdMfg = "(Стандартные коврики для мышей)"
MousePad.DeviceDesc = "Стандартный коврик для мыши"
MousePad.SVCDESC = "Драйвер коврика для мыши"
; ===== Cut Here =====
Перед установкой (по крайней мере на XP) необходимо произвести следующее. В ключе HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\{4D36E96F-E325-11CE-BFC1-08002BE10318} - типа Mouse class. Удалить (или переименовать) ключ NoInstallClass - мелкософт считает, что вручную добавлять девайсы к этому классу вредно. Можно было конечно ставить девайс куда-нить в system, но в mouse он смотрится красивее :-))) Добавлять через Add/Remove Hardware (Mouses and other pointing devices)
А теперь самое грустное. После добавления этот девайс окажется с вослицательным знаком (типа не может сервис запустить).
Скажу как с этим пытался бороться я. Если кто придумает более удачное решение - прошу отписать сюда.
1) Писать какой-нить generic дривер (из семплов DDK) не захотел сразу, так как предназначался inf именно для размещения в форуме - и ставиться должен из одного инфа. Хотя это вариант. Если кто захочет - там только добавить директиву CopyFiles и поменять имя
2) Кто знает какой сервис можно запустить безболезненно для большинства систем в качестве дривера для девайса - прошу сюда (только сначала опробуйте pls - я их опробовал тучу и на всех - болт)
3) Самый лучший, так как никоим образом не влияет на загрузку систему и на количество обращений к диска. Удалить (или переименовать) ключ Service в HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\Root\MOUSE\0000 (последний 0000 может быть и не 0000, но это вряд ли - я не видел чтоб в этот enumerator кто-нить еще ставился; ну максимум там будет одна мыша - тогда 0001). Это если в качестве исходного дривера брать mouclass.sys. Иначе он может попасть куда угодно: в UNKNOWN\0000 и т.д.
3.1) Развитие идеи: Сделать как у мелкософта (файл machine.inf секция [NO_DRV], [NO_DRV.Services]) у меня не получилось. Что позволено им на этапе установки винды, то нельзя мне - простому смертному. А жаль - идеальный вариант. Если кто заставит работать - опять таки, милости просим :-)))
3.2) Удалить ключ из [MousePad_Device.HW] тоже не получилось - она выполняется ДО выполнения [MousePad_Device.Services]. По поводу если у кого получится :-))) см выше
3.3) Ну что ж, если не получается написать полностью автоматический inf (вернее получается, но для этого нужен sys) - нам не трудно удалить Service вручную (для XP - regedit, для остальных - regedt32) - нужно только сначала пермишены понадстроить. Чтоб "устройство работало нормально" без перезагрузки перед удалением ключа (а можно и всего сервиса mousepad из ветки CurrentControlSet\Services - все равно он больше никому не нужен) его (девайс) надо остановить, а после удаления - перезапустить.
ЗЫ: На этот раз все копирайты мои :-) - всю ночь сегодня трахался :-)))
|
|
|