2009-12-22 35 views
6

Tôi cần tạo trình điều khiển WDM mô phỏng thiết bị không có mặt. Người lái xe cần phải được nạp khi O/S khởi động, mở và đóng cửa qua SetupDiXXXCreateFile, cần phải đáp ứng với DeviceIoControl vvLàm cách nào để phát triển trình điều khiển cửa sổ không chạm vào phần cứng?

Tôi có trình điều khiển mã hóa, nhưng XP từ chối để tải nó. Trình xem sự kiện hệ thống cho biết:

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.

Do đó, tôi nghĩ sự cố nằm trong tệp INF (tham chiếu bên dưới). Là nó? Làm thế nào tôi nên đi về sửa chữa nó?

 
;; 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

Tôi không biết câu trả lời, nhưng các dự án như trình giả lập modem Null (http://com0com.sourceforge.net/) chỉ ra rằng điều đó là có thể. Có lẽ bạn có thể thu thập một cái gì đó bằng cách xem xét thông qua dự án đó? –

+0

Trình điều khiển com0com gần với những gì tôi cần, nhưng không phải 100% giải pháp: Tôi cũng phải cài đặt trình điều khiển từ bảng điều khiển "Thêm phần cứng mới". Chỉ cần nhấp chuột phải cài đặt INF là không đủ. – Clay

Trả lời

4

tự trả lời:

Tôi đã thay đổi INF để bao gồm những điều sau đây:

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

Các "\ ipm1" là mới, và một chút voodoo trong mắt tôi. Tôi đã nhận nó từ một ví dụ trong "Cant Windows WDM Device Drvers" của Chris Cant.

Thay đổi lớn là sử dụng thuật sĩ "Thêm phần cứng mới" từ bảng điều khiển để cài đặt trình điều khiển. Nhấp chuột phải cài đặt INF là không đủ. Tôi nghi ngờ lý do là nó gọi người quản lý PnP mà không chính xác để tìm phần cứng cho người lái xe để kiểm soát.

Các vấn đề liên quan