阅读:961回复: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的. |
|
|