&引用;“访问被拒绝”;USB-HID通信的JNA中断写入实现

&引用;“访问被拒绝”;USB-HID通信的JNA中断写入实现,usb,jna,hid,Usb,Jna,Hid,在此链接中使用库 我已经修改了这段代码,使用中断传输在HID设备上发送数据 public byte SetInReport(byte[] buffer, int buffersize) { if (HIDHandle.equals(WinBase.INVALID_HANDLE_VALUE)) { return HID_DEVICE_NOT_OPENED; } IntByReference bWritten = new

在此链接中使用库

我已经修改了这段代码,使用中断传输在HID设备上发送数据

public byte SetInReport(byte[] buffer, int buffersize) {
            if (HIDHandle.equals(WinBase.INVALID_HANDLE_VALUE)) {
            return HID_DEVICE_NOT_OPENED;
        }
        IntByReference bWritten = new IntByReference();

        boolean Status = Kernel32.INSTANCE.WriteFile(HIDHandle, buffer, buffersize, bWritten, null);
        if (Status == false) {
            debug("Write File: " + getSystemError(Kernel32.INSTANCE.GetLastError()));
            //System.out.println("Fail");
            return HID_DEVICE_TRANSFER_FAILED;

        }
        else {
            System.out.println("Successful!!!");
            //System.out.println("buffer in communication.java = "+buffer[1]);
            return HID_DEVICE_SUCCESS;
        }

        }

调试显示“访问被拒绝”消息。只是想知道这个问题的根源是什么。任何形式的帮助都将不胜感激。谢谢

打开services.msc,打开HID输入服务并确保它在本地系统帐户下运行。注意:为什么我在尝试访问HID时收到“拒绝访问”<代码>Windows 2000及更高版本对配置为系统键盘或鼠标的HID具有独占读/写访问权限。应用程序可以通过不请求CreateFile的读写访问来获得系统键盘或鼠标的句柄。然后,应用程序可以使用HidD_SetFeature和HidD_GetFeature(如果设备支持功能报告)。Hi ee,谢谢您的回答!我已经检查了services.msc,它已经在本地帐户下运行。发现我的Hid设备没有任何问题,但每当我尝试中断读取或中断写入时,调试会显示“访问被拒绝”。