nopq645

个性签名:水宜生 水宜生水杯 水宜生健康杯 水宜生保健杯

    1. 背光亮度调整时,写注册表失败 13/4704 嵌入式系统 2009-01-09
      谢谢大家,我是使用了DeviceIOControl,我再把我的执行流程说一遍,请大家帮忙检查一下: 1、背光驱动中设置IOControl,定义一个#define IOCTL_BACKLIGHT_CONTROL 0x10 2、在case IOCTL_BACKLIGHT_CONTROL下,程序如下:    if(*lpInBuf==1)          SetBacklightStatus(TRUE);    else          SetBacklightStatus(FALSE); 复制代码 3、上述设置是在MDD下做的,现在在PDD中ms2_backlight.cpp中,添加一楼所说的注册表读取和写入的函数,和设置背光值的函数,pBrightness也是在这里定义的。通过读注册表,可以读出pBrightness的值,然后通过SetBacklightStatus函数,即TRUE,则pBrightness+1,FALSE则pBrightness-1。然后将改变后的值写回注册表。顺便说一句,得到pBrightness的值后,我会有一个SetPWM函数来通过pBrightness改变当前背光的状态,背光是通过改变PWM而改变的。 4、在外部驱动调用IOControl,我是在键盘驱动中调用的,类似于我们的笔记本,键盘上有两个键,一个是增加背光,一个是减少背光,调用方式如下:                                        BYTE state = 0;                                           if ((blHandleMon = CreateFile(L"BKL1:", GENERIC_READ | GENERIC_WRITE,                                                              FILE_SHARE_READ | FILE_SHARE_WRITE,                                                              NULL, OPEN_EXISTING, 0, 0)) == INVALID_HANDLE_VALUE)                               {                                          RETAILMSG(1, (TEXT("PwrButtonIntrThread: backlight driver not found.  Error %d\r\n"),                                                      GetLastError()));                               }                                                     DeviceIoControl(blHandleMon,0x10,&state,sizeof(BYTE),NULL,0,NULL,NULL);                                                             RETAILMSG(1, (TEXT("Keyboard: Backlight++\r\n")));                                                             CloseHandle(blHandleMon);复制代码 这就是我的整个设计流程,请大家在帮忙看看。 另外,我的背光驱动中有一个void BacklightRegChanged()函数,但是这个函数是空的,并没有实现。 谢谢!

最近访客

< 1/1 >

统计信息

已有14人来访过

  • 芯积分:--
  • 好友:--
  • 主题:--
  • 回复:1

留言

你需要登录后才可以留言 登录 | 注册


现在还没有留言