internal HidDevice(HidControl control, string devicePath) { controller = control; dev = new DeviceAccess(devicePath); if (dev.OpenDeviceForIoctl()) { NativeApi.HidD_GetAttributes(dev.Handle, ref Attributes); using (HidPreparsedData preparsedData = new HidPreparsedData(dev.Handle)) { NativeApi.HidP_GetCaps(preparsedData.Handle, ref Capabilities); } if (dev.OpenDeviceForRead()) { ReadThread = new DeviceReadThread(new DeviceAccess(devicePath), new ReceivedReportDelegate(InputPipeReportHandler)); } else { ReadThread = null; } } else { throw new Exception("Unable to access device!"); } }
public DeviceReadThread(DeviceAccess Dev, ReceivedReportDelegate handler) { dev = Dev; InitializeFileStream(); InitializeDelegates(handler); }