C# LibUsbDotNet符号名称错误

C# LibUsbDotNet符号名称错误,c#,usb,libusb,libusbdotnet,C#,Usb,Libusb,Libusbdotnet,我无法从LibUsb中读出符号名。 以下是一些示例代码: static void Main(string[] args) { var devs = UsbDevice.AllDevices; foreach (UsbRegistry usbRegistry in devs) { String name = usbRegistry.SymbolicName; } Console.ReadLine(); UsbDevice.Exit(); } 字符串名称不包含正确的符号名称。我不知道为什么

我无法从LibUsb中读出符号名。 以下是一些示例代码:

static void Main(string[] args)
{
var devs = UsbDevice.AllDevices;
foreach (UsbRegistry usbRegistry in devs)
{
    String name = usbRegistry.SymbolicName;
}
Console.ReadLine();
UsbDevice.Exit();
}
字符串名称不包含正确的符号名称。我不知道为什么

问题似乎出在LibUsbRegistry.cs上。职能:

internal ErrorCode GetCustomDeviceKeyValue(SafeFileHandle usbHandle, string key, out byte[] propData, int maxDataLength)
使用参数LibUsbIoCtl.GET_CUSTOM_REG_属性调用LibUsbDriverIO.UsbIOSync 在LibUsbDriverIO.cs中,函数UsbIOSync调用Kernel32.DeviceIoControlAsObject。此函数返回false

一些代码:

图书馆注册:

bool bSuccess = LibUsbDriverIO.UsbIOSync(usbHandle,
                                                 LibUsbIoCtl.GET_CUSTOM_REG_PROPERTY,
                                                 bytesReq,
                                                 bytesReq.Length,
                                                 gcbytesReq.AddrOfPinnedObject(),
                                                 bytesReq.Length,
                                                 out iReturnBytes);
LibUsbDriverIO:

!Kernel32.DeviceIoControlAsObject(dev, code, inBuffer, inSize, outBuffer, outSize, ref ret, deviceIoOverlapped.GlobalOverlapped)

LibUsbIoCtl.GET_CUSTOM_REG_属性出现问题。但这些都是来自LibUsb的预编译代码。。那么为什么不可能读出符号名呢

您应该将其解释为“没有符号名”。您可以将获得的内容与注册表的内容关联起来。启动Regedit.exe并导航到HKEY\U LOCAL\U MACHINE\SYSTEM\CurrentControlSet\Enum\USB。您将看到机器设备的VID和PID键。接口子项具有“设备参数”子项,其中包含“SymbolicName”值

我的机器上有几个没有那个价值。您可能希望这种USB驱动程序能够提供与设备对话的另一种方式,例如串口仿真器