阅读:1194回复:7
tooflat 大侠请进还是访问querybuffer 时提示 Access Violation windbg 跟踪发现,开始的一些IRP没问题,后来的IRP当执行到 offset = QueryBuffer->NextEntryOffset; 或 if ((QueryBuffer->FileNameLength > 0) && (_wcsicmp(QueryBuffer->FileName, file) == 0)) 时提示 Access Violation 再执行下去,一会蓝屏,不知为什么? 这是源码,请帮忙看以下 |
|
最新喜欢:Leopar... |
沙发#
发布于:2005-01-17 12:15
不清楚,自己跟踪一下QueryBuffer的地址是怎么变化的
再和Irp->UserBuffer+IrpSp->Parameters.QueryFile.Length的值比较一下 [编辑 - 1/17/05 by tooflat] |
|
板凳#
发布于:2005-01-17 15:29
能参考以下你的 这段 隐藏文件(夹)的代码 吗?
lhzh114@yahoo.com.cn |
|
地板#
发布于:2005-01-18 14:16
fda
|
|
|
地下室#
发布于:2005-01-19 21:09
OS: WIN2000
IFS Kit 2000 sfilter.c 为2000版本下的 还是蓝屏!!!!!!!!!!!!!!!!! 不知是因为这吗? ULONG dwID = (ULONG)PsGetCurrentProcessId(); if ((g_MyProcessID != 0) && (g_MyProcessID == dwID)) { return SfPassThrough(pDevObj, Irp); } 当 当前线程 和 我的 线程 相同时 返回 sfpassthrough 吗? 在那设定 捕获 g_MyProcessID 呢?什么意思呢? |
|
5楼#
发布于:2005-01-19 22:37
有问题请教,可以吗?
ericlau114@hotmail.com |
|
6楼#
发布于:2005-01-20 09:11
终于可以了!多谢tooflat大侠!给分了
在资源管理器中查看,第一次打开时test.txt已隐藏,当点击别的文件夹后再返回后 又显示了?需要刷新才能隐藏 |
|
7楼#
发布于:2005-01-20 10:20
你的比较有问题
if ((QueryBuffer->FileNameLength > 0) && (_wcsicmp(QueryBuffer->FileName, file) == 0)) QueryBuffer->FileName不是NULL结尾的,所以应该这样 _wcsnicmp(QueryBuffer->FileName, file, QueryBuffer->FileNameLength / sizeof(WCHAR)) == 0 |
|