كيف يمكنني تطوير برنامج تشغيل Windows الذي لا يلمس الأجهزة؟

StackOverflow https://stackoverflow.com/questions/1944146

  •  20-09-2019
  •  | 
  •  

سؤال

أحتاج إلى إنشاء برنامج تشغيل WDM يحاكي جهازًا غير موجود. يجب تحميل السائق عند فتح أحذية O/S وإغلاقها عبر SetupDiXXX و CreateFile, يحتاج إلى الرد على DeviceIoControl, ، إلخ.

لديّ برنامج التشغيل مشفر ، لكن XP يرفض تحميله. يقول عارض حدث النظام:

فشلت خدمة myDevice في البدء بسبب الخطأ التالي: لا يمكن بدء الخدمة ، إما لأنها معطلة أو لأنها لا تحتوي على أجهزة ممكّنة مرتبطة بها.

بالنظر إلى ذلك ، أعتقد أن المشكلة موجودة في ملف INF (مرجع أدناه). فعلا؟ كيف يجب أن أقوم بإصلاحه؟

;; 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"
هل كانت مفيدة؟

المحلول

أجاب ذاتي:

لقد غيرت INF لتضمين ما يلي:

mfg0] ٪ devicedesc ٪ = mydevice_ddi ، *mydevice ipm1

" ipm1" جديد ، وفودو صغير في عيني. حصلت عليه من مثال في "كتابة Drvers Windows WDM Device".

التغيير الكبير هو استخدام معالج "إضافة أجهزة جديدة" من لوحة التحكم لتثبيت برنامج التشغيل. انقر بزر الماوس الأيمن فوق تثبيت INF لا يكفي. أظن أن السبب هو أنه يستدعي مدير PNP الذي فشل بشكل صحيح في العثور على أجهزة للسيطرة على برنامج التشغيل.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top