积极答复者
DeviceIoControl 参数怎么写出?

问题
答案
-
不知道你们背光驱动是谁开发的,可以和开发驱动的人员直接沟通,主要是设备名称和一个普通的参数的确定,不需要参数含义统一,仅需要和驱动程序接口一致即可。以下代码是我们公司的触摸屏控制背光的程序,仅供参考。
Code Snippet//LCD控制
public const int IOCTL_LCD_ON = 0x6;
public const int IOCTL_LCD_OFF = 0x7;public static int HMIIOControl(string strName, int Flag)
{
//不是WinCE系统则退出
if (Environment.OSVersion.Platform != PlatformID.WinCE) return -1;int hIO = CreateFile(strName, GENERIC_READ | GENERIC_WRITE, 0, NULL, OPEN_EXISTING, FILE_FLAG_OVERLAPPED, 0);
if (hIO == INVALID_HANDLE_VALUE)
{
hIO = NULL;
return -1;
}
if (hIO != NULL)
{
int lpInBuffer = 0;
int lpOutBuffer = 0;
int lpBytesReturned = 0;
DeviceIoControl(hIO, Flag, ref lpInBuffer, NULL, ref lpOutBuffer, NULL, ref lpBytesReturned, NULL);
CloseHandle(hIO);
return 0;
}
return -2;
}
//LCD控制
public static bool IsLCDOpen = true;
public static int LCD(ControlMode Mode)
{
int Flag = IOCTL_LCD_OFF;
switch (Mode)
{
case ControlMode.ON:
Flag = IOCTL_LCD_ON;
IsLCDOpen = true;
break;
case ControlMode.OFF:
IsLCDOpen = false;
Flag = IOCTL_LCD_OFF;
break;
default:
break;
}
return HMIIOControl("BEP1:", Flag);
}
全部回复
-
不知道你们背光驱动是谁开发的,可以和开发驱动的人员直接沟通,主要是设备名称和一个普通的参数的确定,不需要参数含义统一,仅需要和驱动程序接口一致即可。以下代码是我们公司的触摸屏控制背光的程序,仅供参考。
Code Snippet//LCD控制
public const int IOCTL_LCD_ON = 0x6;
public const int IOCTL_LCD_OFF = 0x7;public static int HMIIOControl(string strName, int Flag)
{
//不是WinCE系统则退出
if (Environment.OSVersion.Platform != PlatformID.WinCE) return -1;int hIO = CreateFile(strName, GENERIC_READ | GENERIC_WRITE, 0, NULL, OPEN_EXISTING, FILE_FLAG_OVERLAPPED, 0);
if (hIO == INVALID_HANDLE_VALUE)
{
hIO = NULL;
return -1;
}
if (hIO != NULL)
{
int lpInBuffer = 0;
int lpOutBuffer = 0;
int lpBytesReturned = 0;
DeviceIoControl(hIO, Flag, ref lpInBuffer, NULL, ref lpOutBuffer, NULL, ref lpBytesReturned, NULL);
CloseHandle(hIO);
return 0;
}
return -2;
}
//LCD控制
public static bool IsLCDOpen = true;
public static int LCD(ControlMode Mode)
{
int Flag = IOCTL_LCD_OFF;
switch (Mode)
{
case ControlMode.ON:
Flag = IOCTL_LCD_ON;
IsLCDOpen = true;
break;
case ControlMode.OFF:
IsLCDOpen = false;
Flag = IOCTL_LCD_OFF;
break;
default:
break;
}
return HMIIOControl("BEP1:", Flag);
}