| 
			 
					阅读:1389回复:9
				 
				驱动与应用程序的通信问题????
					我做的是DSP6205(自带存储器)的PCI驱动
 
							问题: 要求驱动要给应用层提供的一个接口函数是: WriteDeviceMem(hDevice, 0x80004000, 4,(DWORD *)&nDataCount); 其中, 0x80004000为数据写入的目标地址(属于DSP自带存储空间)。 现在想问IRP怎么携带0x80004000信息。并且把这个信息传给驱动程序?????】希望高人指点!!谢谢!!!  | 
	|
					
						
						
						
						
  | 
	
| 
			 沙发# 
								发布于:2005-03-09 16:35				
			
					应用程序发个DeviceIoControl
 
							驱动程序处理IRP_MJ_DEVICE_CONTROL  | 
	|
					
						
  | 
	
| 
			 板凳# 
								发布于:2005-03-09 16:55				
			应用程序发个DeviceIoControl 这种方法最好了,这个例子克隆一个,简单快捷。  | 
	|
					
						
  | 
	
| 
			 地板# 
								发布于:2005-03-09 20:22				
			
					READ,WRITE都可以,只要你驱动知道该如何做即可....				 
							 | 
	|
					
						
  | 
	
| 
			 地下室# 
								发布于:2005-03-09 21:49				
			我做的是DSP6205(自带存储器)的PCI驱动 把应用程序的请求封状成irp这是io管理器做的事情,,,没有必要了解怎么打包成irp传递给驱动的。。。 io管理器打包irp的时候自然会将应用程序的请求都加到irp内(比如:是读啊还是写,,读写多少,,等等,,都打包成irp数据结构的一部分)  | 
	|
					
						
  | 
	
| 
			 5楼# 
								发布于:2005-03-11 15:31				
			
					大家都回答了				 
							 | 
	|
					
						
  | 
	
| 
			 6楼# 
								发布于:2005-03-11 21:27				
			
					恩。都回答的不错啊!				 
							 | 
	|
| 
			 7楼# 
								发布于:2005-03-11 23:30				
			
					pci设备,base addr会被os自动分配的,怎么能硬编码地址呢?你需要知道的是offset
 
							在start_device的时候,进行内存映射,并记下映射后的base addr app按offse写数据  | 
	|
| 
			 8楼# 
								发布于:2005-03-14 23:26				
			
					用DeviceIocontrol()函数				 
							 | 
	|
| 
			 9楼# 
								发布于:2005-03-16 11:29				
			
					张知识了,以前用过IOCTL,不知道还可以这样用,想传什么就传什么。
 
							楼上说的对基地址怎么可以随便指定呢? 即便是你看到的,在别的系统和机器上可能不一样啊, 所以还是应该在StartDevice中获得系统分配的BaseAdd  | 
	|