2009-12-22 17 views
6

Mevcut olmayan bir aygıtı öykünen bir WDM sürücüsü oluşturmam gerekiyor. Sürücü, O/S botları, açılıp SetupDiXXX ve CreateFile aracılığıyla kapatıldığında yüklenmesi gerekiyor DeviceIoControl yanıtlaması gereken vbDonanımlara dokunmayan windows sürücüsünü nasıl geliştirebilirim?

Ben kodlu sürücü var ama XP yüklemek reddeder. Sistem olay görüntüleyicisi diyor ki:

The MyDevice service failed to start due to the following error: The service cannot be started, either because it is disabled or because it has no enabled devices associated with it.

Sorun INF dosyası (aşağıdaki referans) olduğunu düşünüyorum, göz önüne alındığında. Bu mu? Düzeltmek için nasıl giderim?

 
;; MyDevice.inf 

[Version] 
Signature="$Windows 95$" 

Class=MyDeviceDeviceClass 
ClassGUID={ff646f80-8def-11d2-9449-00105a075f6b} 
Provider=%ProviderName% 
DriverVer= 12/21/2009,1.0.0.1 

[ClassInstall32] 
Addreg=Class_AddReg 

[Class_AddReg] 
HKR,,,,%DeviceClassName% 
HKR,,Icon,,"-18" 

[DestinationDirs] 
MyDevice_Files_Driver = 10,System32\Drivers 


[Manufacturer] 
%MfgName%=Mfg0 

[Mfg0] 
%DeviceDesc%=MyDevice_DDI, *MyDevice 


[MyDevice_DDI] 
CopyFiles=MyDevice_Files_Driver 
AddReg=MyDevice_9X_AddReg 


[MyDevice_DDI.NT] 
CopyFiles=MyDevice_Files_Driver 
AddReg=MyDevice_NT_AddReg 

[MyDevice_DDI.NT.Services] 
Addservice = MyDevice, 0x00000002, MyDevice_AddService 

[MyDevice_AddService] 
DisplayName = %SvcDesc% 
ServiceType = 1 
StartType  = 3 
ErrorControl = 1 
ServiceBinary = %10%\System32\Drivers\MyDevice.sys 

[MyDevice_NT_AddReg] 
HKLM, "System\CurrentControlSet\Services\MyDevice\Parameters","BreakOnEntry", 0x00010001, 0 

[MyDevice_Files_Driver] 
MyDevice.sys 


[Strings] 
ProviderName="Acme" 
MfgName="Acme" 
DeviceDesc="Acme" 
DeviceClassName="Device class for MyDevice" 
SvcDesc="MyDevice NT service" 
+1

Cevabı bilmiyorum, ancak Null modem öykünücüsü gibi projeler (http://com0com.sourceforge.net/) bunun mümkün olduğunu gösterir. Belki de bu projeye bakarak bir şeyler toparlayabilirsin? –

+0

com0com sürücüsü ihtiyacım olana yakın ancak çözümün% 100'ü değil: Ben de sürücüyü "Yeni Donanım Ekle" kontrol panelinden yüklemem gerekiyordu. INF'yi yüklemek için sadece sağ tıklama yeterli değildi. – Clay

cevap

4

Öz cevap verdi:

aşağıdaki içerecek şekilde INF değiştirdi:

[Mfg0] %DeviceDesc%=MyDevice_DDI, *MyDevice\ipm1

"\ ipm1" yeni ve gözlerimde biraz büyü. Chris Cant'un "Windows WDM Aygıtı Yazmalarını Yazma" konusundaki bir örnekten aldım.

Büyük değişiklik, sürücüyü yüklemek için kontrol panelinden "Yeni Donanım Ekle" sihirbazını kullanıyor. INF'yi sağ tıklamak yeterli değildir. Bunun sebebi, sürücünün kontrol etmesi için donanım bulmakta başarısız olan PnP yöneticisini çağırmasıdır.

İlgili konular