В 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.