阅读:1384回复:12
向tooflat请教一个问题
我不理解你的SfRead的例程中处理解密的原理,特别是MyBuffer,我总觉的MyBuffer是申请的一个空内存块,但为什么在读完成例程中用它来解密了呢?请指教
|
|
沙发#
发布于:2005-05-08 20:46
这个问题解决了,谢谢大家的关注
|
|
板凳#
发布于:2005-05-08 16:02
我按你的建议改了一下程序,现在不重启了,但判断后缀名我还是搞不定,
代码如下,假如file->FileName = \"\\test.txt\"; if(file->FileName.Buffer) { PWCHAR Ptr = NULL; Ptr = wcsstr(&file->FileName,L\"txt\"); } 执行后Ptr总是空的,请给与指导 |
|
地板#
发布于:2005-05-01 09:50
在问个问题,现想对只定的文件格式加密,我的做法如下 放在IRP_MJ_CREATE中,然后把该文件是否需要加密的标志保存起来 在write中读取该标志 |
|
地下室#
发布于:2005-04-30 13:43
在问个问题,现想对只定的文件格式加密,我的做法如下
if(file->FileName.Buffer) { WCHAR OldName; PWCHAR Ps = NULL; RtlCopyUnicodeString(&name,&file->FileName); Ps = wcsrchr(&name,L\'.\'); ++Ps; OldName = *Ps; if(_wcsnicmp(OldName,L“txt”,3) == 0) { isJiaMi = TRUE; } } if(isJiaMi) { 加密 } 上面的判断后缀名是不是txt的代码放在IRP_MJ_WRITE中,最后机器总是重启,请问这段代码应放在哪里才好, |
|
5楼#
发布于:2005-04-30 13:10
E盘下只有一个文件,这个文件被我加密后,然后我就解密,出现的情况是“文件或目录损坏且无法读取”的错误,但用同样的方法在U盘上试却成功
|
|
6楼#
发布于:2005-04-30 11:13
我原先用你的例子测U盘加解密是没问题的,现在改用在本地E:盘上(NTFS),为什么解不了密了,整个E盘下的内容都打不开 是否加密了根目录的全部文件 |
|
7楼#
发布于:2005-04-29 10:32
我原先用你的例子测U盘加解密是没问题的,现在改用在本地E:盘上(NTFS),为什么解不了密了,整个E盘下的内容都打不开
|
|
8楼#
发布于:2005-04-26 15:56
谢谢你呀,可是还是不行纳,急死了,你说的缓存问题以及启动方式为0是什么意思呀 就是说:如果你的手工启动的话,因为缓存的问题,操作系统有可能直接从缓存中读取数据,而不发read irp,所以你不会拦截到read irp。 启动方式为0,就是HKLM/System/CurrentControlSet/Services/sfilter 的 Start 值为 0 |
|
9楼#
发布于:2005-04-26 12:27
谢谢你呀,可是还是不行纳,急死了,你说的缓存问题以及启动方式为0是什么意思呀
|
|
10楼#
发布于:2005-04-26 11:33
dfsafd
|
|
|
11楼#
发布于:2005-04-26 11:24
这个我懂了,先给10分,可否在问个问题,也就是我下面发的帖子,我不能截获本地磁盘的读写请求呀,我发现我的SfCreate例程与你的不一样,不知是不是那个原因,你有sfilter的原代码吗,你可否发一份给我,因为我实在是找不到原因了,可以再给你30分的
|
|
12楼#
发布于:2005-04-26 11:12
读完成后MyBuffer就不是空的了,因为我用MyBuffer的地址替换了原Buffer的地址,下层文件系统会把数据放到MyBuffer中
|
|