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

内核中读写文件的例子谁有?

楼主#
更多 发布于:2005-06-07 15:18
通过zwcreatefile zwreadfile zwwritefile实现的读写文件的例子。

谢谢

最新喜欢:

xhzxlqtxhzxlq...
qiangguo64
驱动牛犊
驱动牛犊
  • 注册日期2005-01-12
  • 最后登录2009-08-28
  • 粉丝0
  • 关注0
  • 积分144分
  • 威望15点
  • 贡献值1点
  • 好评度14点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2005-06-09 13:10
错误码C000003A 是STATUS_OBJECT_PATH_NOT_FOUND,是不是在调用ZwCreateFile前调用InitializeObjectAttributes的时候,没有指定OBJ_CASE_INSENSITIVE 导致找不到文件或者路径
znsoft
管理员
管理员
  • 注册日期2001-03-23
  • 最后登录2023-10-25
  • 粉丝300
  • 关注6
  • 积分910分
  • 威望14796点
  • 贡献值7点
  • 好评度2410点
  • 原创分5分
  • 专家分100分
  • 社区居民
  • 最爱沙发
  • 社区明星
板凳#
发布于:2005-06-09 11:20
\\??\\表示dosDevice

一般这下面的都是符号链接
http://www.zndev.com 免费源码交换网 ----------------------------- 软件创造价值,驱动提供力量! 淡泊以明志,宁静以致远。 ---------------------------------- 勤用搜索,多查资料,先搜再问。
bmyyyud
驱动老牛
驱动老牛
  • 注册日期2002-02-22
  • 最后登录2010-01-21
  • 粉丝0
  • 关注0
  • 积分1000分
  • 威望130点
  • 贡献值0点
  • 好评度106点
  • 原创分0分
  • 专家分0分
地板#
发布于:2005-06-08 09:46
为什么路径是类似这样的?
#define DEFAULT_LOG_FILE_NAME L\"\\\\??\\\\C:\\\\tmp\\\\parallel.log\"
\\\\??\\\\是什么意思?要求的格式?

我zwcreatefile之后返回的status是c000003a,
大家帮我分析一下

[编辑 -  6/7/05 by  zhjie374]

看我在你那个帖子的回复,??代表GLOBAL全局名称空间
滚滚长江东逝水 浪花淘尽英雄 是非成败转头空 青山依旧在 几度夕阳红 白发渔樵江渚上 惯看秋月春风 一壶浊酒喜相逢 古今多少事 尽付笑谈中
michaelgz
论坛版主
论坛版主
  • 注册日期2005-01-26
  • 最后登录2012-10-22
  • 粉丝1
  • 关注1
  • 积分150分
  • 威望1524点
  • 贡献值1点
  • 好评度213点
  • 原创分0分
  • 专家分2分
地下室#
发布于:2005-06-07 22:41
\"\\??\" is related to Windows Named Object. Windows access its resources by named objects through Object Manager.. Object names are kept in a directory format. The directory \"\\??\" is for MS-DOS device names. It\'s symbolic link name is \"\\DosDevices\". You can also try to use this symbolic link. The book \"Microsoft Windows Internals\" has a very good chapter about it.

The error C000003A means file name is not correct. Maybe your ObjectAttribute is not constructed correctly. Here\'s a sample to construct it:

OBJECT_ATTRIBUTES ObjAttrs;
UNICODE_STRING Name;
RtlInitUnicodeString(&Name, L\"\\\\??\\\\C:\\\\tmp\\\\parallel.log\");
InitializeObjectAttributes(&ObjAttrs,
&Name,
OBJ_CASE_INSENSITIVE,
NULL,
NULL);

Also like the guy above said you have to be careful where you call ZwCreateFile(). It can only be called under PASSIVE_LEVEL.

[编辑 -  6/7/05 by  michaelgz]
joshua_yu
驱动小牛
驱动小牛
  • 注册日期2004-12-06
  • 最后登录2010-12-01
  • 粉丝0
  • 关注0
  • 积分428分
  • 威望54点
  • 贡献值0点
  • 好评度41点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2005-06-07 20:39
你在什么地方调用的这些函数,这个比较关键,否则不好回答.
niceboy
驱动牛犊
驱动牛犊
  • 注册日期2003-04-23
  • 最后登录2010-03-12
  • 粉丝0
  • 关注0
  • 积分107分
  • 威望103点
  • 贡献值0点
  • 好评度6点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2005-06-07 20:20
我也想知道,
哈哈哈我问了数天都没人知道,
zhjie374
驱动小牛
驱动小牛
  • 注册日期2004-10-27
  • 最后登录2012-01-17
  • 粉丝2
  • 关注1
  • 积分17分
  • 威望144点
  • 贡献值1点
  • 好评度21点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2005-06-07 18:45
为什么路径是类似这样的?
#define DEFAULT_LOG_FILE_NAME L\"\\\\??\\\\C:\\\\tmp\\\\parallel.log\"
\\\\??\\\\是什么意思?要求的格式?

我zwcreatefile之后返回的status是c000003a,
大家帮我分析一下

[编辑 -  6/7/05 by  zhjie374]
游客

返回顶部