Я на самом деле пытаюсь решить подобную проблему. Согласно MSDN здесь , похоже, что InstanceGUID всегда должен быть одинаковым на одном и том же компьютере. Я проверил, что если я отключу USB-устройство и подключу его к другому порту, он действительно сохранит тот же GUID экземпляра. Однако, если другой пользователь входит в систему на одном и том же ПК, DirectInput показывает то же устройство с другим InstanceGUID !! Я не могу найти подтверждение от Microsoft, что это известная проблема.
Итак, я могу частично ответить на ваш вопрос. Если у вас два идентичных устройства, вы получите разные InstanceGUID и идентичные ProductGUID. Эти InstanceGUID будут оставаться согласованными, если вы отключите свои устройства и перенесете их на другие порты USB. ОДНАКО вы получите разные InstanceGUID, если в систему войдет другой пользователь. По крайней мере, я могу убедиться, что это проблема в Windows 7 64bit.