ildee
驱动牛犊
驱动牛犊
  • 注册日期2003-01-16
  • 最后登录2005-01-24
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1484回复:3

ZwCreateFile又兰屏了

楼主#
更多 发布于:2004-04-20 16:40
各位老大帮忙看看
我在IRP_MJ_CREATE运行的。
流程是这样的:双击打开一个文件,然后运行zwcreatefile打开该文件没问题,一旦右键->新建-〉新建文件,运行到zwCreatefile就兰屏:::UNEXPECTED_KERNEL_MODE_TRAP,不知道是怎么回事?老大门帮忙看看。。
if(currentIrpStack->Parameters.Create.Options & FILE_NON_DIRECTORY_FILE)
{
Statusop = ZwCreateFile(
&hFile,
GENERIC_READ | GENERIC_EXECUTE | GENERIC_WRITE ,
&oa,
&IoStatus,
NULL,
FILE_ATTRIBUTE_NORMAL,
FILE_SHARE_READ | FILE_SHARE_WRITE,
FILE_OPEN,
FILE_SYNCHRONOUS_IO_NONALERT,
NULL,
0
);
}
pursuer_zhao
驱动牛犊
驱动牛犊
  • 注册日期2003-10-23
  • 最后登录2005-10-17
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2004-04-22 08:54
各位老大帮忙看看
我在IRP_MJ_CREATE运行的。
流程是这样的:双击打开一个文件,然后运行zwcreatefile打开该文件没问题,一旦右键->新建-〉新建文件,运行到zwCreatefile就兰屏:::UNEXPECTED_KERNEL_MODE_TRAP,不知道是怎么回事?老大门帮忙看看。。
if(currentIrpStack->Parameters.Create.Options & FILE_NON_DIRECTORY_FILE)
{
Statusop = ZwCreateFile(
&hFile,
GENERIC_READ | GENERIC_EXECUTE | GENERIC_WRITE ,
&oa,
&IoStatus,
NULL,
FILE_ATTRIBUTE_NORMAL,
FILE_SHARE_READ | FILE_SHARE_WRITE,
FILE_OPEN,
FILE_SYNCHRONOUS_IO_NONALERT,
NULL,
0
);
}
 


用了FILE_SYNCHRONOUS_IO_NONALERT标志,就得用SYNCHRONOUS标志
ildee
驱动牛犊
驱动牛犊
  • 注册日期2003-01-16
  • 最后登录2005-01-24
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2004-04-22 14:59
GENERIC_EXECUTE
里面包括了呀
pursuer_zhao
驱动牛犊
驱动牛犊
  • 注册日期2003-10-23
  • 最后登录2005-10-17
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2004-04-22 15:05
各位老大帮忙看看
我在IRP_MJ_CREATE运行的。
流程是这样的:双击打开一个文件,然后运行zwcreatefile打开该文件没问题,一旦右键->新建-〉新建文件,运行到zwCreatefile就兰屏:::UNEXPECTED_KERNEL_MODE_TRAP,不知道是怎么回事?老大门帮忙看看。。
if(currentIrpStack->Parameters.Create.Options & FILE_NON_DIRECTORY_FILE)
{
Statusop = ZwCreateFile(
&hFile,
GENERIC_READ | GENERIC_EXECUTE | GENERIC_WRITE ,
&oa,
&IoStatus,
NULL,
FILE_ATTRIBUTE_NORMAL,
FILE_SHARE_READ | FILE_SHARE_WRITE,
FILE_OPEN,
FILE_SYNCHRONOUS_IO_NONALERT,
NULL,
0
);
}
 

换成这样试试:
if(currentIrpStack->Parameters.Create.Options & FILE_NON_DIRECTORY_FILE)
{
Statusop = ZwCreateFile(
&hFile,
SYNCHRONOUS|GENERIC_READ | GENERIC_EXECUTE | GENERIC_WRITE ,
&oa,
&IoStatus,
NULL,
FILE_ATTRIBUTE_NORMAL,
FILE_SHARE_READ | FILE_SHARE_WRITE,
FILE_OPEN,
FILE_SYNCHRONOUS_IO_NONALERT,
NULL,
0
);
}
游客

返回顶部