「Windowsハードウェア認定」があなたの製品の価値を上げる(後編):Windows 8 デバイスドライバ開発入門(4)(3/3 ページ)
Windows 8対応のデバイスドライバを開発する際に、“知っておくと便利なポイント”を実践的な観点から紹介する連載「Windows 8 デバイスドライバ開発入門」。今回は、「Windowsハードウェア認定」についての後編をお届けします。
3.ハードウェア認定テストを実施する
“Product Type”が決まったら、認定を取るためのゴールが決まったことになります。早速HCKテストを実施してみましょう。テスト実施にあたっては、以下の2点に注意をしてください。
(1) マルチブートPCの場合は、必ずテスト対象OSで起動するように設定しておく。
(2) 64bit環境でテストを実行する場合はドライバにテスト署名をしておく。
HCKテストでは、テスト実施中にPCを再起動するようなテストが存在します。そのような項目の実施中に、(1)の対策をしていないと、テストが途中で止まってしまいますので注意して下さい。
また、テスト対象がベンダー独自のドライバを必要とする場合には、64bit環境でのテスト実施において注意が必要です。64bit環境では、ドライバに署名が付いていない場合はドライバのロードに失敗します。
テストツールによってPCが再起動されるタイミングを毎回検知して、「F8」キーを押して、「強制署名無効モード」で起動するという超人技を覚えるのはやめて、ドライバには事前にテスト署名をしておきましょう。
テスト署名の方法については「Windows 8 デバイスドライバ開発入門(1):知っておくと便利な「Visual Studio 2012」によるテスト署名」を参照ください。なお、テスト署名をしたドライバは、テストモードが「有効」となっている時にその威力を発揮しますが、HCKクライアントのインストーラが自動でテストモードを「有効」にしてくれますので、手動で設定する必要はありません。
また、テスト中にBSODが発生した場合もテストがそこで止まります。テスト項目によっては、実施に15分以上の時間を要するものもありますが、それでも「5時間経ってもまだあのテスト項目終わってない!?」とかいう場合は、何かがおかしいです!おそらくBSODが発生してテストが止まっている可能性があるので、一度HCKクライアントの様子を確認しましょう。
4. ハードウェア認定テストにより検出されたエラーと格闘する
どんなに試験をし尽くした製品であっても、HCKテストで1つのエラーも出さず、全ての試験に合格することは、かなり低い確率だといって良いでしょう。
テストを実施すると、テストログが保存されますので、不合格となった項目についてはテストログから、何が原因で不合格となったかを確認できます。
ここで明らかに犯人が、認定の対象である製品だと分かる場合もありますが、ログを見ても、「何が起きているのかさっぱり分からん……」という場合は、とりあえずテストツールのせいにしましょう。というのも、本当にテストツールのバグが原因で、項目が不合格となってしまうこともあるからです。
このようなテストツールのバグによるエラーは、“Errata Filter”というフィルタを適用することで、結果が合格に変わります。
Windows Hardware Certification Kit Filters
http://msdn.microsoft.com/library/windows/hardware/hh998024.aspx
Errata Filterをインストールすると、HCKテストツールの一部である、HCK Studioに自動でFilterが適用されます。Filterを適用し、結果に何の変化もない場合は、残念ながらあなたが犯人である確率が高いです。
しかし、現在マイクロソフトから発行されているErrata Filterではカバーできないテストツールのバグであるという可能性もゼロではありません。それを見つけたあなたは強者ですが、そのような場合は、Microsoftの有償サポートサービスに問い合わせ、調査を依頼することも可能です。結果、「ツールの問題である」ということが認められれば、Errata Filterを新規に発行してもらえます。
すると、その後マクロソフトから正式にErrata Filterとして発行され、Webからのダウンロードが可能となります。あなたが、同様の問題で苦しんでいる方の救世主となるわけです。
まあ、経験上、テストツールを疑ったも場合、結局自分が犯人だった。というケースも多いと思いますので、あまり期待しないようにしましょう。
ドライバのバグである場合は、せっせとバグを潰していきます。「Windows 8 デバイスドライバ開発入門(2):知っておくと便利な「Visual Studio 2012」によるドライバのトラブルシューティング」が解析の参考になるかと思います。
5.ハードウェア認定テストの結果をMicrosoftに提出し、認定されるのを待つ
認定に必要となる全ての試験項目に合格したら、残る作業はわずかです。
結果の提出
HCKのテスト結果は、パッケージ化して、デジタル署名をした上で、Microsoftのダッシュボードからアップロードする必要があります。署名には専用のCode Signing証明書が必要となりますので、持っていない場合は購入する必要があります。
また、ダッシュボードにアクセスするために、事前に企業用のアカウントを作成しておかなくてはならないなど、最後までまあいろいろと面倒で困ってしまうことこの上ないですが、ここを超えたらその先には光が見えます。詳細は以下を参照してください。
申請手数料について
ここでうれしいお知らせがあります!!!
ハードウェア認定サブミッションの申請手数料が、2014年1月1日より無料になりました!!!
「そもそも認定にお金がかかるなんて、初めて知った」という方もいらっしゃるかもしれませんが、そうです。去年まではお金がかかっていたのです。
現時点では無料になっていますので、これを機会に、ぜひハードウェア認定を検討されてみてはいかがでしょうか。
おわりに
今回は、「Windowsハードウェア認定」というテーマで説明しましたが、いかがでしたでしょうか?少しイレギュラーなケースを多く含めましたが、いざ、問題が起きたときの対処方法として、記憶にとどめておいてもらえると幸いです。
「ハードウェア認定」は時間もかかり大変ですが、認定を受けるまでの過程で、それに関わるすべての人たちの間に、きっとすばらしい絆が生まれることでしょう!
謝辞
今回の寄稿に当たり、記述のチェック、およびアドバイスなど、多大なる協力をしていただいた、サイエンスパークの鈴木大輔氏に感謝致します。
Copyright © ITmedia, Inc. All Rights Reserved.
関連記事
- Windows 8 デバイスドライバ開発入門(2):知っておくと便利な「Visual Studio 2012」によるドライバのトラブルシューティング
Windows 8対応のデバイスドライバを開発する際に、“知っておくと便利なポイント”を実践的な観点から紹介する連載「Windows 8 デバイスドライバ開発入門」。第2回では、デバイスドライバのトラブルシューティングついて取り上げる。 - Windows 8 デバイスドライバ開発入門(1):知っておくと便利な「Visual Studio 2012」によるテスト署名
Windows 8対応のデバイスドライバを開発する際に、“知っておくと便利なポイント”を実践的な観点から紹介する連載「Windows 8 デバイスドライバ開発入門」。第1回では、Windows 8のデバイスドライバ開発における導入知識とテスト署名の方法について取り上げる。