| 
			 
					阅读:1015回复:3
				 
				请教一段代码
					摘自武安河的CharSample的那个例子,带波浪线的那行
 
							为什么要赋一个2的值给I.Information()? NTSTATUS CharSampleDevice::DeviceControl(KIrp I) { NTSTATUS status; CHAR n,c[]=\"零一二三四五六七八九\"; T<<\"CharSampleDevice::DeviceControl\\n\"; switch(I.IoctlCode()) { case CHARSAMPLE_ioctl_800: N=*(CHAR*)I.IoctlBuffer(); if ((n>=\'0\')&&(n<=\'9\')) { n-=\'0\'; strncpy((PCHAR)I.IoctlBuffer(),&c[n*2],2); I.Information()=2; ~~~~~~~~~~~~~~~~~~ 请教这行代码是什么意思? status=STATUS_SUCCESS; } else ......  | 
	|
| 
			 沙发# 
								发布于:2005-03-11 16:39				
			
					完整的例子没有看过
 
							I.Information() = 2; 意思应该是返回的buffer的长度,也就是strncpy里的参数2。  | 
	|
					
						
  | 
	
| 
			 板凳# 
								发布于:2005-03-11 17:16				
			
					你能根据驱动给出应用程序的代码吗?
 
							我只有书,没有光盘 完整的例子没有看过  | 
	|
| 
			 地板# 
								发布于:2005-03-11 20:05				
			完整的例子没有看过 就是放到IOSTATUS.INFORMATION里的数据长度,系统会把该长度的数据拷贝到RING3的.  | 
	|
					
						
  |