- DINPUT DEVICE: dwDevType = 0x10214 dwSize = 0x44c guidInstance = {011C1250-93EA-11EC-8002-444553540000} guidProduct = {C2A8046D-0000-0000-0000-504944564944} tszInstanceName = Logitech G940 Joystick tszProductName = Logitech G940 Joystick guidFFDriver = {8D533A50-7A5F-11D3-8297-0050DA1A72D3} wUsagePage = 0x1 wUsage = 0x4 VIDPID = 0xc2a8046d PATH = \\?\hid#vid_046d&pid_c2a8#2&1f563f7a&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030} -- OBJECT: guid = GUID_YAxis dwOfs = 0 dwType = 0x1000102 dwFlags = 0x8101 tszName = Y axis dwFFMaxForce = 0xa dwFFForceResolution = 0x100 wCollectionNumber = 0 wDesignatorIndex = 0 wUsagePage = 0x1 wUsage = 0x31 dwDimension = 0 wExponent = 0 wReportId = 0x1 -- OBJECT: guid = GUID_XAxis dwOfs = 0x4 dwType = 0x1000002 dwFlags = 0x8101 tszName = X axis dwFFMaxForce = 0xa dwFFForceResolution = 0x100 wCollectionNumber = 0 wDesignatorIndex = 0 wUsagePage = 0x1 wUsage = 0x30 dwDimension = 0 wExponent = 0 wReportId = 0x1 -- OBJECT: guid = GUID_POV dwOfs = 0x8 dwType = 0x10 dwFlags = 0x100 tszName = Hat Switch dwFFMaxForce = 0 dwFFForceResolution = 0 wCollectionNumber = 0 wDesignatorIndex = 0 wUsagePage = 0x1 wUsage = 0x39 dwDimension = 0x14 wExponent = 0 wReportId = 0x1 -- OBJECT: guid = GUID_RyAxis dwOfs = 0xc dwType = 0x402 dwFlags = 0x100 tszName = Trim3 dwFFMaxForce = 0 dwFFForceResolution = 0 wCollectionNumber = 0 wDesignatorIndex = 0 wUsagePage = 0x1 wUsage = 0x34 dwDimension = 0 wExponent = 0 wReportId = 0x1 -- OBJECT: guid = GUID_RxAxis dwOfs = 0x10 dwType = 0x302 dwFlags = 0x100 tszName = Trim2 dwFFMaxForce = 0 dwFFForceResolution = 0 wCollectionNumber = 0 wDesignatorIndex = 0 wUsagePage = 0x1 wUsage = 0x33 dwDimension = 0 wExponent = 0 wReportId = 0x1 -- OBJECT: guid = GUID_RzAxis dwOfs = 0x14 dwType = 0x502 dwFlags = 0x100 tszName = Trim1 dwFFMaxForce = 0 dwFFForceResolution = 0 wCollectionNumber = 0 wDesignatorIndex = 0 wUsagePage = 0x1 wUsage = 0x35 dwDimension = 0 wExponent = 0 wReportId = 0x1 -- OBJECT: guid = GUID_Slider dwOfs = 0x18 dwType = 0x202 dwFlags = 0x100 tszName = MiniY dwFFMaxForce = 0 dwFFForceResolution = 0 wCollectionNumber = 0 wDesignatorIndex = 0 wUsagePage = 0x1 wUsage = 0x36 dwDimension = 0 wExponent = 0 wReportId = 0x1 -- OBJECT: guid = GUID_Slider dwOfs = 0x1c dwType = 0x602 dwFlags = 0x100 tszName = MiniX dwFFMaxForce = 0 dwFFForceResolution = 0 wCollectionNumber = 0 wDesignatorIndex = 0 wUsagePage = 0x1 wUsage = 0x36 dwDimension = 0 wExponent = 0 wReportId = 0x1 -- OBJECT: guid = GUID_Button dwOfs = 0x30 dwType = 0x2000004 dwFlags = 0x8002 tszName = Button 0 dwFFMaxForce = 0 dwFFForceResolution = 0 wCollectionNumber = 0 wDesignatorIndex = 0 wUsagePage = 0x9 wUsage = 0x1 dwDimension = 0 wExponent = 0 wReportId = 0x1 -- OBJECT: guid = GUID_Button dwOfs = 0x31 dwType = 0x2000104 dwFlags = 0x8002 tszName = Button 1 dwFFMaxForce = 0 dwFFForceResolution = 0 wCollectionNumber = 0 wDesignatorIndex = 0 wUsagePage = 0x9 wUsage = 0x2 dwDimension = 0 wExponent = 0 wReportId = 0x1 -- OBJECT: guid = GUID_Button dwOfs = 0x32 dwType = 0x2000204 dwFlags = 0x8002 tszName = Button 2 dwFFMaxForce = 0 dwFFForceResolution = 0 wCollectionNumber = 0 wDesignatorIndex = 0 wUsagePage = 0x9 wUsage = 0x3 dwDimension = 0 wExponent = 0 wReportId = 0x1 -- OBJECT: guid = GUID_Button dwOfs = 0x33 dwType = 0x2000304 dwFlags = 0x8002 tszName = Button 3 dwFFMaxForce = 0 dwFFForceResolution = 0 wCollectionNumber = 0 wDesignatorIndex = 0 wUsagePage = 0x9 wUsage = 0x4 dwDimension = 0 wExponent = 0 wReportId = 0x1 -- OBJECT: guid = GUID_Button dwOfs = 0x34 dwType = 0x2000404 dwFlags = 0x8002 tszName = Button 4 dwFFMaxForce = 0 dwFFForceResolution = 0 wCollectionNumber = 0 wDesignatorIndex = 0 wUsagePage = 0x9 wUsage = 0x5 dwDimension = 0 wExponent = 0 wReportId = 0x1 -- OBJECT: guid = GUID_Button dwOfs = 0x35 dwType = 0x2000504 dwFlags = 0x8002 tszName = Button 5 dwFFMaxForce = 0 dwFFForceResolution = 0 wCollectionNumber = 0 wDesignatorIndex = 0 wUsagePage = 0x9 wUsage = 0x6 dwDimension = 0 wExponent = 0 wReportId = 0x1 -- OBJECT: guid = GUID_Button dwOfs = 0x36 dwType = 0x2000604 dwFlags = 0x8002 tszName = Button 6 dwFFMaxForce = 0 dwFFForceResolution = 0 wCollectionNumber = 0 wDesignatorIndex = 0 wUsagePage = 0x9 wUsage = 0x7 dwDimension = 0 wExponent = 0 wReportId = 0x1 -- OBJECT: guid = GUID_Button dwOfs = 0x37 dwType = 0x2000704 dwFlags = 0x8002 tszName = Button 7 dwFFMaxForce = 0 dwFFForceResolution = 0 wCollectionNumber = 0 wDesignatorIndex = 0 wUsagePage = 0x9 wUsage = 0x8 dwDimension = 0 wExponent = 0 wReportId = 0x1 -- OBJECT: guid = GUID_Button dwOfs = 0x38 dwType = 0x2000804 dwFlags = 0x8002 tszName = Button 8 dwFFMaxForce = 0 dwFFForceResolution = 0 wCollectionNumber = 0 wDesignatorIndex = 0 wUsagePage = 0x9 wUsage = 0x9 dwDimension = 0 wExponent = 0 wReportId = 0x1 -- OBJECT: guid = GUID_Unknown dwOfs = 0 dwType = 0xc0 dwFlags = 0 tszName = Collection 0 - Joystick dwFFMaxForce = 0 dwFFForceResolution = 0 wCollectionNumber = 0 wDesignatorIndex = 0 wUsagePage = 0x1 wUsage = 0x4 dwDimension = 0 wExponent = 0 wReportId = 0 -- EFFECT: guid = GUID_ConstantForce dwEffType = 0x8601 dwStaticParams = 0x3ed dwDynamicParams = 0x3ed tszName = Constant -- EFFECT: guid = GUID_RampForce dwEffType = 0x8602 dwStaticParams = 0x3ef dwDynamicParams = 0x3ef tszName = Ramp Force -- EFFECT: guid = GUID_Square dwEffType = 0x8603 dwStaticParams = 0x3ef dwDynamicParams = 0x3ef tszName = Square Wave -- EFFECT: guid = GUID_Sine dwEffType = 0x8603 dwStaticParams = 0x3ef dwDynamicParams = 0x3ef tszName = Sine Wave -- EFFECT: guid = GUID_Triangle dwEffType = 0x8603 dwStaticParams = 0x3ef dwDynamicParams = 0x3ef tszName = Triangle Wave -- EFFECT: guid = GUID_SawtoothUp dwEffType = 0x8603 dwStaticParams = 0x3ef dwDynamicParams = 0x3ef tszName = Sawtooth Up Wave -- EFFECT: guid = GUID_SawtoothDown dwEffType = 0x8603 dwStaticParams = 0x3ef dwDynamicParams = 0x3ef tszName = Sawtooth Down Wave -- EFFECT: guid = GUID_Spring dwEffType = 0xd804 dwStaticParams = 0x36d dwDynamicParams = 0x36d tszName = Spring -- EFFECT: guid = GUID_Damper dwEffType = 0xd804 dwStaticParams = 0x36d dwDynamicParams = 0x36d tszName = Damper -- EFFECT: guid = GUID_Inertia dwEffType = 0xd804 dwStaticParams = 0x36d dwDynamicParams = 0x36d tszName = Inertia -- EFFECT: guid = GUID_Friction dwEffType = 0xd804 dwStaticParams = 0x36d dwDynamicParams = 0x36d tszName = Friction -- EFFECT: guid = GUID_CustomForce dwEffType = 0x8605 dwStaticParams = 0x3ef dwDynamicParams = 0x3ef tszName = CustomForce - HID Usage = 0x4 UsagePage = 0x1 InputReportByteLength = 0xc OutputReportByteLength = 0x40 FeatureReportByteLength = 0x5 NumberLinkCollectionNodes = 0x1 NumberInputButtonCaps = 0x2 NumberInputValueCaps = 0x8 NumberInputDataIndices = 0x12 NumberOutputButtonCaps = 0 NumberOutputValueCaps = 0x1 NumberOutputDataIndices = 0x1 NumberFeatureButtonCaps = 0x1 NumberFeatureValueCaps = 0x3 NumberFeatureDataIndices = 0x4 -- BUTTON CAPS 0 UsagePage = 0x9 ReportID = 0x1 IsAlias = 0 BitField = 0x2 LinkCollection = 0 LinkUsage = 0x4 LinkUsagePage = 0x1 IsRange = 0x1 IsStringRange = 0 IsDesignatorRange = 0 IsAbsolute = 0x1 Range.UsageMin = 0x1 Range.UsageMax = 0x9 Range.StringMin = 0 Range.StringMax = 0 Range.DesignatorMin = 0 Range.DesignatorMax = 0 Range.DataIndexMin = 0x8 Range.DataIndexMax = 0x10 -- BUTTON CAPS 0x1 UsagePage = 0xff00 ReportID = 0x1 IsAlias = 0 BitField = 0x2 LinkCollection = 0 LinkUsage = 0x4 LinkUsagePage = 0x1 IsRange = 0 IsStringRange = 0 IsDesignatorRange = 0 IsAbsolute = 0x1 NotRange.Usage = 0x1 NotRange.StringIndex = 0 NotRange.DesignatorIndex = 0 NotRange.DataIndex = 0x11 -- VALUE CAPS 0 UsagePage = 0x1 ReportID = 0x1 IsAlias = 0 BitField = 0x2 LinkCollection = 0 LinkUsage = 0x4 LinkUsagePage = 0x1 IsRange = 0 IsStringRange = 0 IsDesignatorRange = 0 IsAbsolute = 0x1 HasNull = 0 Reserved = 0 BitSize = 0xa ReportCount = 0x1 Reserved2[5] = 0 UnitsExp = 0 Units = 0 LogicalMin = 0xfffffe00 LogicalMax = 0x1ff PhysicalMin = 0 PhysicalMax = 0x3ff NotRange.Usage = 0x31 NotRange.StringIndex = 0 NotRange.DesignatorIndex = 0 NotRange.DataIndex = 0 -- VALUE CAPS 0x1 UsagePage = 0x1 ReportID = 0x1 IsAlias = 0 BitField = 0x2 LinkCollection = 0 LinkUsage = 0x4 LinkUsagePage = 0x1 IsRange = 0 IsStringRange = 0 IsDesignatorRange = 0 IsAbsolute = 0x1 HasNull = 0 Reserved = 0 BitSize = 0xa ReportCount = 0x1 Reserved2[5] = 0 UnitsExp = 0 Units = 0 LogicalMin = 0xfffffe00 LogicalMax = 0x1ff PhysicalMin = 0 PhysicalMax = 0x3ff NotRange.Usage = 0x30 NotRange.StringIndex = 0 NotRange.DesignatorIndex = 0 NotRange.DataIndex = 0x1 -- VALUE CAPS 0x2 UsagePage = 0x1 ReportID = 0x1 IsAlias = 0 BitField = 0x42 LinkCollection = 0 LinkUsage = 0x4 LinkUsagePage = 0x1 IsRange = 0 IsStringRange = 0 IsDesignatorRange = 0 IsAbsolute = 0x1 HasNull = 0x1 Reserved = 0 BitSize = 0x4 ReportCount = 0x1 Reserved2[5] = 0 UnitsExp = 0 Units = 0x14 LogicalMin = 0 LogicalMax = 0x7 PhysicalMin = 0 PhysicalMax = 0x13b NotRange.Usage = 0x39 NotRange.StringIndex = 0 NotRange.DesignatorIndex = 0 NotRange.DataIndex = 0x2 -- VALUE CAPS 0x3 UsagePage = 0x1 ReportID = 0x1 IsAlias = 0 BitField = 0x2 LinkCollection = 0 LinkUsage = 0x4 LinkUsagePage = 0x1 IsRange = 0 IsStringRange = 0 IsDesignatorRange = 0 IsAbsolute = 0x1 HasNull = 0 Reserved = 0 BitSize = 0x8 ReportCount = 0x1 Reserved2[5] = 0 UnitsExp = 0 Units = 0 LogicalMin = 0 LogicalMax = 0xff PhysicalMin = 0 PhysicalMax = 0xff NotRange.Usage = 0x34 NotRange.StringIndex = 0 NotRange.DesignatorIndex = 0 NotRange.DataIndex = 0x3 -- VALUE CAPS 0x4 UsagePage = 0x1 ReportID = 0x1 IsAlias = 0 BitField = 0x2 LinkCollection = 0 LinkUsage = 0x4 LinkUsagePage = 0x1 IsRange = 0 IsStringRange = 0 IsDesignatorRange = 0 IsAbsolute = 0x1 HasNull = 0 Reserved = 0 BitSize = 0x8 ReportCount = 0x1 Reserved2[5] = 0 UnitsExp = 0 Units = 0 LogicalMin = 0 LogicalMax = 0xff PhysicalMin = 0 PhysicalMax = 0xff NotRange.Usage = 0x33 NotRange.StringIndex = 0 NotRange.DesignatorIndex = 0 NotRange.DataIndex = 0x4 -- VALUE CAPS 0x5 UsagePage = 0x1 ReportID = 0x1 IsAlias = 0 BitField = 0x2 LinkCollection = 0 LinkUsage = 0x4 LinkUsagePage = 0x1 IsRange = 0 IsStringRange = 0 IsDesignatorRange = 0 IsAbsolute = 0x1 HasNull = 0 Reserved = 0 BitSize = 0x8 ReportCount = 0x1 Reserved2[5] = 0 UnitsExp = 0 Units = 0 LogicalMin = 0 LogicalMax = 0xff PhysicalMin = 0 PhysicalMax = 0xff NotRange.Usage = 0x35 NotRange.StringIndex = 0 NotRange.DesignatorIndex = 0 NotRange.DataIndex = 0x5 -- VALUE CAPS 0x6 UsagePage = 0x1 ReportID = 0x1 IsAlias = 0 BitField = 0x2 LinkCollection = 0 LinkUsage = 0x4 LinkUsagePage = 0x1 IsRange = 0 IsStringRange = 0 IsDesignatorRange = 0 IsAbsolute = 0x1 HasNull = 0 Reserved = 0 BitSize = 0x8 ReportCount = 0x1 Reserved2[5] = 0 UnitsExp = 0 Units = 0 LogicalMin = 0 LogicalMax = 0xff PhysicalMin = 0 PhysicalMax = 0xff NotRange.Usage = 0x36 NotRange.StringIndex = 0 NotRange.DesignatorIndex = 0 NotRange.DataIndex = 0x6 -- VALUE CAPS 0x7 UsagePage = 0x1 ReportID = 0x1 IsAlias = 0 BitField = 0x2 LinkCollection = 0 LinkUsage = 0x4 LinkUsagePage = 0x1 IsRange = 0 IsStringRange = 0 IsDesignatorRange = 0 IsAbsolute = 0x1 HasNull = 0 Reserved = 0 BitSize = 0x8 ReportCount = 0x1 Reserved2[5] = 0 UnitsExp = 0 Units = 0 LogicalMin = 0 LogicalMax = 0xff PhysicalMin = 0 PhysicalMax = 0xff NotRange.Usage = 0x36 NotRange.StringIndex = 0 NotRange.DesignatorIndex = 0 NotRange.DataIndex = 0x7