問題タブ [winusb]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
6245 参照

c++ - WinUsb を使用するアプリケーションのコンパイル

WinUsb.dll を使用して USB デバイスと通信するアプリケーションを作成中です。これは、カーネルにドライバーとしてインストールされた winusb.sys を介してデバイスとの通信を可能にするユーザー モード ライブラリです。

このアプリケーションは、Visual Studio 2008 を使用して C++ で作成しています。

ヘッダー WinUsb.h は Windows DDK にあるため、インクルード パス "D:\WinDDK\7100.0.0\inc\ddk" を追加します。次に、WinUsb.h に含まれる Usb.h が見つからないというエラーが表示されます。Usb.h も ddk にありますが、別のディレクトリにあるため、「D:\WinDDK\7100.0.0\inc\api」を追加します。インクルードディレクトリ。

そのパスを追加すると、すべてがトイレに行き、stdio.hやその他の奇妙な場所でコンパイルエラーが発生し始めます。

この DLL を単純に使用するために DDK ビルド システムとコンパイラを使用したくありません。これが、適切なドライバーを作成する代わりに WinUsb を使用している主な理由の 1 つです。

WinUsb.dll と Visual Studio を使用してアプリケーションを構築した人はいますか?

0 投票する
1 に答える
1388 参照

asynchronous - WinUSB 非同期コントロール転送のキャンセル

WinUSB を使用するユーザー アプリケーション (ドライバーではない) の場合、WinUsb_ControlTransfer をオーバーラップ I/O と組み合わせて使用​​し、制御メッセージを非同期に送信します。非同期操作をキャンセルすることはできますか? WinUsb_AbortPipe は他のすべてのエンドポイントで機能しますが、コントロール エンドポイント (パイプ アドレスとして 0x00 または 0x80) が渡されると、「無効なパラメーター」エラーが発生します。CancelIo と CancelIoEx も試しましたが、どちらも WinUSB ハンドルで「無効なハンドル」エラーが発生します。私が見つけた唯一の関連情報はhttp://www.winvistatips.com/winusb-bugchecks-t335323.htmlにありますが、解決策はありません。これは単に不可能ですか?

0 投票する
1 に答える
519 参照

windows - 非開発用コンピューターでの WinUSB の失敗

こんにちは、

WinUSB は、私が使用している開発用コンピューター (Win XP SP3) でうまく機能しています。Cypress FX2 に新しいファームウェアをダウンロードし、新しい USB デバイスが「更新」されたら接続することができます。ただし、他のいくつかのコンピューター (Win XP SP3、Win7 x64) で WinUSB ドライバーを使用して同じコードを試したところ、両方とも「システムに接続されたデバイスが機能していません」というエラーが返されました。CreateFile を使用して USB デバイスへのハンドルを取得しようとしたとき。

devicePath は正常に検出されたため、デバイスに接続できない理由がわかりません。さらに、デバイスマネージャーは、デバイスが正常に動作していると述べています。コードをコンパイルするときに何か不足していないか気になりますか? 私の開発用コンピューターには、他のコンピューターにはインストールされていないものがインストールされていると思いますか? または、おそらくそれは電源設定であり、デバイスがスリープ状態になります (ただし、各コンピューターの電源オプションをいじって無駄にしました)。

誰にもアイデアはありますか?Visual Studio 2008 でコンパイルし、テストしたコンピューターに Microsoft C++ 2008 再頒布可能パッケージをインストールしました。

ありがとう、

ギアワ

0 投票する
0 に答える
1404 参照

winusb - WinUSB WritePipe 使用時の ERROR_SEM_TIMEOUT

ERROR_SEM_TIMEOUT関数を使用するとエラーが発生することがよくありWinUSB WritePipeます。これはタイムアウトがあることを示しているように見えますが、しばらく待ってから再試行すると、書き込みができなくなります。USB デバイスに 64 バイト チャックで書き込みを行っていますが、多くの場合、問題はありません。エラーが発生し始めたら、再試行する前に、USB を取り外してアプリを閉じる必要がある場合があります。誰もこの問題を経験しましたか?

0 投票する
1 に答える
940 参照

windows - WinUsb で複数の同時アプリケーション アクセスを実装する方法

汎用の WinUsb を使用するために、USB デバイスの dll を移植しています。ただし、WinUsb は、同じデバイス (同じ VID & PID) への複数の同時アプリケーション アクセスをサポートしていません。WinUsb を使用してこの同時アクセスを実装する方法があるかどうか知りたいですか? フィルター ドライバーとサービスについて読みました。1. フィルター ドライバーを使用したくないのは、私が理解しているように、これは WHQL を通過する必要があり、むしろこのパスには行かないからです。2. Windows サービスについて: 具体的にはどのように実装すればよいですか? サービスは WinUsb へのすべての呼び出しを取得する必要があり、別のアプリケーションが同じデバイスにアクセスしようとすると、最初のアプリケーションへの接続が閉じられ、新しい接続が開かれ、再び元に戻りますか?

この場合、サービスは正しいソリューションですか? 私が書いたもの以外にソリューションを実装する別の方法はありますか?

ありがとう。

0 投票する
2 に答える
478 参照

windows - 複数のアーキテクチャ、winusb および wix

WinUSB デバイス ドライバーを含むアプリケーションのインストーラーを作成しています。difx 拡張機能付きの WiX 3.5 を使用しています。WinUSB のハウツーに従って、x86、ia64、および amd アーキテクチャで機能する単一の inf ファイルを作成できます。ただし、WiX difx 拡張機能については、アーキテクチャ固有の .wixlib にリンクする必要があります。では、すべてのアーキテクチャで動作するインストーラーを作成する方法はありますか、それとも 3 つの個別のインストーラーが必要ですか? その場合、単一の inf ファイルは不要ですか?

