INF для KMDF фильтра классового драйвера

Тема в разделе "WASM.WIN32", создана пользователем FallenGameR, 6 авг 2008.

  1. FallenGameR

    FallenGameR New Member

    Публикаций:
    0
    Регистрация:
    8 окт 2006
    Сообщения:
    10
    В WDK семплах есть пример INF файла для классового фильтра и пример KMDF фильтра клавиатуры. По отдельности они успешно ставятся. Но когда я их обьединяю (нужен классовый фильтр на kbdclass), по полученному INF файлу ставится сам драйвер, а WdfCoInstaller нет (файл не копируется в System32, в реестре тоже ничего не происходит).

    В чем ошибка? Ниже сам INF файл и логи из msiexec /l*

    -----
    INF
    -----

    ;--------------------------------------------------/ Class filter installation
    ;
    [Version]
    Signature = "$Windows NT$"
    Provider = %Molot%
    Class = Keyboard
    ClassGUID = {4D36E96B-E325-11CE-BFC1-08002BE10318}
    DriverVer=08/06/2008,6.0.6001.18000
    CatalogFile = suppressor.cat
    DriverPackageType = ClassFilter

    [SourceDisksNames]
    1 = %suppressor.MediaDesc%

    [SourceDisksFiles]
    suppressor.sys = 1
    WdfCoInstaller01007.dll=1

    [DestinationDirs]
    DefaultDestDir = 12
    suppressor_CoInstaller_CopyFiles = 11

    ;
    ; .NT platform extension prevents install on Windows 9x/ME.
    ;
    [DefaultInstall.NT]
    CopyFiles = @suppressor.sys
    AddReg = suppressor_AddReg

    [suppressor_AddReg]
    HKLM, System\CurrentControlSet\Control\Class\{4D36E96B-E325-11CE-BFC1-08002BE10318}, UpperFilters, 0x00010008, suppressor

    [DefaultInstall.NT.Services]
    AddService = suppressor, , suppressor_Service_Inst, suppressor_EventLog_Inst

    [suppressor_Service_Inst]
    DisplayName = %suppressor.ServiceDisplayName%
    Description = %suppressor.ServiceDescription%
    ServiceType = 1 ; SERVICE_KERNEL_DRIVER
    StartType = 3 ; SERVICE_DEMAND_START
    ErrorControl = 1 ; SERVICE_ERROR_IGNORE
    ServiceBinary = %12%\suppressor.sys

    [suppressor_EventLog_Inst]
    AddReg = suppressor_EventLog_AddReg

    [suppressor_EventLog_AddReg]
    HKR,,EventMessageFile, %REG_EXPAND_SZ%,"%%SystemRoot%%\System32\IoLogMsg.dll;%%SystemRoot%%\System32\drivers\suppressor.sys"
    HKR,,TypesSupported, %REG_DWORD%, 7


    ;---------------------------------------------------/ Coinstaller installation
    ;
    [suppressor.NT.CoInstallers]
    AddReg = suppressor_CoInstaller_AddReg
    CopyFiles = suppressor_CoInstaller_CopyFiles

    [suppressor_CoInstaller_AddReg]
    HKR,,CoInstallers32,0x00010000, "WdfCoInstaller01007.dll,WdfCoInstaller"

    [suppressor_CoInstaller_CopyFiles]
    WdfCoInstaller01007.dll

    [suppressor.NT.Wdf]
    KmdfService = suppressor, suppressor_WdfVersion

    [suppressor_WdfVersion]
    KmdfLibraryVersion = 1.7


    ;------------------------------------------------------------------/ Resources
    ;
    [Strings]
    Molot = "Keyboard Protector (Molot Organization)"
    suppressor.MediaDesc = "Suppressor Driver Installation Disk #1 (Keyboard)"
    suppressor.ServiceDisplayName = "Suppressor Keyboard Protector"
    suppressor.ServiceDescription = "Protects keyboard input against keyboard sniffers"

    ; Useful constants
    REG_EXPAND_SZ = 0x00020000
    REG_DWORD = 0x00010001



    ---------
    MSI log
    ---------

    DIFXAPP: ENTER: InstallDriverPackages()
    DIFXAPP: 'CustomActionData' property 'DIFxApp Version' is 2.1.
    DIFXAPP: 'CustomActionData' property 'UI Level' is 5.
    DIFXAPP: 'CustomActionData' property 'componentId' is {D0061821-FED2-42EB-B46D-31E980FB492E}.
    DIFXAPP: 'CustomActionData' property 'componentPath' is c:\.
    DIFXAPP: 'CustomActionData' property 'flags' is 0x4.
    DIFXAPP: 'CustomActionData' property 'installState' is 2.
    DIFXAPP: 'CustomActionData' property 'ProductName' is WebMoney драйвер защитник.
    DIFXAPP: 'CustomActionData' property 'ManufacturerName' is Вычислительные силы.
    DIFXAPP: INFO: opening HKEY_USERS 'S-1-5-21-682003330-842925246-1343024091-1003\Software\Microsoft\Windows\CurrentVersion\DIFxApp\Components\{D0061821-FED2-42EB-B46D-31E980FB492E}' (User's SID: 'S-1-5-21-682003330-842925246-1343024091-1003') ...
    DIFXAPP: INFO: ENTER: DriverPackageInstallW
    DIFXAPP: INFO: suppressor.inf: checking signature with catalog 'c:\suppressor.cat' ...
    DIFXAPP: INFO: Driver package 'suppressor.inf' is WHQL signed.
    DIFXAPP: INFO: Copied 'suppressor.inf' to driver store...
    DIFXAPP: INFO: Copied 'suppressor.cat' to driver store...
    DIFXAPP: INFO: Commiting queue...
    DIFXAPP: INFO: Copied file: 'c:\suppressor.sys' -> 'C:\WINDOWS\system32\DRVSTORE\suppressor_66F43F8B5348F1FE2B3AC98CF6BDAED9FF23EDE5\suppressor.sys'.
    DIFXAPP: INFO: Installing INF file "C:\WINDOWS\system32\DRVSTORE\suppressor_66F43F8B5348F1FE2B3AC98CF6BDAED9FF23EDE5\suppressor.inf" of Type 5.
    DIFXAPP: INFO: installing class filter 'C:\WINDOWS\system32\DRVSTORE\suppressor_66F43F8B5348F1FE2B3AC98CF6BDAED9FF23EDE5\suppressor.inf'
    DIFXAPP: INFO: The Stopping of device 'ACPI\PNP0303\4&4B018EB&0' was vetoed by 'ACPI\PNP0303\4&4b018eb&0' (veto type 10212832)
    DIFXAPP: SUCCESS:Installation completed with code 0x0.
    DIFXAPP: INFO: RETURN: DriverPackageInstallW (0x0)
    DIFXAPP: INFO: ENTER: DriverPackageGetPathW
    DIFXAPP: SUCCESS:Found driver store entry.
    DIFXAPP: INFO: RETURN: DriverPackageGetPathW (0x7A)
    DIFXAPP: INFO: ENTER: DriverPackageGetPathW
    DIFXAPP: SUCCESS:Found driver store entry.
    DIFXAPP: INFO: RETURN: DriverPackageGetPathW (0x0)
    DIFXAPP: A reboot is needed to install the component '{D0061821-FED2-42EB-B46D-31E980FB492E}'.
    DIFXAPP: RETURN: InstallDriverPackages() 0 (0x0)
    Завершение действия 18:30:05: InstallFinalize. Возвращенное значение 1.
    Начало действия 18:30:05: RepairFilters.
    RepairFilters: FiltersComponent::Repair <-
    RepairFilters: FiltersComponent::SaveState <-
    RepairFilters: FiltersComponent::SaveState Saved filters registry record, copied 'HKLM\System\CurrentControlSet\Control\Class\{4D36E96B-E325-11CE-BFC1-08002BE10318}' to 'C:\DOCUME~1\DTMADM~1\LOCALS~1\Temp\cfsD.tmp'
    RepairFilters: FiltersComponent::SaveState =>
    RepairFilters: FiltersComponent::Repair Keyboard driver filter sequence is ok
    RepairFilters: FiltersComponent::Repair =>
    Завершение действия 18:30:05: RepairFilters. Возвращенное значение 1.
    Начало действия 18:30:05: MsiCleanupOnSuccess.
    DIFXAPP: ENTER: CleanupOnSuccess()
    DIFXAPP: 'Component' is 'ProductComponent'
    DIFXAPP: 'ComponentId' is {D0061821-FED2-42EB-B46D-31E980FB492E}
    Начало действия 18:30:05: ScheduleReboot.
    Завершение действия 18:30:05: ScheduleReboot. Возвращенное значение 1.
    DIFXAPP: RETURN: CleanupOnSuccess() 0 (0x0)
    Завершение действия 18:30:05: MsiCleanupOnSuccess. Возвращенное значение 1.
    Завершение действия 18:30:05: INSTALL. Возвращенное значение 1.