「GetJoypadName」という関数があって、
TCHAR InstanceNameBuffer[260];
TCHAR ProductNameBuffer[260];
GetJoypadName(DX_INPUT_PAD1, InstanceNameBuffer, ProductNameBuffer ) ;
と言うように呼び出せば、InstanceNameBufferとProductNameBufferに
デバイス登録名と製品登録名が代入されるので、それで接続されているゲームパッドの種類は確認出来るみたいです。
(DX_INPUT_PAD1の部分は調べたいInputTypeに変えてください)
ただ、この方法だと比較判断するために、PS4のやXboxのゲームパッドのデバイス登録名と製品登録名があらかじめ解っていないといけません。
手元にゲームパッドの現物があるのであれば、それを調べれば解りますが、
同じPS4やXboxのゲームパッドでも出荷時期によって微妙にバージョンアップしたりして
型番が変わったりして製品登録名も変わっている可能性があるので、
流通しているすべてのPS4やXboxのゲームパッドのデバイス登録名と製品登録名を把握するのは困難だと思います。
(名前に何か規則性があれば判断は容易になると思いますが…)
別の打開策としては、PS4かXboxかを判断したい理由が解らないので何とも言えませんが、
キー配列が違うのを解決したいのであれば、キーコンフィグを自前で実装するのが現実的かと思います。
PCに接続しているゲームパッドはPS4とXboxがかなりのシェアを占めているようですが、
ほかにも接続できるゲームパッドはありますし、キーコンフィグに対応して全種類対応にした方が無難かなと…。
他に何か特別な理由があって、的外れな回答でしたらすいません。