当前位置:首页 > 芯闻号 > 充电吧
[导读]直接上代码:// 串口驱动卸载/加载 COM13 BOOL UnloadDeviceDriver(CString csDeviceName) {   BOOL bRet = FALSE;   HAND

直接上代码:



// 串口驱动卸载/加载 COM13
BOOL UnloadDeviceDriver(CString csDeviceName)
{
  BOOL bRet = FALSE;
  HANDLE hFind = INVALID_HANDLE_VALUE;
  if(csDeviceName.IsEmpty())
  {
    return FALSE;
  }
  DevicedeviceType deviceType;
  if(CString(csDeviceName.Right(1)) == _T(":"))
  {
    deviceType = DeviceSearchByLegacyName;
  }
  else
  {
    deviceType = DeviceSearchByDeviceName;
  }
  DEVMGR_DEVICE_INFORMATION devInfo = {0};
  devInfo.dwSize = sizeof(devInfo);
  hFind = FindFirstDevice(deviceType,(LPCVOID)csDeviceName.GetBuffer(),&devInfo);
  if(hFind == INVALID_HANDLE_VALUE)
  {
    return FALSE;
  }
  bRet = DeactivateDevice(devInfo.hDevice);
  FindClose(hFind);
  return bRet;
}
BOOL LoadDeviceDriver(CString csDeviceName)
{
  DWORD dwParam = 89;
  // ActivateDeviceEx(L"\Drivers\BuiltIn\Serial3",NULL,0,&dwParam);
   HANDLE hHd = ActivateDeviceEx(str.GetBuffer(),NULL,0,&dwParam);
  if(NULL == hHd)
  {
    DWORD dwError = GetLastError();
    printf("LoadDeviceDriver Error : %d",dwError);
  }
}
// 电源控制
#define   VIDEOFUNDEVNAME   L"fun1:" 
#define SOFTI2C_IOCTL_TESTPIN 20
#define GSM_POWER_CONTROL_BY_MCU  0
BOOL GSM_Power_On(void)
{
  BOOL bRet;
  BYTE ucPara[3];
  HANDLE hFun1 = INVALID_HANDLE_VALUE;
  ucPara[0] = 1;
  ucPara[1] = 0;
  ucPara[2] = 14; 
  hFun1 = CreateFile(VIDEOFUNDEVNAME, GENERIC_WRITE|GENERIC_READ, 0, NULL, 0, 0, NULL);
  if(INVALID_HANDLE_VALUE == hFun1)
  {
    return FALSE;
  }
  bRet = DeviceIoControl(hFun1, SOFTI2C_IOCTL_TESTPIN, ucPara, 3, NULL, 0, NULL, NULL); 
  if(!bRet)
  {
    RETAILMSG(1,(L"[Power_On]Device IO control failed: %drn",GetLastError()));
  }
  CloseHandle(hFun1);
  hFun1 = INVALID_HANDLE_VALUE;
  RETAILMSG(1,(L"rn open Gprs Power rn"));
  return bRet;
}
BOOL GSM_Power_Off(void)
{
  BOOL bRet;
  BYTE ucPara[3];
  HANDLE hFun1 = INVALID_HANDLE_VALUE;
  ucPara[0] = 0;
  ucPara[1] = 0;
  ucPara[2] = 14;
  hFun1 = CreateFile(VIDEOFUNDEVNAME, GENERIC_WRITE|GENERIC_READ, 0, NULL, 0, 0, NULL);
  if(INVALID_HANDLE_VALUE == hFun1)
  {
    return FALSE;
  }
  bRet = DeviceIoControl(hFun1, SOFTI2C_IOCTL_TESTPIN, ucPara, 3, NULL, 0, NULL, NULL); 
  if(!bRet)
  {
    RETAILMSG(1,(L"[Power_Off]Device IO control failed: %drn",GetLastError()));
  }
  CloseHandle(hFun1);
  hFun1 = INVALID_HANDLE_VALUE;
  RETAILMSG(1,(L"rn close Gprs Power rn"));
  return bRet;
}




本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
关闭
关闭