阅读:1800回复:3
NdisMapFile的使用问题
我正在做的项目中用到了NdisOpenFile,NdisMapFile等函数,程序编译通过,但装到win98下,每次开机总是死机,后来经过反复测试发现每次执行NdisMapFile(&filestatus,(PVOID *)setting,filehandle)后,虽然每次filestatus 返回 NDIS_STATUS_SUCCESS但setting却总是返回NULL,因此,必须同时判断filestatus 和 setting的返回值,但这样虽解决了死机问题,我还是没法读出文件中的内容,是否setting不能这样定义:char *setting; 请各位高手指点一二..
代码如下: 变量声明 char *setting; int j,K; NDIS_STRING filename=NDIS_STRING_CONST(\"fp.sys\"); //指定要打开的文件 NDIS_STATUS filestatus; NDIS_HANDLE filehandle; NDIS_PHYSICAL_ADDRESS MinusOne = NDIS_PHYSICAL_ADDRESS_CONST(-1,-1); UINT filelength; setting=NULL; NdisOpenFile(&filestatus,&filehandle,&filelength,&filename, MinusOne);//打开文件 if ( filestatus == NDIS_STATUS_SUCCESS) //打开文件成功 { NdisMapFile(&filestatus,(PVOID *)setting,filehandle);//将打开文件映射到内存,内存基地值给setting if ( filestatus == NDIS_STATUS_SUCCESS) //映射文件成功 { if(setting!=NULL ) { for (i=0;i<filelength;i++) //只要小于文件长度,循环 { if((*setting)&0x80)//如果当前字节最高位为1 { //处理数据 } setting++;//指向下一个字节 } } NdisUnmapFile(filehandle);//取消文件映射 NdisCloseFile(filehandle);//关闭文件 } } |
|
最新喜欢:leisur...
|
沙发#
发布于:2002-02-01 16:37
我给你信箱发了一段代码!
|
|
板凳#
发布于:2002-02-01 21:33
谢谢jeosph!!
EMAIL已收到,问题解决! |
|
|
地板#
发布于:2004-11-22 16:37
我也遇到这个问题,读出来的内容好象不对,能否指点一下,谢谢
|
|