2017-03-28 79 views
0

我們有許多客戶使用的硬件設備。我們支持Windows 7-10操作系統。使用此設備,包含驅動程序和軟件。該設備是在中國內置的,他們最終使用了一個Cypress USB驅動程序。 .inf文件可以在下面找到。然後中國公司在.inf文件中添加了一些自己設備的參考文件,這些文件通過結合其軟件神奇地使其工作。爲需要的.inf文件驅動程序創建HCK和HLK測試?

我的背景不是C++或任何硬件相關的開發。現在,我們有客戶在驅動程序安裝並插入時收到代碼52錯誤。

Windows無法驗證此文件的數字簽名。最近的硬件或軟件更改可能安裝了簽名不正確或損壞的文件,或者可能是未知來源的惡意軟件。

所以經過大量的谷歌搜索之後,似乎這家中國公司並沒有跟上司機的最新標準。較新的設備啓用了安全引導,可以阻止未正確簽名的驅動程序。

現在我想知道的幾件事情:

  • 將讓我的司機,雖然需要的各種HCK/HLK/WLK測試?我的驅動程序只是一個.inf文件,.sys文件和一個生成的.cat文件。
  • 會生成一個.cab文件與makecab是否足夠?
  • 我的驅動程序實際上是內核模式驅動程序還是用戶模式驅動程序?
  • 這當然會被測試:但是用EV證書籤署文件cat是否已經解決了這個問題?

雖然HCK和HLK測試似乎對於簡單的.inf文件有很多工作。雖然準則非常明確,但我不完全確定在我的方案中是否有特定的事情我不需要做。

.inf文件代碼:

; Installation INF for the Cypress Generic USB Driver for Windows 2000 
; Processor support for x86 based platforms. 
; 
; (c) Copyright 2011 Cypress Semiconductor Corporation 
; 

[Version] 
Signature="$WINDOWS NT$" 
Class=USB 
ClassGUID={36FC9E60-C465-11CF-8056-444553540000} 
provider=%CYUSB_Provider% 
CatalogFile=CYUSB.cat 
DriverVer=10/17/2011,3.4.7.000 

[SourceDisksNames] 
1=%CYUSB_Install%,,, 

[SourceDisksFiles] 
CYUSB.sys = 1 

[DestinationDirs] 
CYUSB.Files.Ext = 10,System32\Drivers 

[ControlFlags] 
ExcludeFromSelect = * 

[Manufacturer] 
%CYUSB_Provider%=Device,NT,NTx86,NTamd64 

;for all platforms 
[Device] 
;%VID_XXXX&PID_XXXX.DeviceDesc%=CyUsb, USB\VID_XXXX&PID_XXXX 


;for windows 2000 non intel platforms 
[Device.NT] 
;%VID_XXXX&PID_XXXX.DeviceDesc%=CyUsb, USB\VID_XXXX&PID_XXXX 


;for x86 platforms 
[Device.NTx86] 
;%VID_XXXX&PID_XXXX.DeviceDesc%=CyUsb, USB\VID_XXXX&PID_XXXX 


;for x64 platforms 
[Device.NTamd64] 
;%VID_XXXX&PID_XXXX.DeviceDesc%=CyUsb, USB\VID_XXXX&PID_XXXX 


[CYUSB] 
CopyFiles=CYUSB.Files.Ext 
AddReg=CyUsb.AddReg 

[CYUSB.HW] 
AddReg=CYUSB.AddReg.Guid 

[CYUSB.Services] 
Addservice = CYUSB,2,CYUSB.AddService 

[CYUSB.NT] 
CopyFiles=CYUSB.Files.Ext 
AddReg=CyUsb.AddReg 

[CYUSB.NT.HW] 
AddReg=CYUSB.AddReg.Guid 

[CYUSB.NT.Services] 
Addservice = CYUSB,2,CYUSB.AddService 


[CYUSB.NTx86] 
CopyFiles=CYUSB.Files.Ext 
AddReg=CyUsb.AddReg 

[CYUSB.NTx86.HW] 
AddReg=CYUSB.AddReg.Guid 

[CYUSB.NTx86.Services] 
Addservice = CYUSB,2,CYUSB.AddService 

[CYUSB.NTamd64] 
CopyFiles=CYUSB.Files.Ext 
AddReg=CyUsb.AddReg 

[CYUSB.NTamd64.HW] 
AddReg=CYUSB.AddReg.Guid 

[CYUSB.NTamd64.Services] 
Addservice = CYUSB,2,CYUSB.AddService 


[CYUSB.AddReg] 
; Deprecating - do not use in new apps to identify a CYUSB driver 
HKR,,DevLoader,,*ntkern 
HKR,,NTMPDriver,,CYUSB.sys 
; You may optionally include a check for DriverBase in your application to check for a CYUSB driver 
HKR,,DriverBase,,CYUSB.sys 
HKR,"Parameters","MaximumTransferSize",0x10001,4096 
HKR,"Parameters","DebugLevel",0x10001,2 
HKR,,FriendlyName,,%CYUSB_Description% 

[CYUSB.AddService] 
DisplayName = %CYUSB_Description% 
ServiceType = 1     ; SERVICE_KERNEL_DRIVER 
StartType  = 3     ; SERVICE_DEMAND_START 
ErrorControl = 1     ; SERVICE_ERROR_NORMAL 
ServiceBinary = %10%\System32\Drivers\CYUSB.sys 
AddReg   = CYUSB.AddReg 
LoadOrderGroup = Base 

[CYUSB.Files.Ext] 
CYUSB.sys 

[CYUSB.AddReg.Guid] 
HKR,,DriverGUID,,%CYUSB.GUID% 

[Strings] 
CYUSB_Provider = "Cypress" 
CYUSB_Company  = "Cypress Semiconductor Corporation" 
CYUSB_Description = "Cypress Generic USB Driver" 
CYUSB_DisplayName = "Cypress USB Generic" 
CYUSB_Install  = "Cypress CYUSB Driver Installation Disk" 
VID_XXXX&PID_XXXX.DeviceDesc="Cypress USB Generic Driver (3.4.7.000)" 
CYUSB.GUID="{AE18AA60-7F6A-11d4-97DD-00010229B959}" 
CYUSB_Unused  = "." 

回答

0

微軟不斷增加的障礙,你可能要簽在他們dev portal now and you need a EV cert.註冊。在執行安全啓動時,乾淨安裝和升級之間也有區別!

我建議你讀/加入OSR mailing list,它具有multiplethreadsdealingwith的Windows 10 & SHA2簽署的鬥爭。

Their blog也可能有用。

+0

嗨,謝謝你的回覆。我已經註冊了一個EV證書,我將能夠進行HCK測試,所以線程和文章並不真正相關。我只是想知道HCK/HLK/WLK測試是否可以用.inf文件完成。請參閱我提到的其他問題。 – CularBytes