public bool QueryPipe(IntPtr InterfaceHandle, byte AlternateInterfaceNumber, byte PipeIndex, ref WINUSB_PIPE_INFORMATION PipeInformation) { return(WinUsb_QueryPipe(InterfaceHandle, AlternateInterfaceNumber, PipeIndex, ref PipeInformation)); }
private static extern bool WinUsb_QueryPipe(IntPtr InterfaceHandle, byte AlternateInterfaceNumber, byte PipeIndex, ref WINUSB_PIPE_INFORMATION PipeInformation);
public static bool QueryPipe(IntPtr InterfaceHandle, byte AlternateInterfaceNumber, byte PipeIndex, ref WINUSB_PIPE_INFORMATION PipeInformation) { return WinUsb_QueryPipe(InterfaceHandle, AlternateInterfaceNumber, PipeIndex, ref PipeInformation); }
protected virtual bool InitializeDevice() { try { var ifaceDescriptor = new USB_INTERFACE_DESCRIPTOR(); var pipeInfo = new WINUSB_PIPE_INFORMATION(); if (Usb.QueryInterfaceSettings(_winUsbHandle, 0, ref ifaceDescriptor)) { for (var i = 0; i < ifaceDescriptor.bNumEndpoints; i++) { Usb.QueryPipe(_winUsbHandle, 0, Convert.ToByte(i), ref pipeInfo); if (((pipeInfo.PipeType == USBD_PIPE_TYPE.UsbdPipeTypeBulk) & UsbEndpointDirectionIn(pipeInfo.PipeId))) { BulkIn = pipeInfo.PipeId; Usb.FlushPipe(_winUsbHandle, BulkIn); } else if (((pipeInfo.PipeType == USBD_PIPE_TYPE.UsbdPipeTypeBulk) & UsbEndpointDirectionOut(pipeInfo.PipeId))) { BulkOut = pipeInfo.PipeId; Usb.FlushPipe(_winUsbHandle, BulkOut); } else if ((pipeInfo.PipeType == USBD_PIPE_TYPE.UsbdPipeTypeInterrupt) & UsbEndpointDirectionIn(pipeInfo.PipeId)) { IntIn = pipeInfo.PipeId; Usb.FlushPipe(_winUsbHandle, IntIn); } else if ((pipeInfo.PipeType == USBD_PIPE_TYPE.UsbdPipeTypeInterrupt) & UsbEndpointDirectionOut(pipeInfo.PipeId)) { IntOut = pipeInfo.PipeId; Usb.FlushPipe(_winUsbHandle, IntOut); } } return true; } return false; } catch (Exception ex) { Log.ErrorFormat("{0} {1}", ex.HelpLink, ex.Message); throw; } }
private static extern bool WinUsb_QueryPipe(IntPtr InterfaceHandle, byte AlternateInterfaceNumber, byte PipeIndex, ref WINUSB_PIPE_INFORMATION PipeInformation);