writefile-求大神帮忙! WriteFile 写入长度只能为9 什么7啊 8啊 10啊都报错!

问题描述

求大神帮忙! WriteFile 写入长度只能为9 什么7啊 8啊 10啊都报错!
之前下资料币用完了 ! 好人全家幸福 一生平安
DevHID::DevHID(WORD vid WORD pid)
{
if (GetDevicePath(vid pid))
{
writeHandle = CreateFile(devDetail->DevicePath
GENERIC_WRITE | GENERIC_READ
FILE_SHARE_READ | FILE_SHARE_WRITE
NULL
OPEN_EXISTING
FILE_ATTRIBUTE_NORMAL | FILE_FLAG_OVERLAPPED
NULL);

    if (writeHandle == INVALID_HANDLE_VALUE)    {        cout << ""创建写句柄失败!"" << endl;    }    readHandle = CreateFile(devDetail->DevicePath        GENERIC_WRITE | GENERIC_READ        FILE_SHARE_READ | FILE_SHARE_WRITE        NULL        OPEN_EXISTING        FILE_ATTRIBUTE_NORMAL | FILE_FLAG_OVERLAPPED        NULL);    if (readHandle == INVALID_HANDLE_VALUE)    {        cout << ""创建读句柄失败!"" << endl;    }}else{    cout << ""获取设备路径失败!"" << endl;}

}

BOOL DevHID::GetDevicePath(DWORD VID DWORD PID)
{
HDEVINFO hDevInfo; // 设备信息结构
GUID hidGuid; // 设备接口类

ULONG  requiredLength;        //  指定接受缓冲区大小;  //  设备句柄HANDLE hidHandle;//  用于接受VID PID_HIDD_ATTRIBUTES hidAttributes;//  获取符合条件的设备信息HidD_GetHidGuid(&hidGuid);//  获得信息hDevInfo = SetupDiGetClassDevs(    &hidGuid    NULL    NULL    (DIGCF_PRESENT | DIGCF_DEVICEINTERFACE));if (hDevInfo == INVALID_HANDLE_VALUE){    return FALSE;  //  错误返回}SP_DEVICE_INTERFACE_DATA devInfoData;       //  设备信息集合devInfoData.cbSize = sizeof(SP_DEVICE_INTERFACE_DATA);for (int deviceNo = 0; deviceNo < 20; deviceNo++){    //  枚举设备    if (!SetupDiEnumInterfaceDevice(        hDevInfo        &hidGuid        deviceNo        &devInfoData))    {        //  错误返回        SetupDiDestroyDeviceInfoList(hDevInfo);        return FALSE;     }    //   获得缓冲区大小    SetupDiGetInterfaceDeviceDetail(hDevInfo        &devInfoData        NULL        &requiredLength // 接受缓冲区大小        NULL);    //  根据返回的信息分配缓冲区大小    devDetail = (PSP_INTERFACE_DEVICE_DETAIL_DATA)malloc(requiredLength);    //  指定大小    devDetail->cbSize = sizeof(SP_INTERFACE_DEVICE_DETAIL_DATA);    //  填充设备路径信息缓冲区    if (!SetupDiGetInterfaceDeviceDetail(hDevInfo        &devInfoData        devDetail        requiredLength        NULL        NULL))    {        SetupDiDestroyDeviceInfoList(hDevInfo);        free(devDetail);        return FALSE;    }    //  打开设备    hidHandle = CreateFile(devDetail->DevicePath        NULL        FILE_SHARE_READ | FILE_SHARE_WRITE        NULL        OPEN_EXISTING        FILE_ATTRIBUTE_NORMAL        NULL);    if (hidHandle == INVALID_HANDLE_VALUE)    {        // 失败        SetupDiDestroyDeviceInfoList(hDevInfo);        CloseHandle(hidHandle);        free(devDetail);        return FALSE;    }    if (!HidD_GetAttributes(hidHandle &hidAttributes))    {        //  获得失败        SetupDiDestroyDeviceInfoList(hDevInfo);        CloseHandle(hidHandle);        free(devDetail);        return FALSE;    }    if ((VID == hidAttributes.VendorID  &&         PID == hidAttributes.ProductID))    {        //  匹配并退出        SetupDiDestroyDeviceInfoList(hDevInfo);        CloseHandle(hidHandle);        return TRUE;    }}SetupDiDestroyDeviceInfoList(hDevInfo);CloseHandle(hidHandle);return FALSE;

}

OVERLAPPED WriteOverlapped;
WriteOverlapped.Offset = 0;
WriteOverlapped.OffsetHigh = 0;

