阅读:1538回复:0
passthru-protocol-ndisopenfile-zwcreatefile-访问文件-蓝屏-请求解答谢谢!!各位前辈: 我在做一个类似网关跳转页的东西,在访问文件这块卡住一周多了,论坛里的帖子也参考了很多,始终一ndisopenfile或者zwcreatefile就蓝屏,因为身边没有人讨论,看ddk文档可能看得不是很透,自己苦苦思索也没有结果,希望前辈们给与指点。以下是这部分的代码 NdisInitializeString(&filename, "\\??\\c:\\windows\\system32\\IP.xml"); fileContent=NULL; MyStatus = NdisAllocateMemory(&fileContent,2000,0,HighestAcceptableMax); NdisOpenFile(&MyStatus,&FileHandle,&FileLength,&filename,HighestAcceptableMax); //打开文件 if ((MyStatus == NDIS_STATUS_SUCCESS)&&(FileHandle != NULL)) //如果文件打开成功 { DbgPrint("NdisOpenFile Success!..."); if (MyStatus!=NDIS_STATUS_SUCCESS) {DbgPrint("Allocate Memory Fail!"); } if (fileContent == NULL) { DbgPrint("filestatus==NULL");} NdisMapFile(&MyStatus,&fileContent,FileHandle); //将打开文件映射到内存 if (MyStatus == NDIS_STATUS_SUCCESS && fileContent != NULL) //映射成功 { DbgPrint("NdisMapFile Success!..."); //operation NdisUnmapFile(FileHandle); //取消文件映射 } else {DbgPrint("NdisMapFile Fail!..."); } NdisCloseFile(FileHandle); 这是采用ndisopenfile,以下是采用zwcreatefile: IO_STATUS_BLOCK IoStatus; OBJECT_ATTRIBUTES objectAttributes; NTSTATUS status; HANDLE FileHandle; UNICODE_STRING fileName; status = RtlAppendUnicodeToString(&fileName, (PWSTR)L"\\??\\C:\\data.log"); InitializeObjectAttributes (&objectAttributes, (PUNICODE_STRING)&fileName, OBJ_CASE_INSENSITIVE, NULL, NULL ); status = ZwCreateFile( &FileHandle, FILE_READ_DATA, &objectAttributes, &IoStatus, 0, FILE_ATTRIBUTE_NORMAL, FILE_SHARE_WRITE, FILE_OPEN_IF, FILE_SYNCHRONOUS_IO_NONALERT, NULL, 0 ); 我在ddk2003checked编译没错了,但是一运行这块语句就蓝屏,请指教,多谢!! |
|