4440|6

74

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

如何让驱动不自动加载? [复制链接]

WINCE下如何能让驱动不在启动时加载,是修改注册表还是有什么其它的方法?我想在应用程序里用ActivateDeviceEx手动加载。

最新回复

你没有BSP的吗?你道德得保证重启之后注册表能保存。  详情 回复 发表于 2008-11-1 09:16
点赞 关注

回复
举报

69

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
Windows中是把驱动程序注册表键中的Start值设置为3,CE不知道是否相同。
 
 

回复

82

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
你把驱动从注册表中HKEY_Local_Machine/Drivers/BuiltIn下面拿掉。应该就不会被自动加载了。
 
 
 

回复

103

帖子

0

TA的资源

一粒金砂(初级)

4
 
从HKEY_Local_Machine/Drivers/BuiltIn下删除后重启又自动加载了,而且BuiltIn下又出现了该驱动的键值,不知为何。而且我的驱动每次加载运行到KernelIoControl函数都会出现Data Abort数据中止异常,请高手们指教。我的GIO_Init()函数代码如下:

        g_DmaBuffer = (DWORD *)VirtualAlloc(0, DMA_Buffer_Size, MEM_RESERVE, PAGE_NOACCESS);
        if (g_DmaBuffer == NULL)
        {
                RETAILMSG(1,(TEXT("For g_DmaBuffer : VirtualAlloc failed! error code %d\r\n"),GetLastError()));
        }
        else
        {
                if (!VirtualCopy((PVOID)g_DmaBuffer, (PVOID)(DMA_Buffer_PA>> 8),
                        TOTAL_LENGTH, PAGE_PHYSICAL | PAGE_READWRITE | PAGE_NOCACHE))
                {
                        RETAILMSG(1,(TEXT("For g_DmaBuffer: VirtualCopy failed!\r\n")));
                }
        }
        RETAILMSG(1,(TEXT("DMA Buffer Pointer g_DmaBuffer: 0x%08X\r\n"),g_DmaBuffer));

        RETAILMSG(1,(TEXT("Set DMA/CAM Clock Register\r\n")));
        unsigned int dmaclk;

        clkdiv1 = (clkdiv1 & ~(0xf<<26))|((CAMDIV & 0xf)<< 26);
        dmaclk = 96000000/(CAMDIV+1);
        RETAILMSG(1,(TEXT("DMA Clock(Hz):%d\r\n"),dmaclk));

        hclkcon |= (1<<8)|(0x3F<<0); //DMA channel 0~6 HCLK enable//HCLK into camera enable
        sclkcon |= (1<<11); // Camera clock enable
        misccr  = (misccr & ~(7<<8))|(3<<8);
        RETAILMSG(1,(TEXT("MISCCR Register output: 0x%08X\r\n"),misccr));
        g_dwDMAIrq = IRQ_DMA5;

        if (!KernelIoControl(IOCTL_HAL_REQUEST_SYSINTR, &g_dwDMAIrq, sizeof(UINT32),
            (LPVOID)(g_vDmaISTData->g_dwDMASysIrq), sizeof(UINT32), NULL))
        {
                RETAILMSG(1, (TEXT("ERROR: GIO_INIT: Failed to request sysintr value for DMA interrupt.\r\n")));
                return FALSE;
        }
        RETAILMSG(1,(TEXT("INFO: GIO_INIT: Mapped Irq 0x%x to SysIntr 0x%x.\r\n"), g_dwDMAIrq, g_vDmaISTData->g_dwDMASysIrq));

        InitializeCriticalSection(&dma_Lock);
        RETAILMSG(1,(TEXT("[GIO_Init]: Initialize Critical Section.\r\n")));
       
        g_vDmaISTData->abort = TRUE;
        RETAILMSG(1,(TEXT("Start to request sysintr\r\n")));
       
        if (!InitDmaInterrupt())
        {
        //RETAILMSG(1,(TEXT("Fail to initialize DMA interrupt event\r\n")));
        return FALSE;
        }
 
 
 

回复

63

帖子

0

TA的资源

一粒金砂(初级)

5
 
你从哪里拿掉的?直接从设备上?
你从你的.reg文件里面把它去掉,然后重新Build image。
 
 
 

回复

69

帖子

0

TA的资源

一粒金砂(初级)

6
 
你没有BSP的吗?
 
 
 

回复

76

帖子

0

TA的资源

一粒金砂(初级)

7
 
你没有BSP的吗?你道德得保证重启之后注册表能保存。
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/7 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表