阅读:1435回复:8
PnP filter driver 到底问题出在那里 ??
最近在做PnP filter driver,直接用Microsoft的code
http://support.microsoft.com/default.aspx?scid=kb;EN-US;Q262305 加上下面的 inf file,从新增硬件手动安装,但不成功! 发现在case IRP_MN_START_DEVICE: 里的IoCallDriver反回Status = c000009a (Insufficient system resources exist to complete the API.) 到底问题出在那里 ?? [Version] Signature = "$Windows NT$" ; for 2000/XP Class = Ports ClassGuid = {4D36E978-E325-11CE-BFC1-08002BE10318} Provider = %MSFT% DriverVer = 12/20/2004,1.0.0 ;---------------------------------------------------------------------------- [Manufacturer] %MfgName% = MegaHertz, [MegaHertz] ; DisplayName Section DeviceID ; ----------- ------- -------- %DeviceDesc% = Mhz.2k, SERENUM\MHZ2004 ; Serial Comm Probe ;---------------------------------------------------------------------------- [Mhz.2k] AddReg = Mhz.2k.Reg CopyFiles = Sys.CopyList ; files to copy [Sys.CopyList] CommFilter.sys [SourceDisksNames] 1 = %DiskId% [SourceDisksFiles] CommFilter.sys = 1 [DestinationDirs] Sys.CopyList = 10,system32\drivers ;---------------------------------------------------------------------------- [Mhz.2k.Reg] [Mhz.2k.HW] ; this for filter driver only AddReg = Mhz.2k.Hw.AddReg [Mhz.2k.Hw.AddReg] HKR,,"UpperFilters",0x00010000,"CommFilter" ;---------------------------------------------------------------------------- [Mhz.2k.Services] Include=msports.inf Needs=ComPort.NT.Services Addservice = CommFilter, , CommFilter.AddService [CommFilter.AddService] DisplayName = %CommFilter.SvcDesc% ServiceType = 1 ; SERVICE_KERNEL_DRIVER StartType = 3 ; SERVICE_DEMAND_START ErrorControl = 1 ; SERVICE_ERROR_NORMAL ServiceBinary = %10%\System32\Drivers\CommFilter.sys LoadOrderGroup = PNP Filter ;---------------------------------------------------------------------------- [Strings] MSFT = "MegaHertz Serial Filter Tool" MfgName = "MegaHertz SoftWare" DeviceDesc = "Serial Communication Probe" CommFilter.SvcDesc = "Communication Probe driver" Serenum.SvcDesc = "Serenum Filter Driver" Serial.SvcDesc = "Serial Filter Driver" DiskId = "Installation disk (1)" |
|
沙发#
发布于:2004-12-22 16:50
应该是驱动问题吧,inf能有问题?
用DS的Monitor加载有问题吗? |
|
|
板凳#
发布于:2005-01-03 08:06
先加分!! 顶一下 !
deviceExtension->NextLowerDriver = IoAttachDeviceToDeviceStack (deviceObject, PhysicalDeviceObject); . . . status = IoCallDriver(deviceExtension->NextLowerDriver, Irp); NextLowerDriver是从IoAttachDeviceToDeviceStack里得来的 IoCallDriver(deviceExtension->NextLowerDriver, Irp); 返回Error是C000009A (Insufficient system resources exist to complete the API.) |
|
地板#
发布于:2005-01-03 08:45
此程序的源代码在 Windows 2000 and Windows XP DDKs under <DDK root>\Src\General\Toaster\Filter\.
在运行这段代码之前,请先编译toaster目录下的bus,func,toastmon. 另外,你的inf文件写的也不正确,请参照ddk中toaster下的inf. toaster是一组十分好的示例代码,建议好好研究. |
|
|
地下室#
发布于:2005-01-03 08:50
怪了,路径符号打不上去.
filter sample 在toaster目录下,搜索一下. |
|
|
5楼#
发布于:2005-01-04 15:17
机里有两串口,Serial0和Serial1.
但deviceExtension->NextLowerDriver反回是Serial2 ?? |
|
6楼#
发布于:2005-01-05 11:23
驱动写作过程中,除要注意c/c++源码外,inf文件也是绝对十分关键的.
inf文件其中一项责任师负责写注册表,而向硬件的枚举,驱动程序的加载,堆栈的建立哪一项能离地开注册表 |
|
|
7楼#
发布于:2005-01-05 12:11
驱动写作过程中,除要注意c/c++源码外,inf文件也是绝对十分关键的. 我的inf问题在那里?? 我贴上inf的原因是我知这重要 !! |
|
8楼#
发布于:2005-01-12 11:59
push once !
|
|