0 投票する
3 に答える
3284 参照

visual-c++ - USB経由で高速にデータをホストに転送

USB接続を介してカスタムメイドのラボデバイス(小さなハードウェアのもの)と話しています。ラボ デバイスから最大速度でデータを取得するにはどうすればよいですか?

ホストは Windows XP マシンで、Visual Studio で libsub-win32 を使用して C コードを実行しています。小さなハードウェアが大量のデータを収集します。ホストはこのデータを要求してから読み取ることができます。すべてがうまく機能しています。気になるのは速度です。大まかな見積もりは 1Mbit/s であり、これは USB2 がサポートする 480 Mbit/s にはほど遠いものです。デバイスは、少なくともその速度でデータを送信できる必要があります。私は USB も libusb-win32 もほとんどまたはまったく経験していませんが、それらについて読んでみました。USB通信設定をどこでどのように変更するかわかりませんが。仕様では、高速バスにマイクロフレームと呼ばれるものがあるようです。それらをどのように使用できますか?

必ずしも libusb-win32 ライブラリを使用する必要はありません。他におすすめはありますか?

現在の実装に関する詳細: 上記のように、通信には libusb-win32 を使用します。すべての初期化は、ダウンロードに含まれる小さな例からコピーされます。

次に、(usb_bulk_write(...) と usb_bulk_read(...) を使用して) ラボ デバイスに話しかけ、そのデータを私と共有するよう説得します。512バイトのチャンクでデータを提供します。このような各チャンクは、usb_bulk_read(...) を使用して読み取られます。

2011 年 4 月 27 日編集: Full Speed を使用しているように見えますが、High Speed は使用していません。どうすれば高速に乗れますか?USB 記述子ファイルのパラメーターが間違っていませんか? (はい、USB2.0 を使用しており、デバイスは高速をサポートする必要があります。)


編集 2011 年 5 月 17 日: winUSB を使用して通信を実装しました (.inf ファイルと c++ プログラムを作成しました)。WinUSB を使用する利点は、高速を使用しようとしているかどうかを教えてくれることです。それはありますが、まだ約 11+-2 Mbit/s を超える速度は得られません。なんで?

USB2.0 プロトコルによれば、コンピュータはフレーム マーカーの開始 (ミリ秒ごとに送信) を送信する必要があります。しかし、高速を使用する場合、「高速では 125us の長さ (1 ミリ秒あたり 8 マイクロフレーム) の「マイクロフレーム」を使用する」と表示されます。1 ミリ秒のフレーム番号付けとの対応は、各フレーム番号を 8 連続で繰り返すことにより、高速 SOF パケットで維持されます。マイクロフレーム。」私はこれをよく理解していませんが、マイクロフレームを十分に頻繁に送信しないことが問題になる可能性がありますか? プロトコルを理解している人は、私に教えてください! 自分のコンピューターで動作するかどうかに関係なく、その動作を理解したいです。


6月15日編集

問題解決: コンピューター側に変更を加えても、必要以上に通信が高速になることはありません (エンドポイントの数を変更せず、実際に USB2.0 接続を使用している場合)。ここでの問題は、非常に時間のかかる方法でメモリ領域を使用するプロセッサ コードにありました。これにより、この質問は一種の非質問になります。すべてのポインタと情報をありがとう。USBについて、とても勉強になりました!

0 投票する
4 に答える
106612 参照

android - AndroidデバイスにADBドライバーをインストールするにはどうすればよいですか?

私はAndroid開発者です。新しいHTCInspire4g電話を持っていますが、USBドライバーをインストールする方法がわかりません。これは私のandroid_winusb.infファイルです:

0 投票する
2 に答える
2443 参照

arduino - Arduino用WinUSBドライバ

Arduino を使用して、Web からデータを読み取り、表示しています。提供されたドライバーを使用してデータをシリアルとして簡単に渡すことができます。これは、ドライバーが COM ポートを識別し、シリアルを COM ポートに送信できるためです。

ただし、「実際の」USB 技術を使用して、デバイスを通常の USB デバイスのように抜き差しできるようにしたいと考えています。WinUSBをドライバーとして使用することを検討しています。しかし、USBは私にとってまったく新しいものです。WinUSB と Arduino (私は Uno を持っています) を使用する .inf ファイルはありますか?

これに関する情報が不足しているため、これについて間違っていると思います。

0 投票する
1 に答える
8652 参照

windows-installer - XP で WinUSB ドライバーのインストールが失敗する (Win7 では問題なく動作する)

Windows XP (x86、サービス パック 3) に WinUSB ドライバーをインストールできません。Microsoft WinUSB ガイドラインに従って、inf ファイル、署名済みの cat ファイル (Inf2cat を使用して作成)、および関連する WinUSB 共同インストーラーを使用して、署名済みのドライバー パッケージを作成しました。Windows7 ではすべて問題なく動作しますが、XP ではインストールに失敗します。

inf ファイルは次のとおりです。

XP での setupapi ログの失敗は次のようになります。

XPで何が問題なのかを突き止めようとして、私は髪をかきむしっています。エラー

「ファイル キューのスキャン時にカタログを検証できませんでした」および「署名されていないか、正しく署名されていないファイルです」

ドライバーパッケージは正しく署名されており、警告なしでWin7に正しくインストールされるため、私には意味がありません. どんな助けでも大歓迎です

ありがとうトム