能力值:
( LV7,RANK:110 )
|
-
-
2 楼
只是一个功能码,你在应用层和驱动层同时定义以后,在应用层调用DeviceIoControl()函数,在驱动层的IRP_MJ_DEVICE_CONTROL 的例程中通过irp堆栈就可以得到你定义的功能码,利用switch语句进行下发,一般定义大于0x830就行了
|
能力值:
( LV2,RANK:10 )
|
-
-
3 楼
#define CTL_CODE( DeviceType, Function, Method, Access ) ( \
((DeviceType) << 16) | ((Access) << 14) | ((Function) << 2) | (Method) \
)
DeviceType 文档里有~
Function 就当是ID好了,传个0xXXX就可以,但是不要和微软的定义重复
Method 与R0层交互时使用的数据传递方式
Access FILE_READ_ACCESS之类的
我对这玩意的理解是,这就是个功能码,用来区分不同的功能的,当然这个功能是你自己定义的,让驱动完成不同的操作。写清楚点就是(ID 就是功能码)
switch(ID)
{
case 1:
{
func();
break;
}
....
}
|
能力值:
( LV2,RANK:10 )
|
-
-
4 楼
谢谢楼上二位的指点 感激不尽
|
能力值:
( LV2,RANK:10 )
|
-
-
5 楼
我也想学。
|
|
|