DeviceIoControl 的lpOutBuffer参数值返回错误!!!

menuconfig 2011-01-26 03:09:17
就是想实现应用程序调用iocontrol来读取nand中的数据,但lpOutBuffer返回的都是0xff,真是搞不懂是哪的问题,谢谢大家
应用
hFunction = CreateFile( TEXT("DSK1:"),
FILE_WRITE_ATTRIBUTES,
0,
NULL,
OPEN_EXISTING,
FILE_ATTRIBUTE_NORMAL ,
NULL);
DeviceIoControl(hFunction,READ_FAT, NULL,
0,
&PageBuffer,
KernelPageBase,
NULL,
NULL);
驱动iocontrol中
unsigned int FATPageBase = (unsigned int)nOutBufSize;
case READ_FAT:
{
InitNandCfg();
ReadPage(FATPageBase, (unsigned char *)pOutBuf);
DsNandFlash();
return(FALSE);
}
...全文
126 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
AMOROUS 2011-01-27
  • 打赏
  • 举报
回复
lz的nand操作是否正常
paul_chao 2011-01-27
  • 打赏
  • 举报
回复
可以顯示 Debug Message, 那就簡單了啊, 加入一些 Debug Message, 看看是否讀到的就是 0xFF.

Paul, Chao @ Techware
menuconfig 2011-01-26
  • 打赏
  • 举报
回复
这个没问题,是可以显示调试信息的[Quote=引用 4 楼 paul_chao 的回复:]
引用楼主 menuconfig 的回复:
hFunction = CreateFile( TEXT("DSK1:"),...

驱动iocontrol中
unsigned int FATPageBase = (unsigned int)nOutBufSize;
case READ_FAT:


LZ 的 iocontrol 是否叫作 DSK_IOControl??

建議 LZ……
[/Quote]
paul_chao 2011-01-26
  • 打赏
  • 举报
回复
[Quote=引用楼主 menuconfig 的回复:]
hFunction = CreateFile( TEXT("DSK1:"),...

驱动iocontrol
unsigned int FATPageBase = (unsigned int)nOutBufSize;
case READ_FAT:
[/Quote]

LZ 的 iocontrol 是否叫作 DSK_IOControl??

建議 LZ 在相對應的 Code 加入 Debug Message.

Paul, Chao @ Techware
blancell 2011-01-26
  • 打赏
  • 举报
回复
CreateFile()函数使用不对吧,
应该:CreateFile( TEXT("DSK1:"),
GENERIC_READ,
0,
NULL,
OPEN_EXISTING,
FILE_ATTRIBUTE_NORMAL ,
NULL);
加点调试信息看一下吧.
menuconfig 2011-01-26
  • 打赏
  • 举报
回复
PageBuffer的定义是
unsigned char PageBuffer[2048];
guetcw 2011-01-26
  • 打赏
  • 举报
回复
看看是不是内嵌指针的问题,你在驱动iocontrol中先定义一个缓冲,把数据读到缓冲中再把缓冲的数据复制到你传进来的内存地址去。

19,502

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 嵌入开发(WinCE)
社区管理员
  • 嵌入开发(WinCE)社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