RemoteFX USB デバイス リダイレクトに対応する際の留意点

皆さん、こんにちは。Windows Driver Kit サポートチームの津田です。   今月、英語ではございますが、以下の技術情報を公開しました。スキャナをご利用の方やスキャナドライバの開発者のお役に立つと思いますので、その内容をご紹介します。     RemoteFX USB redirected scanner doesn’t start on Windows Server 2012 or Windows Server 2012 R2   https://support.microsoft.com/en-us/kb/3125295   これは、「RemoteFX USB デバイス リダイレクト」で接続されたスキャナが Windows Server 2012 または Windows Server 2012 R2 においてスキャンの開始ができない、という現象についての技術情報です。 ちなみに、「RemoteFX USB デバイス リダイレクト」とは、リモートデスクトップ接続をしたときに、クライアント側の PC につながっている様々な USB デバイスを、リモートセッション上でも使えるようにする機能です。     デバイスやリソースをリモート デスクトップ セッションで使用する方法   http://windows.microsoft.com/ja-JP/windows7/How-can-I-use-my-devices-and-resources-in-a-Remote-Desktop-session  …


デバイス ドライバを開発する?しない?

なおきお~です。皆様、いかがお過ごしでしょうか?ご無事でしょうか? この度の東北地方太平洋沖地震により、亡くなられた方々のご冥福をお祈り申し上げますとともに、被災された皆様と、そのご家族様に対しまして、心よりお見舞い申し上げます。 また、このブログを閲覧していただいている皆様が、ご無事であることも、お祈り申し上げております。   さて、大震災以降、安全性というものの重みを思い知らされている日々ですが、デバイス ドライバを開発する際も、ささやかなものですが、安全性や安定性を意識しなければなりません。 その手始めとして、どのようなモジュールを開発するか?と決める時です。 Windows OS に含まれているモジュールを利用すると、既に動作の実績もあり、安定しています。また、脆弱性が見つかれば、マイクロソフトが解決してくれるので安全です。また、開発の工数も短縮できると、いい事づくめです。   ただ、Windows OS に含まれているモジュールの利用に固執してしまって、失敗してしまうこともあります。その一例として、USB と Serial Port (RS-232C) の変換のデバイス ドライバがあります。 Windows OS には、usbser.sys というモジュール (デバイス ドライバ) が、含まれています。名前から想像すると、これが、USB と Serial Port (RS-232C) の変換を行うデバイス ドライバかな?と思ってしまいます。 名前で誤解してしまうのですが、以下の USB の FAQ の “表 2: Windows での USB DWG Class のサポート” に、ある通り、usbser.sys は、実は、CDC (Communications Device Class) に準拠したモデム クラスのデバイス ドライバなのです。  …


USB Event Tracing for Windows 7

— UPDATE 2010/07/09 — 2010/06/24 に Network Monitor v3.4 がリリースされました。これに伴い、USBHUB / USBPORT の Parser ファイルはデフォルトで組み込まれることになり、Codeplex より Parser をダウンロードし、手動で追加する必要がなくなりました。ご確認いただければ幸いです。 ——————————– こんにちは、K里です。 今回は、Windows 7 で対応された USB イベントトレースログについてご紹介します。こちらの機能は、各 USB クラスにおけるデバイスドライバを開発されていたり、システム全体の評価を行う時に USB 周りで何か問題が発生した場合のトラブルシューティングする必要のある方が対象となります。USB イベントトレースログは、ETW (Event Tracing for Windows) 機能を使用し、対象モジュールを Checked Build 版に置き換えることなくトレースログを採取します。また、採取したログファイル (etl ファイル) は、Network Monitor を使用して解析することが可能です。なお、USB トレースログの各情報を解析するためには、USB に関する仕様について包括的に理解しておくことが前提となります。   トレース対象モジュール: Windows 7 で登録されているトレースプロバイダーは、以下の 2 つになります。   Ø  Microsoft-Windows-USB-USBHUB …


Windows Touch

ご無沙汰しております。なおきお~です。 年末となり、皆様、如何お過ごしでしょうか? 今年最後の投稿をさせていただきます。   まず、私たち、DDK/WDK サポートチームの中で、今年 最も大きなニュースは、やはりWindows 7のリリースです。 そのWindows 7のデバイス ドライバ関連でのトピックと言えば、Windows Touchがあります。   さて、Windows Touchに対応したデバイス ドライバというのは、どうやって開発するのかご存知でしょうか? 開発するデバイスにもよりますが、USB の HID デバイスならば、Windows 7標準のデバイス ドライバが動くので、デバイス ドライバを開発/提供しなくてもいいのです。   Windows Touch Overview http://msdn.microsoft.com/en-us/library/ee220483.aspx 抜粋: If your digitizer device supports HID in firmware, you are not required to provide a driver.   さて、デバイス ドライバは、必要ないとして、USB HID のデバイスは、どうすればいいのだろう?と思われた方は、HID の仕様書をご確認ください。 HID Informationには、Multi-touch digitizersの情報があります。このMulti-touch digitizersに準拠していたら、Windows…


USB 2.0 カーネル デバッグ その後

こんにちは、K里です。今回は、以前ご紹介した USB 2.0 カーネルデバッグについての追加情報をお知らせします。USB デバッグの詳細については、まずは以下の記事をご一読いただけますと幸いです。   USB 2.0 カーネル デバッグ 前編 USB 2.0 カーネル デバッグ 後編   上記記事の前編にて、ターゲットマシンの設定 (3) に以下のコマンドがあります。     bcdedit /set {identifier} loadoptions busparams=x.y.z   これは、カーネルデバッガ接続のために使うデバイス (USB EHCI の Host Controller や 1394 Host Controller) を一意に指定するために、デバイスマネージャーで確認される  busparams=<Bus>.<Device>.<Func> の入力を行いますが、この busparams の指定方法が、USB デバッグの場合、ターゲット OS によって何進数で入力するのかが異なります。以下、1394 デバッグも併せてターゲット OS 毎の指定方法を記載します。   Target OS USB 2.0 Debug…


