gxjt
驱动老牛
驱动老牛
  • 注册日期2002-03-26
  • 最后登录2006-06-07
  • 粉丝0
  • 关注0
  • 积分9分
  • 威望2点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1032回复:9

这是为什么?

楼主#
更多 发布于:2002-07-29 15:52
请看下面的程序:
KMemory Mem(I.Mdl()); // Declare a memory object
// Use the memory object to create a pointer to the caller\'s buffer
PUCHAR pBuffer = (PUCHAR) Mem.VirtualAddress();

ULONG   dwTotalSize = I.ReadSize(CURRENT); // Requested read size
ULONG   dwBytesRead = 0; // Count of bytes read

KIoRange   m_ParPortIos;
NTSTATUS status1 = m_ParPortIos.Initialize(
0x378,  // LPT1 Bus address
  TRUE,  //InCpuIoSpace
8,      // Device size
TRUE  // Map to system space
  );
if(status1!=STATUS_SUCCESS)
{
I.Information() = 0;
return I.PnpComplete(this, STATUS_SUCCESS);
}
#define CONTROL 2  //(37A)
#define ADDRESS 3  //(37B)
#define EDATA   4  //(37C)
PUCHAR ppBuffer =new UCHAR[dwTotalSize+1];
for(int i=0;i<dwTotalSize;i++)
*(ppBuffer+i)=\'0\'+i;

    m_ParPortIos.outb(CONTROL,0x80);//&frac12;&ucirc;&Ouml;&sup1;&Ouml;&ETH;&para;&Iuml;
m_ParPortIos.outb(ADDRESS,0);
m_ParPortIos.outb(EDATA,ppBuffer,dwTotalSize);
m_ParPortIos.inb(EDATA,pBuffer,dwTotalSize);
ppBuffer[]的内容为\"0,1,2,3,4,5,6...\",可为什么pBuffer[]的内容为\"FF,FF,FF,FF....\"啊

[编辑 -  7/30/02 by  yunfangfan]

[编辑 -  7/30/02 by  yunfangfan]
[color=red] “阿弥陀佛,无上医王,舍此不求,是谓痴狂。” “一句弥陀,阿伽陀药,舍此不服,是谓大错。” 南无阿弥陀佛......[/color]
arthurtu
驱动巨牛
驱动巨牛
  • 注册日期2001-11-08
  • 最后登录2020-12-19
  • 粉丝0
  • 关注0
  • 积分26分
  • 威望161点
  • 贡献值0点
  • 好评度35点
  • 原创分0分
  • 专家分0分
  • 社区居民
沙发#
发布于:2002-07-29 16:44
for(int i=0;i<dwTotalSize;i++)
ppBuffer=\'0\'+i;

ppBuffer是\"01234...\"吗?
gxjt
驱动老牛
驱动老牛
  • 注册日期2002-03-26
  • 最后登录2006-06-07
  • 粉丝0
  • 关注0
  • 积分9分
  • 威望2点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2002-07-29 16:45
是呀,没错啊
[color=red] “阿弥陀佛,无上医王,舍此不求,是谓痴狂。” “一句弥陀,阿伽陀药,舍此不服,是谓大错。” 南无阿弥陀佛......[/color]
tigerzd
驱动老牛
驱动老牛
  • 注册日期2001-08-25
  • 最后登录2004-12-13
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2002-07-29 17:29
ppBuffer=\'0\'+i;什么语法?
应该是ppBuffer=\'0\'+i;吧?
犯强汉者,虽远必诛! [img]http://www.driverdevelop.com/forum/upload/tigerzd/2002-12-13_sf10.JPG[/img]
chnh
驱动小牛
驱动小牛
  • 注册日期2002-04-09
  • 最后登录2004-02-16
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2002-07-29 17:35
ppBuffer=\'0\'+i
ppBuffer应是指针
gxjt
驱动老牛
驱动老牛
  • 注册日期2002-03-26
  • 最后登录2006-06-07
  • 粉丝0
  • 关注0
  • 积分9分
  • 威望2点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2002-07-29 17:38
ppBuffer=\'0\'+i;什么语法?
应该是ppBuffer=\'0\'+i;吧?

本来就是嘛,ppBuffer本来是不需要的,我只是想看看读取的数据为什么不对,我用SOFTICE跟踪发现ppBuffer是0,1,2,3,4,5,6...可马上读出到pBuffer就不对了,变成了FF,FF,FF,FF,FF,FF,FF...你说咋会事啊
[color=red] “阿弥陀佛,无上医王,舍此不求,是谓痴狂。” “一句弥陀,阿伽陀药,舍此不服,是谓大错。” 南无阿弥陀佛......[/color]
arthurtu
驱动巨牛
驱动巨牛
  • 注册日期2001-11-08
  • 最后登录2020-12-19
  • 粉丝0
  • 关注0
  • 积分26分
  • 威望161点
  • 贡献值0点
  • 好评度35点
  • 原创分0分
  • 专家分0分
  • 社区居民
6楼#
发布于:2002-07-29 17:39
选上“不使用smileys?”再写代码,看看。
gxjt
驱动老牛
驱动老牛
  • 注册日期2002-03-26
  • 最后登录2006-06-07
  • 粉丝0
  • 关注0
  • 积分9分
  • 威望2点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2002-07-29 17:41
选上“不使用smileys?”再写代码,看看。

在哪儿选上“不使用smileys?”
[color=red] “阿弥陀佛,无上医王,舍此不求,是谓痴狂。” “一句弥陀,阿伽陀药,舍此不服,是谓大错。” 南无阿弥陀佛......[/color]
matt
驱动中牛
驱动中牛
  • 注册日期2001-07-24
  • 最后登录2016-02-25
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2002-07-29 17:43

 ...

for(int i=0;i<dwTotalSize;i++)
ppBuffer=\'0\'+i;

...



应写在:

for(int i=0;i<dwTotalSize;i++)
*(ppBuffer + i)=\'0\'+i;

对你的code表示强烈不解!

System Internals http://sys.xiloo.com
arthurtu
驱动巨牛
驱动巨牛
  • 注册日期2001-11-08
  • 最后登录2020-12-19
  • 粉丝0
  • 关注0
  • 积分26分
  • 威望161点
  • 贡献值0点
  • 好评度35点
  • 原创分0分
  • 专家分0分
  • 社区居民
9楼#
发布于:2002-07-29 18:07
在回复帖子的下面。
游客

返回顶部