请高手进来看看这是什么原因,我到底错在哪?
下面是我写的一个利用DeviceIoControl获取液晶显示器LCD所支持的亮度,但为什么输出的结果都是“failed ” 并且利用GetLastError()得到的错误代码是1.
请问,我这个程序到底错在哪里 ???
请帮帮小弟
#include <windows.h>
#include <winioctl.h>
#include <iostream.h>
#define IOCTL_VIDEO_QUERY_SUPPORTED_BRIGHTNESS \
CTL_CODE(FILE_DEVICE_VIDEO, 0x125, METHOD_BUFFERED, FILE_ANY_ACCESS)
int main(int argc,char *argv[])
{
DWORD SupportedLevel[256]={0};
BOOL bResult;
HANDLE hDevice;
DWORD m_return;
hDevice = CreateFile("\\\\.\\LCD",
0,
FILE_SHARE_READ|
FILE_SHARE_WRITE,
NULL,
OPEN_EXISTING,
0,
NULL);
if(INVALID_HANDLE_VALUE==hDevice)
{
cout<<"error"<<endl;
return FALSE;
}
bResult = DeviceIoControl(hDevice,
IOCTL_VIDEO_QUERY_SUPPORTED_BRIGHTNESS,
NULL,0,
SupportedLevel,sizeof(SupportedLevel),
&m_return,
(LPOVERLAPPED)NULL);
CloseHandle(hDevice);
if(bResult)
{
cout<<"suceess"<<endl;
}
else
{
cout<<"failed "<<GetLastError()<<endl;
}
return ((int)bResult);
}