マウス用の基本的なユーザー空間ドライバーの作成を検討します。これにより、USB デバイスとしてマウスに直接アクセスできるようになります。システムからデバイスを独占的に制御することもできます。
ここにいくつかのドキュメントがあります:
USB デバイス インターフェイスの操作
はじめに、USB デバイスに接続するためのセットアップ手順は次のようになります (私の IOKit は錆びていると思います)。
インクルード < IOKit/IOKitLib.h > および < IOKit/usb/IOUSBLib.h >
- 使用したいデバイスを見つけてください
IOServiceMatching()
。これにより、ベンダー ID などを含むプロパティに基づいて、正しい USB デバイスを見つけることができます。(以下の IORegistryExplorer ツールのスクリーンショットを参照してください)
- でUSBプラグインインスタンスを取得します(それを と呼びましょう
plugin
)IOCreatePlugInInterfaceForService()
- ステップ2から使用
plugin
して、デバイスインターフェイスを取得します(それを呼び出しましょうdevice
)(**plugin)->QueryInterface()
device
は、USB デバイスへの接続ハンドルを表します。最初に(**device).USBDeviceOpen
またはを使用して開きます(**device).USBDeviceOpenSeize()
。そこからデータを送受信できるはずです。
もっと簡単な方法があるかもしれませんが、これが私の頭に浮かんだことです。デバイスのこのレベルの制御を持つことには、いくつかの利点があるかもしれませんが、確かではありません. 幸運を。
