C# 如何打开USB设备进行读/写?

C# 如何打开USB设备进行读/写?,c#,usb,hardware,device,C#,Usb,Hardware,Device,我才刚开始。我正在尝试连接一个通过CAN总线连接的电机,并将USB适配器/USB网关连接到我的电脑。我已经安装了驱动程序和其他东西,设备管理器(DM)告诉我设备工作正常 现在,一步一个脚印:我想连接到那个设备上读或写数据包或其他任何东西。或者至少我想找到它,就像DM找到它一样(如果我拔下它,它会从DM中消失,当我插回它时,它又在那里) 似乎能够打开文件和设备。现在我不想要文件,我想要设备。我可以通过WinApi获得设备的句柄吗?或者有更好的方法吗? 我尝试过的代码: [DllImport("

我才刚开始。我正在尝试连接一个通过CAN总线连接的电机,并将USB适配器/USB网关连接到我的电脑。我已经安装了驱动程序和其他东西,设备管理器(DM)告诉我设备工作正常

现在,一步一个脚印:我想连接到那个设备上读或写数据包或其他任何东西。或者至少我想找到它,就像DM找到它一样(如果我拔下它,它会从DM中消失,当我插回它时,它又在那里)

似乎能够打开文件和设备。现在我不想要文件,我想要设备。我可以通过WinApi获得设备的句柄吗?或者有更好的方法吗?

我尝试过的代码:

[DllImport("kernel32.dll", SetLastError = true, CharSet = CharSet.Auto)]
public static extern IntPtr CreateFile(string filename,
    [MarshalAs(UnmanagedType.U4)] FileAccess access,
    [MarshalAs(UnmanagedType.U4)] FileShare share,
    [Optional] IntPtr securityAttributes,
    [MarshalAs(UnmanagedType.U4)] FileMode creationDisposition,
    [MarshalAs(UnmanagedType.U4)] FileAttributes flagsAndAttributes,
    [Optional] IntPtr templateFile);

IntPtr file = CreateFile(@"USB\VID_0403&PID_ECD9", FileAccess.Read, FileShare.ReadWrite,
    IntPtr.Zero, FileMode.OpenOrCreate, FileAttributes.Device, IntPtr.Zero);`
CreateFile
的结果是
null
(GetLastError=ERROR\u PATH\u NOT\u FOUND)。

您的路径应该是 @“\?\USB#VID#u 0403&PID#u ECD9#000000000 AAA#{ae18aa60-7f6a-11d4-97dd-00010229b959}”

有和。或使用。