基本信息
源码名称:DDC/CI Tool
源码大小:0.06M
文件格式:.rar
开发语言:C/C++
更新时间:2019-09-07
   友情提示:(无需注册或充值,赞助后即可获取资源下载链接)

     嘿,亲!知识可是无价之宝呢,但咱这精心整理的资料也耗费了不少心血呀。小小地破费一下,绝对物超所值哦!如有下载和支付问题,请联系我们QQ(微信同号):813200300

本次赞助数额为: 2 元 
   源码介绍

为了方便,把关于输入参数有误的打印输出仍然输出到stderr控制台屏幕上,方便及时知道输入命令有误.
对于命令的执行结果无论错误还是正确都输出到stdout上,即可用重定向操作符进行指向要求的打印输出文件.

例如:

ddccitool.exe -r 10 -v -F 2 -t 1000 /dev
则按正常输出到屏幕上.

ddccitool.exe -r 10 -v -F 2 -t 1000 /dev >aout.txt
则结果会输出到当前目录的aout.txt文件上.并覆盖aout.txt原来的内容.


ddccitool.exe -r 10 -v -F 2 -t 1000 /dev >>aout.txt
则结果会输出到当前目录的aout.txt文件上.并以追加的方式,而不会覆盖aout.txt原来的内容.
每一次以============================隔开.

int ioctl_DDCCI_read(HANDLE h_readwrite, unsigned char *buf, unsigned char len)
{
BOOL bRet=FALSE;
DWORD dwRetBytes = 0;
PVENDORCMMD pbuf;
unsigned int usblen;
usblen = sizeof(VENDORCMMD) len;//add length
pbuf = (PVENDORCMMD)malloc(usblen);
if(pbuf == NULL){
fprintf(stdout,"memory alloc failed\n");
return -1;
}

pbuf->bRequest = Get_DDC_CI_Ctrl;
pbuf->wValue= 0;
pbuf->wIndx = 5;
pbuf->dwLenght = len 1;

bRet = DeviceIoControl(h_readwrite, IOCTL_VENDOR_GET, pbuf, usblen, pbuf, usblen, &dwRetBytes, NULL);
//bRet = TRUE; //for test
if (!bRet)
{
    fprintf(stdout,"ioctl()");
    fprintf(stdout,"ioctl returned %d\n",GetLastError());
    free(pbuf);
    return -1;
}
memcpy(buf, &(pbuf->bData[1]), min(len, dwRetBytes-sizeof(VENDORCMMD)));//pbuf->bData[0] is length

free(pbuf);
return min(len, dwRetBytes-sizeof(VENDORCMMD));
}