zhjie374
驱动小牛
驱动小牛
  • 注册日期2004-10-27
  • 最后登录2012-01-17
  • 粉丝2
  • 关注1
  • 积分17分
  • 威望144点
  • 贡献值1点
  • 好评度21点
  • 原创分0分
  • 专家分0分
阅读:977回复:2

我想比较一个文件的目录是不是相同,这样行吗?

楼主#
更多 发布于:2005-04-20 15:56
我想比较一个文件的目录是不是和我指定的相同
第一次在驱动中做字符处理,不一定对..
谢谢指教
if(file)
{
if( file->FileName.Buffer && file->Flags != FO_FILE_OPEN)
{
RtlCopyUnicodeString(&name,&file->FileName);
DbgPrint(\"%s\",name.Buffer);
count=name.Length;
while((wcscmp(&name.Buffer[count],L\"\\\\\"))!=0)
{
count--;
}
length=name.Length-count;
if((wcsncmp((&name)->Buffer,WRITEDIR,length-1))==0)
{
DbgPrint(\"MATCHING LOCK IT\");
Irp->IoStatus.Status = STATUS_ACCESS_DENIED;
Irp->IoStatus.Information = 0;
status = Irp->IoStatus.Status;
IoCompleteRequest(Irp, IO_NO_INCREMENT);
return status;
}
}
}
snowStart
驱动老牛
驱动老牛
  • 注册日期2004-04-06
  • 最后登录2011-06-02
  • 粉丝0
  • 关注0
  • 积分95分
  • 威望19点
  • 贡献值177点
  • 好评度1点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2005-04-21 08:23
不是有专门的字符串比较函数嘛,为何不用呢

RtlCompareString
学习,关注,交流中... [email=fengyu@163.com]Email:snowstarth@163.com[/email] [url]http://bbs.zndev.com/?a=snowStart[/url]
zhjie374
驱动小牛
驱动小牛
  • 注册日期2004-10-27
  • 最后登录2012-01-17
  • 粉丝2
  • 关注1
  • 积分17分
  • 威望144点
  • 贡献值1点
  • 好评度21点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2005-04-21 09:36
谢谢了`
串比较已经OK了..

但是出现一个新问题.

我想让\\\\JASON\\\\TEXT\\\\这个目录为只读..我是这样做的.

在CREATE中,如果!(file->Flags & FO_FILE_OPEN) 再进行判断当前文件路径的父目录是不是\\\\JASON\\\\TEXT,如果是,则结束IRP..

结果这样一来,\\\\JASON\\\\TEXT这个目录打不开了,变成了禁止访问目录..

请教一下,我哪个环节出错了?谢谢.

代码:
if(file)
{
if( file->FileName.Buffer && file->DeviceObject && !(file->Flags & FO_FILE_OPEN
{
RtlCopyUnicodeString(&name,&file->FileName);
DbgPrint(\"IN %s\",name.Buffer);
count=name.Length;
if((wcsncmp((&name)->Buffer,WRITEDIR,11))==0)
{
DbgPrint(\"MATCHING LOCK IT\");
Irp->IoStatus.Status = STATUS_ACCESS_DENIED;
Irp->IoStatus.Information = 0;
status = Irp->IoStatus.Status;
IoCompleteRequest(Irp, IO_NO_INCREMENT);
return status;
}
}
}
游客

返回顶部