wzgodzhi
驱动牛犊
驱动牛犊
  • 注册日期2007-01-16
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分760分
  • 威望77点
  • 贡献值0点
  • 好评度76点
  • 原创分0分
  • 专家分0分
阅读:2513回复:12

【求助】PCI驱动一个奇怪的问题,急急急!

楼主#
更多 发布于:2007-06-25 16:34
问题描述:

工具:VC6.0 + XPDDK + DS2.7


首先,我用DS生成了一个驱动框架。编译-》安装-》没有错误(由于我没有插卡,所以安装完之后会有黄色的问号,应该不是这个问题)。


然后,我在XXXDevice.h文件中添加语句:添加了
DEVMEMBER_DMAREADY(XXXDevice, OnDmaReady)
 VOID StartDMA(ULONG PAddress,ULONG NBytes);
 VOID OnDmaReady(KDmaTransfer* pXfer,KIrp I);
 KDmaTransfer*  m_CurrentTransfer;
 ULONG    m_PAddr;
 PVOID    m_LAddr;
 ..................
  等等

编译-》安装-》没有错误


接着,我又在XXXDevice.h中添加了KCommonDmaBuffer m_DmaBuffer;语句(注意,问题来了)。然后重新编译-》安装-》结果:蓝屏直接重启。


请问各位高手,遇到过这种问题没?应该怎么处理?

万分感谢!!!

wzgodzhi
驱动牛犊
驱动牛犊
  • 注册日期2007-01-16
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分760分
  • 威望77点
  • 贡献值0点
  • 好评度76点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2007-06-25 20:58
自己顶一下
急啊!
GoodOnline
驱动小牛
驱动小牛
  • 注册日期2007-04-11
  • 最后登录2009-02-28
  • 粉丝0
  • 关注0
  • 积分4分
  • 威望204点
  • 贡献值0点
  • 好评度191点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2007-06-26 09:26
debugging this issue
wzgodzhi
驱动牛犊
驱动牛犊
  • 注册日期2007-01-16
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分760分
  • 威望77点
  • 贡献值0点
  • 好评度76点
  • 原创分0分
  • 专家分0分
地板#
发布于:2007-06-26 10:28
楼上的啥意思呀?
能否说的详细点呢?
谢谢!!!!!!!!!!!!!!!!!!!!!!
wzgodzhi
驱动牛犊
驱动牛犊
  • 注册日期2007-01-16
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分760分
  • 威望77点
  • 贡献值0点
  • 好评度76点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2007-07-03 16:03
补充一下:
安装驱动的时候SOFTICE跳出来提示:ASSERT failed:m_pVirtualBase==NULL
E:\Program Files\Compuware\SoftICE Driver Suite\DriverWorks\source\kadapter.cpp    line195  
就是调用m_DmaBuffer.Initialize(&m_Dma,0x100000);时去调用了kadapter.cpp中的
VOID KCommonDmaBuffer::Initialize(
    KDmaAdapter* pAdapter,
    ULONG size,
    BOOLEAN CacheEnabled
    )
{
    if (IsValid())
    {
        ASSERT(m_pVirtualBase==NULL);  ---》》195行
        Invalidate();
    }

    m_pAdapter = pAdapter;
    m_Size = size;
    m_CacheEnabled = CacheEnabled;

    _construct();
}
请问是什么原因呀?
高手指教一下,现在因为这个问题十分困惑啊
zhangwei_351286
驱动牛犊
驱动牛犊
  • 注册日期2006-10-08
  • 最后登录2008-01-22
  • 粉丝0
  • 关注0
  • 积分140分
  • 威望15点
  • 贡献值0点
  • 好评度14点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2007-07-04 13:14
先创建一个DMA适配器对象,然后用这个对象将你的commonbuffer进行初始化
并分配你要的空间大小就可以了。再有问题,再
联系
nmshizhu13181
驱动牛犊
驱动牛犊
  • 注册日期2007-10-29
  • 最后登录2007-11-07
  • 粉丝0
  • 关注0
  • 积分30分
  • 威望4点
  • 贡献值0点
  • 好评度3点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2007-11-07 17:44
ooooo
nmshizhu13181
驱动牛犊
驱动牛犊
  • 注册日期2007-10-29
  • 最后登录2007-11-07
  • 粉丝0
  • 关注0
  • 积分30分
  • 威望4点
  • 贡献值0点
  • 好评度3点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2007-11-07 17:45
KCommonDmaBuffer m_DmaBuffer没有初始化
nmshizhu13181
驱动牛犊
驱动牛犊
  • 注册日期2007-10-29
  • 最后登录2007-11-07
  • 粉丝0
  • 关注0
  • 积分30分
  • 威望4点
  • 贡献值0点
  • 好评度3点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2007-11-07 17:47
KCommonDmaBuffer m_DmaBuffer没有初始化KCommonDmaBuffer m_DmaBuffer没有初始化   setup一下,安装完驱动,是不是会访问?
heartofdra
驱动牛犊
驱动牛犊
  • 注册日期2003-03-11
  • 最后登录2016-09-21
  • 粉丝0
  • 关注0
  • 积分443分
  • 威望88点
  • 贡献值0点
  • 好评度43点
  • 原创分0分
  • 专家分0分
  • 社区居民
9楼#
发布于:2007-11-08 17:52
你用Wizard新建个工程把, 在之中选择分配一个CommmBufer, 这样生成的框架中这个buffer就自动给你初始化好了
heartofdra
驱动牛犊
驱动牛犊
  • 注册日期2003-03-11
  • 最后登录2016-09-21
  • 粉丝0
  • 关注0
  • 积分443分
  • 威望88点
  • 贡献值0点
  • 好评度43点
  • 原创分0分
  • 专家分0分
  • 社区居民
10楼#
发布于:2007-12-01 02:22
  哦,你的是2.7啊,这个得自己初始化

  3.2的话,Wizard时选择分配一个CommmBufer,会自动生成初始化的代码
mxyssz
驱动牛犊
驱动牛犊
  • 注册日期2008-02-26
  • 最后登录2008-06-10
  • 粉丝0
  • 关注0
  • 积分120分
  • 威望14点
  • 贡献值1点
  • 好评度13点
  • 原创分0分
  • 专家分0分
11楼#
发布于:2008-02-26 22:18
m_DmaBuffer.Initialize(&m_Dma,0x100000);
就是这个,我给m_DmaBuffer分配内存的时候就不行,望赐教
mxyssz
驱动牛犊
驱动牛犊
  • 注册日期2008-02-26
  • 最后登录2008-06-10
  • 粉丝0
  • 关注0
  • 积分120分
  • 威望14点
  • 贡献值1点
  • 好评度13点
  • 原创分0分
  • 专家分0分
12楼#
发布于:2008-02-26 22:21
怎样初始化CommmBufer啊
游客

返回顶部