barton
驱动牛犊
驱动牛犊
  • 注册日期2003-06-10
  • 最后登录2008-12-18
  • 粉丝0
  • 关注0
  • 积分13分
  • 威望52点
  • 贡献值0点
  • 好评度17点
  • 原创分0分
  • 专家分0分
阅读:754回复:0

还是内存问题

楼主#
更多 发布于:2004-06-08 09:52
如果我自己定义一个这样的结构:
typedef struct tagPacket {
UCHAR Channel;
ULONG Length;
PVOID Buffer;
HANDLE hEvent;
}PACKET,*LPPACKET;
其中,指向缓冲区的指针Buffer由内存分配符new进行分配,如下所示:
    LPACKET pSndPacket = new PACKET;
    LPBYTE  pBuffer = new BYTE[200];
    
    pSndPacket->Buffer = pBuffer;
    pSndPacket->Channel = 0;
    pSndPacket->Length = 200;
    pSndPacket->hEvent = NULL;
    
    BOOL bResult = DeviceIoControl(m_hDevice,RELAY_IOCTL_SEND,pSndPacket,sizeof(PACKET),
NULL,0,&dwBytesTransfered,NULL);

那么,我在驱动程序里面,得到的指向缓冲区的指针pSndPacket->Buffer可以直接引用吗?(我总觉得不能用)如果想用,那怎么转换呢?
我的开发环境是driverstudio 2.7 + windows2000 + vc6.0
清风拂柳
游客

返回顶部