Skip navigation.
ホーム
BLOG-ROMMER 日高のブログ

ビジネス

ビジネス

WinUSB と UWP の今後

古いUSBドライバーをWindows 10 で使いたい にも書いたが、WinUSB の問い合わせが今でも結構ある。それで先日、WinUSBの最新情報がどうなっているのかを見たところ、本家の内容の多くが Windows 8.1 時代のもので、チュートリアル・サンプルが手順通り進めてもビルドできないことを確認した。今回これをデバッグして、Issue を上げたのをきっかけに関連情報とともに記事にする。

デバッグ済 WinUSBサンプルプロジェクトはこちら

 



WinUSB Architecture and Modules

Microsoft Ignite The Tour 2019-2020

去年12月に Microsoft Ignite The Tour TOKYO のイベントで、2020年1月になってからは Microsoft Ignite The Tour OSAKA でスピーカーを務めた。先日知人に、そのセッションの資料が公開されたという話をしたら、入手したいと言われた。それで資料のダウンロードについて良く調べてみたところ、結構面倒なことになっていたため、関連する情報を書いてみる。


東京会場


大阪会場

いまどき Windows XP を動作させる

さる2020年1月14日にWindows 7の延長サポートが終了した。延長サポートの終了 は、Windows 7用のセキュリティアップデートがWindows Updateで配布されくなるということである。詳細は前述のリンクを始め、ネット上に多数の情報があるので、そちらを参照されたい。ここでの主役はWindows XPである。製品サポートが2014年4月9日で終了し、組込みシステム向けの Windows XP Embedded も2016年に終了。後発のため特別扱いだった、Windows XP Embedded POSReady 2009 のサポートも2019年4月9日で終了した。

なぜ今ごろ Windows XP なのかというと、去年後半あたりから Windows XP / Windows 2000 時代のアプリケーションやドライバーの更新を求めるお客様が出てきたからである。アプリケーションやドライバーの更新版を作成(実際には開発)する際は、元の環境での動作を良く検証する必要がある。それで今回試した、評価目的での Windows XP (32bit版) をインストールして動作させる手順の最新版?を公開する。

古いUSBドライバーをWindows 10 で使いたい

Windows 7のサポート期限 が近づいて来て、ここ最近聞く様になったのが古いOS用のUSBドライバーを Windows 10 で使いたいという話だ。

どれぐらい古いかと言うと、Windows 2000 とか Windows XP だったりする。当然 32bit Only、そして使いたいのは最新の Windows 10 64bit版。ご存知の方も多いと思うが、昔の Windows 32bit版のドライバーは、結構そのまま Windows 7 (32bit)にインストールできて動作してしまう。しかし Windows 10 のカーネルモードで動作する一般的な USB ドライバーは、 KMCS (Kernel Mode Code Signing) ポリシーや、sha2署名UEFIセキュアブート での厳格な署名制限があり、単純に古い WDM (WDFでも同じ) のUSBドライバーを再ビルドしただけでは、問題無く動作するとは言えない。そこでその大昔のドライバーを Windows 10用 に対応させるためにどの様な方法があるかを、一から開発し直すことも含めて整理した。

Windows 10用ドライバー署名(2019年版)

新しいダッシュボードの運用が始まり、Windows 10 のドライバー署名方法の方法が変わって約3年経った。今でも時折質問が来るので、整理して解説する。

前提:証明書と署名

混同している方が結構多いため、大前提として再度確認するわけだが、証明書(Cerificate)署名(SignatureまたはSigning) は異なるものである。

一般的に証明書は、メーカーやユーザーが証明書発行機関(会社)から調達する。通常は1年程度の有効期限がある。電子的なものだが、例えば後述の EV証明書(Extended Validation 証明書)は、次の写真の様なUSBドングルに入っている。

再発行不可なので、無くしてはいけない。時代に逆行している様に思えるが、物理デバイスが必須である。詳しい事情は良く知らないが、どこかの国でどこかの会社がいい加減な証明書をバラまいたためにこの様な事態になったという噂がある。

iothub-explorer に代わる素晴らしいもの

先月のことだが、下記の Pull Request が却下された。1か月待たされてからの返事は、Closedだった。

https://github.com/Azure/azure-iot-sdk-c/pull/690

PRの内容は、azure-iot-sdk-ciothub_service_client の samples 以下にある iothub_registrymanager_sample を次のことを実現する様に修正するものだった。

  • iothub_registrymanager_sample のソースコードに、connection string 等のパラメーターを設定するだけで、単体のプログラムとしてビルドして実行可能にする。試せばわかるが、この Sample は「コーディング事例」だけを示すもので、パラメーターを設定だけではプログラムとして意味がある動作をしない。
  • Deprecated 扱いになった、IoTHubRegistryManager_GetDeviceList() の正しい使用法を示す。
  • このサンプルプログラムが、Deprecated になった、iothub-explorer の代替として利用できる様にする。
  • それの README を付加する。

そのそもこのPRを出そうと思いついたのは、全て iothub-explorer が原因である。

どんなデータって何だ?de:code 2018

「どんなデータもAzure IoT Hub に転送」

de:code 2018で私が話したシアターセッションのタイトルである。当然ながら「どんなデータ」って何だ?という疑問が出るであろう。そこでde:code 2018でのセッションを聞かなかった方のために、少しだけ解説する。ポイントは私が去年から何となく考えていた次の3つである。

  • IoTが流行り出して様々なシステム、プロトコルや標準、さらには団体まで出て来ているが、みなどれも難しくしすぎてないだろうか?
  • データをデバイスからクラウドに転送する、あるいは逆方向も同じだが、最も簡単に、勿論セキュアに実現する方法は何だろうか?
  • 世の中様々なデータやバスがあって、それぞれの通信方式があるが、これらを簡単かつ統一的に扱う、あるいは管理するための方法はどの様になるだろうか?

私なりの考えに基づいて実装した事例を紹介したのがこのセッションである。

EnOcean Alliance Event in Luxemburg

5月15日から4日間、ルクセンブルグで開催されたEnOcean Allianceのイベントに参加して来たのでレポートする。
15日と16日は TWG(Technical Working Group) だけのミーティングで、TWGの現在の課題である Remote Comissioning と Self Certificate を中心に議論が進められた。これら TWG の活動成果(公開情報)は、下記の EnOcean Alliance のページにまとめられているので、興味がある方は参照頂きたい。

EnOcean Alliance Event in Luxemburg

続編:Azure 無料アカウント

2018年5月11日に、2017年に書いた記事のコメントとして無料アカウントの記事を全面的に調べ直して書き直したのだが、細かすぎて伝わらないとの指摘もあったので、新項目として書き直す。本体であるPDFのリンク先は、5月11日のコメントと同じままである。

無料の Azure アカウントを今すぐ作成しましょう

いつの間にか、IoTという言葉がごく当たり前のように、あちこちで聞かれるようになった。どうやらこれからの世の中はすごいらしく、事務用品、子供用おもちゃやレジャー用品など、まったく関係無さそうなまでがIoTになるらしい。それはさておきIoTがらみのセミナーや実習でいつも問題になるのが、学習で使うクラウドのアカウントをどうやって開設するかという事だ。弊社の場合は業務上の関係でMicrosoft Azureを実習で利用することが多いのだが、相変わらず2年前と同じように無料の評価用アカウントの取得が学習の障害になっている。

コンテンツ配信