WriteOverlapped.hEvent = CreateEvent(NULL TRUE FALSE NULL);char WriteReportBuffer[64];WriteReportBuffer[0] = 0x00;    WriteReportBuffer[1] = 0x10;WriteReportBuffer[2] = 0x20;WriteReportBuffer[3] = 0x30;WriteReportBuffer[4] = 0x40;WriteReportBuffer[5] = 0x30;WriteReportBuffer[6] = 0x40;WriteFile(writeHandle    WriteReportBuffer    NULL    &WriteOverlapped);cout << ""CODE:"" << GetLastError() << endl;switch (WaitForSingleObject(WriteOverlapped.hEvent 2000)){case WAIT_OBJECT_0:    cout << "" 函数返回成功!"" << endl;    return;case WAIT_TIMEOUT:    cout << "" 间隔时间到!"" << endl;    return;case WAIT_FAILED:    cout << ""WaitForSingleObject 失败!"" << endl;    return;default:    cout << ""什么也没有做!"" << endl;}

解决方案

你的方法调用没有问题,第三个参数表示需要将缓冲区中多少字节的数据写入问题,只要这个值不超过缓冲区的长度,应该是没有问题的。
你调用不是9时报的错误信息是什么呢?

时间: 2024-09-18 09:29:44

writefile-求大神帮忙! WriteFile 写入长度只能为9 什么7啊 8啊 10啊都报错!的相关文章

汇编-做对了 为什么提交不上去呢?求大神帮忙看下 奇数和偶数分离的问题

问题描述 做对了 为什么提交不上去呢?求大神帮忙看下 奇数和偶数分离的问题 #include //我感觉思路已经很清晰了 int main() { int array[10]; int arrayOdd[10][20]; int arrayEven[10][20]; int m , n , i , j; int Kodd=0,Keven=0; scanf("%d",&m); for( i = 1; i <= m; i++) { scanf("%d",&

jdk-执行source /etc/profile时候报如下错误,求大神帮忙!

问题描述 执行source /etc/profile时候报如下错误,求大神帮忙! 10C 在/etc/profile配置jdk路径,执行source /etc/profile时候报如下错误:bash: STSIZEpathmunge: command not found export JAVA_HOME=/usr/java/jdk1.6.0_45export PATH=$PATH:$JAVA_HOME/binexport CLASSPATH=.:$JAVA_HOME/lib/tools.jar:

关于js闭包的疑问,求大神帮忙

问题描述 关于js闭包的疑问,求大神帮忙 function createFunction(){ var result = new Array(); for(var i=0;i<10;i++){ result[i]=function(){ return i; }; } return result; }; alert(createFunction());为什么输出是function(){return i;}这个闭包访问不到外包的函数的变量i? 解决方案 alert(createFunction()[

win8-关于mysql的问题,百度上面很多方法我都照着做了,可是还是不行,求大神帮忙看看那

问题描述 关于mysql的问题,百度上面很多方法我都照着做了,可是还是不行,求大神帮忙看看那 我是win8的系统,下载的5.7.10版本,在官网上下载的zip. 有两个问题:1.我在my.ini文件中已经添加了 skip_grant_tables 但是 登陆的时候还是有错误,上图: 2.输入net start mysql启动不了 !图片说明 解决方案 mysql的系统服务是否注册成功,不然net start启动不了 数据库root用户密码是否配置正确 解决方案二: 你确定安装mysql有这么复杂

xml-求大神解答 tabhost+activity跳转页面是屏幕尺寸5.0以上的手机就报错

问题描述 求大神解答 tabhost+activity跳转页面是屏幕尺寸5.0以上的手机就报错 10-08 02:55:31.704: E/AndroidRuntime(1859): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.visionet.vissapp.activity/com.visionet.vissapp.activity.MyBusinessActivity}: android.vi

编码-哈夫曼编译码器,求大神帮忙看看译码的部分,为什么编译不出来?还有可以帮忙加入一段写入文件的程序吗?

问题描述 哈夫曼编译码器,求大神帮忙看看译码的部分,为什么编译不出来?还有可以帮忙加入一段写入文件的程序吗? #include #include #include #define maxsize 100 #define maxsize_1 1000 #define max 100 typedef struct { char data; int weight; int parent; int lchild; int rchild; }huffnode; typedef struct { char

字节 首部长度值-求大神帮忙解决,TCP/IP问题

问题描述 求大神帮忙解决,TCP/IP问题 如果总长度为1200字节而其中1176字节来自高层的数据,那么首部长度值为多少? 解决方案 什么首部? TCP首部(20)?IP首部(20)?还是以太网首部(14)?自己baidu搜下吧,有很多TCP封包的格式.

c#-求大神帮忙审查一下log4net的数据库配置

问题描述 求大神帮忙审查一下log4net的数据库配置 <!--BufferSize为缓冲区大小,只有日志记录超设定值才会一块写入到数据库--> <!--引用--> <param name=""connectionType"" value=""System.Data.SqlClient.SqlConnection System.Data Version=1.0.3300.0 Culture=neutral Publi

设计-关于一个单词匹配的题目,得不到想要的结果,贴出源程序,求大神帮忙~~~

问题描述 关于一个单词匹配的题目,得不到想要的结果,贴出源程序,求大神帮忙~~~ #include#include#include#include#includeint IsOneCharDifferent(char array[255]);int IsIt(char array[255]);int IsMoreOrLessOneChar(char array[255]);//************************************************************