vertex
驱动牛犊
驱动牛犊
  • 注册日期2001-11-23
  • 最后登录
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1696回复:7

我的问题为什么没有人回答呢??难道问题真的这么难吗???问题就是怎么在ring0对文件改名。

楼主#
更多 发布于:2001-12-04 11:25
============= vertex =============
sijun
驱动牛犊
驱动牛犊
  • 注册日期2001-07-31
  • 最后登录2007-06-18
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2001-12-04 15:40
Nt/ZwSetInformationFile函数
创造无限
vertex
驱动牛犊
驱动牛犊
  • 注册日期2001-11-23
  • 最后登录
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2001-12-05 12:54
请告知具体怎么传参数?多谢
============= vertex =============
iamaf~1
驱动小牛
驱动小牛
  • 注册日期2001-09-23
  • 最后登录2003-06-26
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2001-12-10 21:28

//改名    szFileName1 to szFileName2
NTSTATUS Rename(PCHAR szFileName1,PCHAR szFileName2)
{
NTSTATUS status;
CHAR szFileNameL[MAXPATHLEN];
OBJECT_ATTRIBUTES oa;
IO_STATUS_BLOCK iostatus;
HANDLE hfile =NULL;              
UNICODE_STRING pathnameW;
ANSI_STRING    pathnameA;
FILE_RENAME_INFORMATION fri;
strcpy(szFileNameL,\"\\\\DosDevices\\\\\");
strcat(szFileNameL,szFileName1);
RtlInitAnsiString (&pathnameA,szFileNameL );
RtlAnsiStringToUnicodeString(&pathnameW,&pathnameA,TRUE);
InitializeObjectAttributes(&oa, &pathnameW, OBJ_CASE_INSENSITIVE, NULL, NULL);
status = ZwCreateFile(&hfile, DELETE, &oa, &iostatus,
NULL, 0, FILE_SHARE_READ,FILE_OPEN,
FILE_SYNCHRONOUS_IO_NONALERT, NULL,0);
RtlFreeUnicodeString(&pathnameW);
if(!NT_SUCCESS(status))
{
goto done;
}
strcpy(szFileNameL,\"\\\\DosDevices\\\\\");
strcat(szFileNameL,szFileName2);
RtlInitAnsiString (&pathnameA,szFileNameL );
RtlAnsiStringToUnicodeString(&pathnameW,&pathnameA,TRUE);
fri.FileNameLength=pathnameW.Length;
memcpy(fri.FileName,pathnameW.Buffer,pathnameW.Length);
fri.ReplaceIfExists=0;
fri.RootDirectory=0;
status = ZwSetInformationFile(hfile,&iostatus,&fri,sizeof(fri),FileDispositionInformation);
RtlFreeUnicodeString(&pathnameW);
done:
if(hfile)ZwClose(hfile);
return status;
}
 :D :D :D :D :D
这个论坛不支持长用户名,害得我iamafraid 只好叫iamaf~1了...
vertex
驱动牛犊
驱动牛犊
  • 注册日期2001-11-23
  • 最后登录
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2001-12-11 10:03
你程序里的FILE_RENAME_INFORMATION结构是在哪里定义的呢?
我在ntddk.h中怎么没找到呢???还有很多结构的定义也没有,令人费解,请指点,多谢。
============= vertex =============
vertex
驱动牛犊
驱动牛犊
  • 注册日期2001-11-23
  • 最后登录
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2001-12-11 10:16
iamaf~1兄:
FILE_RENAME_INFORMATION 是在哪里定义的???
ntddk.h中为什么没有呢?请明示。
============= vertex =============
iamaf~1
驱动小牛
驱动小牛
  • 注册日期2001-09-23
  • 最后登录2003-06-26
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2001-12-11 12:05

in ntifs.h



typedef struct _FILE_RENAME_INFORMATION {
    BOOLEAN ReplaceIfExists;
    HANDLE RootDirectory;
    ULONG FileNameLength;
    WCHAR FileName[1];
} FILE_RENAME_INFORMATION, *PFILE_RENAME_INFORMATION;
这个论坛不支持长用户名,害得我iamafraid 只好叫iamaf~1了...
huanghao_5164
驱动牛犊
驱动牛犊
  • 注册日期2007-01-06
  • 最后登录2009-07-16
  • 粉丝0
  • 关注0
  • 积分5分
  • 威望10点
  • 贡献值0点
  • 好评度4点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2007-02-01 13:25
我在使用FILE_OPEN,FILE_OVERWRITE的时候,也无法识别

是在哪个头文件中定义的呢。。。。

请大家指点
游客

返回顶部