阅读:1579回复:3
sfilter.c学习中的困惑,很急啊,在线等啊。
for (i = 0; i <= IRP_MJ_MAXIMUM_FUNCTION; i++)
{ // ????????? DriverObject->MajorFunction = SfPassThrough; } 这里面变量i,代表什么意思啊?SfPassThrough这个函数里面主要是完成下层驱动的调用,可0-IRP_MJ_MAXIMUM_FUNCTION调用有什么意义啊? RtlInitUnicodeString( &nameString, L"\\FileSystem\\Filters\\SFilterCDO" ); RtlInitUnicodeString( &nameString, L"\\FileSystem\\SFilterCDO" ); \\FileSystem\\Filters\\SFilterCDO \\FileSystem\\SFilterCDO这些是不是每个文件驱动都要这么写,才表示系统可是识别的文件驱动系统啊? 请高手指点啊,谢谢了。 |
|
|
沙发#
发布于:2005-08-11 10:02
MajorFunction是一个函数指针数组,i 表示其偏移
IRP_MJ_MAXIMUM_FUNCTION是一个宏,表示数组的大小。 你写错了一行,应该是 DriverObject->MajorFunction = SfPassThrough; 至于\\FileSystem\\SFilterCDO 名字,FileSystem是固定的,后面的部分可以随便写 |
|
板凳#
发布于:2005-08-11 10:19
for (i = 0; i <= IRP_MJ_MAXIMUM_FUNCTION; i++)
{ // ????????? DriverObject->MajorFunction = SfPassThrough; } MajorFunction是一个函数指针数组,i 表示其偏移 IRP_MJ_MAXIMUM_FUNCTION是一个宏,表示数组的大小。 这些比较好理解,可为什么要这样做啊?SfPassThrough这个函数里面主要是完成下层驱动的调用,什么原因 至于\\FileSystem\\SFilterCDO 名字,FileSystem是固定的,后面的部分可以随便写 “后面的部分可以随便写”根据什么写,可以根据自己随便去个名字吗? |
|
|
地板#
发布于:2005-08-11 11:00
IRP_MJ_MAXIMUM_FUNCTION表示让MajorFunction都指向SfPassThrough这模认的函数
另外正确的写法是如是DriverObject->MajorFunction = SfPassThrough; |
|