| 
			 
					阅读:1523回复: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 !				 
							 | 
	|