USBView の中身を見てみる

こんばんは、まさかた です。   さて、前回は、USBView の使い方についてお話させていただきましたが、そこで、「その中身については、また次の機会に!」と申し上げておりました。 ですので、今回は、USBView が、どのようにして USB デバイスを列挙して、情報を取得してきているのか?という観点から、USBView の中身についてお話したいと思います。   それでは、まずは USBView のソースが含まれるフォルダの中を見てみます。   C:\WINDDK\6001.18002\src\usb\usbview>dir  ドライブ C のボリューム ラベルがありません。  ボリューム シリアル番号は FEDB-4B1E です    C:\WINDDK\6001.18002\src\usb\usbview のディレクトリ   2009/04/14  18:00    <DIR>          . 2009/04/14  18:00    <DIR>          .. 2008/01/03  11:12             1,846 bang.ico 2008/01/18  21:54             4,123 debug.c 2008/01/18  21:54             4,336 devnode.c 2008/01/18  21:54            33,349 dispaud.c 2008/01/18  21:54            35,286…


USBView ってなに?

初めまして。私、まさかた と申します。どうぞよろしくお願いします。   先日、春の嵐の中、東京マラソン 2009 が開催されました。実は、私も応募はしたのですが、7倍という抽選倍率の高さから、残念ながら、抽選にもれてしまいました。。 なので、他の地域で開催されているマラソンに参加したのですが、やっぱりマラソンはいいですね。 フルマラソンを走るのは初めてではないのですが、回を重ねるごとに少しずつ楽になっていくのと、完走する達成感がなんとも言えません。 あの大人気の東京マラソン、私もいつかは走ってみたいものです。   さて、先日、 K里さんの方から紹介されておりました「USB 2.0 カーネル デバッグ 前編」についての記事の中で、デバッグ ポートへの接続確認をする箇所で、   「ポート番号については、”Debugging Tools for Windows” 以下の usbview.exe にて確認できます。」   と、さりげなく “usbview.exe” が登場しておりましたが、こちらを読んでいただいた方の中には、「usbview.exe ってなに?」という方もいらっしゃったかもしれません。 この usbview.exe は、WDK の中に含まれている、USB デバイスの情報を取得できるサンプル プログラムなのですが、今回は、この USBView について、その使い方などをお話したいと思います。   USBView は、その名の通り、PC に接続された USB デバイスの情報を見ることのできるユーザーモードの GUI アプリケーションです。 これは、PC の USB ポートに接続されている USB デバイスを列挙して、それぞれのデバイスが持つ USB Descriptor の情報を取得、表示してくれます。…


USB 2.0 カーネル デバッグ 後編

毎度 K里です。先月 Windows 7 開発チームブログで、Windows 7 Beta でも Windows Touch 機能が特定の PC で使えるようになったとお知らせがありました (詳細はこちら)。日本ではまだ 1 機種のみとなりますが、既に試されている方もいらっしゃるかと思います。私はまだ実際に試していませんが、面白そうなネタができたらお知らせしようと思います。   さてさて、今回は前回に引き続き USB 2.0 カーネル デバッグの後編でございます。前回は、USB 2.0 カーネル デバッグについて、公開情報を基に基本的な設定手順をお知らせしました。今回は、公開情報にはない情報をまとめてみました。お役に立てれば幸いです。   USB デバッグ接続ができない原因と対処方法 前回にお知らせした手順でデバッグ接続ができない場合、BIOS 設定にて Legacy USB サポート機能の有無をご確認下さい。もし、Enable となっているようであれば、一度 Disable にし、再度デバッグ接続できるかお試し下さい。Legacy USB は、SMI (System Management Interrupts) によるハードウェア割込みを実装しています。SMI は OS に対して透過なものであり、カーネル デバッグの通信に影響を与える可能性があります。これは、特に USB だけに限られた話ではなく、シリアル、1394 ケーブルを用いたカーネルデバッグでも同様のことが言えます。ただ、USB デバッグは、他のインターフェースよりもこの Legacy USB サポート機能によってデバッグ接続できない確率が高い傾向にあるようです。カーネル デバッグを行う場合、何れのケースにおいても、可能な限り Legacy…


USB 2.0 カーネル デバッグ 前編

こんにちは、K 里です。どうぞよろしくお願いします。   さて、今回は USB 2.0 カーネル デバッグについて紹介しようと思います。現在、カーネル デバッグの方法として、シリアルや 1394 インターフェースを用いてのデバッグが私たちの中では主流です。しかし、最近これらのインターフェースが搭載されない機器が出てきました。なので、おなじみ USB 2.0 インターフェースを使用してのデバッグ方法を 2 回に分けて説明しようと思います。皆様のお役に立てれば幸いです。   まずは、以下のモノをご用意くださいませ。   – USB 2.0 デバッグ ケーブル USB2 Debug Device Functional Specification の要件を満たすケーブルであること。私たちは、PLX Technology 社製 NET20DC を使ってます。 – ホスト コンピューター EHCI コントローラーを搭載していること。サポートされた OS は、Windows 2000 以降。 – ターゲット コンピューター EHCI コントローラーを搭載し、且つデバッグ ポートが外部的にアクセス可能であること。サポートされた OS は、Windows Vista 以降。 – デバッガー…