Japan WDK Support Blog

マイクロソフト株式会社の DDK/WDK サポートチームの blog です。

Posts
  • Japan WDK Support Blog

    デバイス オブジェクトのセキュリティ その2

      久方ぶりです。まさかたです。 前回の記事で、デバイス オブジェクトのセキュリティという観点から、Security Descriptorの記述についてお話ししました。その時に、これ以外にも、デバイスオブジェクトをセキュリティで保護するためにドライバー側でできることとして、デバイスの名前空間の保護や、デバイスオープンの排他制御といったものがあることに触れましたが、今回はその名前空間の保護と排他制御の 2 点について簡単にお話ししたいと思います。 1. デバイスの名前空間の保護 デバイスの名前空間とは...
  • Japan WDK Support Blog

    デバイス オブジェクトのセキュリティ

    久方ぶりです。まさかたです。 今回は、デバイスにアクセスする際のセキュリティに深く関係のある、デバイスオブジェクトのセキュリティについてお話ししたいと思います。 まず、アプリケーションが、デバイスに対して I/O のリクエストをする場合、入り口として CreateFile() でデバイスハンドルを取得し、このハンドルを通して ReadFile() や WriteFile(), DeviceIoControl() などでリクエストを行います。このようなデバイスハンドルの取得や、I/O のリクエストの実行は...
  • Japan WDK Support Blog

    WOW64 デバッギング

    ご無沙汰しております。なおきお~です。 少しずつ暖かくなり、過ごしやすい日が増えてきました。皆さん、如何お過ごしでしょうか? 暖かくなってきたとはいえ、季節の変わり目は、体調を崩しやすいので、お気を付けください。   春は、入学、入社など、新たな一歩を踏み出す季節でもあると思います。 新たな一歩というほど大げさなもの、新しいものではありませんが、今回は、 WOW64 のデバッグの Tips を紹介したいと思います。   Windows 7 や Windows Server 2008...
  • Japan WDK Support Blog

    Spooler Notification

    お久しぶりです。A尾です。 今回は Spooler Notification についてお話ししようと思います。 Spooler Notification は、スプーラ サービスのコンポーネントとアプリケーションとの間で通信を行う、 Windows Vista よりサポートされた機能です。スプーラ コンポーネントはスプーラ サービス上 ( セッション 0) で動作するため、ダイアログ等の UI を表示したりして、印刷ジョブのステータスなどを表示することが出来ません。(詳細は こちら...
  • Japan WDK Support Blog

    Performance-Optimized Code

    こんにちは。 K 里です。   今回はパフォーマンスの最適化が実施されたコード (Performance-Optimized Code) についてお話ししたいと思います。 Windows でソフトウェア開発や運用・保守を行われている方は、デバッグやダンプ解析から OS の内部関数について逆アセンブラを用いてコードを見られる場合があると思います。今回の内容はそのような方々を対象としています。   デバッガ (Windbg) で逆アセンブルする場合 u コマンドを使用しますが、 u...
  • Japan WDK Support Blog

    Event Tracing for Windows (ETW)

    皆さん、こんにちは。 A 寿です。   突然ですが、皆さんは、馬に乗ったことはありますか?・・・このお話にご興味のある方は本文の最後の【閑話休題】までどうぞ。   さて、今回は、 Event Tracing for Windows (ETW) についてお話ししようと思います。ドライバ開発者の方にとって、なぜ、 ETW が必要なのでしょうか?読者の皆様にもご経験があるかもしれませんが、エンドユーザ様の運用環境の現象を、開発側で再現できない場合や、開発側でカーネルデバッガを接続し...
  • Japan WDK Support Blog

    I/O コントロール発行に使うハンドルに必要なアクセス権限

    皆さん、こんにちは。 A 寿です。   突然ですが、皆さんは、左ハンドルの車を運転したことはありますか?・・・このお話にご興味のある方は本文の最後の【閑話休題】までどうぞ。   さて、今回は、 I/O コントロール発行に使うハンドルに必要なアクセス権限についてお話ししようと思います。結論から言いますと、 「 CreateFile() の 2nd parameter の accessMode には、 I/O コントロールコードを定義する CTL_CODE() マクロの 4th parameter...
  • Japan WDK Support Blog

    INFファイルの構文チェック ~ chkinf の使い方 ~

    皆さん、こんにちは。 A 寿です。   突然ですが、皆さんは、大使館に行ったことはありますか?・・・このお話にご興味のある方は本文の最後の【閑話休題】までどうぞ。   さて、今回は INF ファイルの構文チェックを行う、 chkinf というツールをご紹介しようと思います。以前、「 ドライバ イン ストール時のトラブルシューティングの第一歩 」という記事を書きました。ここに書いた以外のトラブルシューティング初期の切り分け方法として、 chkinf ツールで INF ファイルの構文チェックを行い...
  • Japan WDK Support Blog

    Bindview とINetCfg API

    みなさま、お久しぶりです。さなえすです。   ローカル エリア接続のプロパティから、チェックボックスのチェックを入れる・はずすといった手順で、 IPv6 の有効・無効の切り替えなどを行うことができます。では、似たような操作を、プログラムで行いたい場合どうすればよいのでしょうか?     INetCfg インターフェースは、ネットワーク関連のモジュールのセットアップや、コンフィグレーションを行うための機能を提供しています。なので、この INetCfg インターフェースを使用してプログラムを実装すれば...
  • Japan WDK Support Blog

    ドライバーのデジタル署名の基礎

      久方ぶりです。まさかたです。 さて、今回は、ドライバーのデジタル署名のお話をしたいと思います。   始めに、ドライバーのデジタル署名についてあまりご存知ない方に、簡単にデジタル署名とは何か?なぜドライバーに署名が必要なのか?ということについてお話ししたいと思います。 まず 「署名」 という言葉の意味について辞書を見てみますと、例えば「本人が自分の名を書類などに書くこと。また、その書かれたもの。」と書かれております。 これは、ドライバーにおける署名も同様で、ドライバーの場合は...
  • Japan WDK Support Blog

    スタックオーバーフロー

    こんにちは、 K 里です。   今回は Windows OS がクラッシュする最多要因の一つであるカーネルスタックオーバーフローについてお話したいと思います。   カーネルスタックは 、 関数間でやりとりする引数、戻り値や関数内で使用するローカル変数を保持するためのストレージ領域で、そのサイズはプロセッサアーキテクチャに依存して x86 では 12 KB 、 x64 (amd64/EM64T 含 ) では 24KB 、 Itanium では 32 KB と固定で割り当てられます...
  • Japan WDK Support Blog

    NDIS のトレース

    こんにちは、さなえすです。暑くなってきましたが、皆さまいかがお過ごしですか?「梅雨(つゆ)」の語源は諸説あるようですが、梅の実が熟す時期の雨という意味もあるそうです。今年は私も梅シロップと梅酒を漬けてみました。これで夏を乗り切りつつ、暑さがおさまる頃には美味しい梅酒が飲めるといいなぁーと、楽しみにしております♪ 先日、 NDIS チームのブログ で NDIS.sys の TMF (Trace Format) ファイルが公開されていました。実際の記事はこちら (→ ”...
  • Japan WDK Support Blog

    イベントログの出力方法

    皆さん、こんにちは。A寿です。 突然ですが、皆さんは、パスポートなしで他国に入国したことはありますか?・・・このお話にご興味のある方は本文の最後の【閑話休題】までどうぞ。 さて、今回はカーネル ドライバでのシステムイベントログの出力方法をご紹介しようと思います。ドライバ内の情報をシステム イベントログに残すことで、お客様先のトラブル発生時に、イベントビューアーでそのドライバ以外のモジュールのログと併せて確認できるため、トラブル発生時の大まかな状況をつかむことができます。トラブルシューティングのための情報記録の手段として...
  • Japan WDK Support Blog

    Package-Aware プリンタ ドライバ

    こんにちは。A尾です。 今回は Package-Aware プリンタ ドライバについてお話しさせていただきます。 既に皆さんご存知の方も多いかと思いますが、 Windows Vista より、 INF ファイルとその INF ファイルに記述されているドライバ構成ファイルを一つのオブジェクトとして扱うことを目的に、 Driver Package という概念を取り入れられました。これにより、ドライバのインストール時は、まず Driver Store に Driver Package...
  • Japan WDK Support Blog

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

    なおきお~です。皆様、いかがお過ごしでしょうか?ご無事でしょうか? この度の東北地方太平洋沖地震により、亡くなられた方々のご冥福をお祈り申し上げますとともに、被災された皆様と、そのご家族様に対しまして、心よりお見舞い申し上げます。 また、このブログを閲覧していただいている皆様が、ご無事であることも、お祈り申し上げております。 さて、大震災以降、安全性というものの重みを思い知らされている日々ですが、デバイス ドライバを開発する際も、ささやかなものですが、安全性や安定性を意識しなければなりません...
  • Japan WDK Support Blog

    STATUS_PENDING の取り扱い方

    久方ぶりです。まさかたです。 先日、素晴らしいお天気の中、東京マラソン 2011 が開催されましたね。みなさんは東京マラソンに参加されたことがありますでしょうか? 私はありません。 さて、今回の話題は、 STATUS_PENDING です。 この STAUS_PENDING は、ご存知の通り、あるドライバーが、ドライバースタックの下位ドライバーに対して、 IoCallDriver() を使って IRP を投げた場合に、その戻り値として返ってくる可能性のあるステータスの一つです...
  • Japan WDK Support Blog

    Windows の Network Driver II ~ Bind は制御できるか? ~

    お久しぶりです。さなえすです。 今日は前回 8 月の投稿でお約束した、ネットワークのバインド (Bind) について書こうと思います。 ● バインド (Bind) とは? 英語の “ bind ” のそもそもの意味は、バラバラになっているものを紐などを使って「束ねる」ことを指しますが、ネットワークにおけるバインドの概念も同じことです。システム上には、ネットワークモジュールが複数存在していて、かつ、異なるレイヤーに位置していることは前回お話しました...
  • Japan WDK Support Blog

    デバイスの追加・削除の通知をアプリケーションで受け取る方法

    皆さん、こんにちは。 A 寿です。 突然ですが、皆さんは、かつお節を使った和食の「本物の味」を味わったことはありますか?・・・このお話にご興味のある方は本文の最後の【閑話休題】までどうぞ。 さて、今回は、デバイスの追加・削除の通知をアプリケーションで受け取る方法をご紹介しようと思います。 前回の私の記事 で、 Toaster サンプルの Notify.exe の使い方をご紹介しました。その記事で、 Notify.exe で Toaster デバイスを追加・削除した場合に、...
  • Japan WDK Support Blog

    ToasterサンプルのNotify.exeの使い方

    皆さん、こんにちは。 A 寿です。 突然ですが、皆さんは、シーカヤックに乗っている時に転覆させられたことはありますか?・・・このお話にご興味のある方は本文の最後の【閑話休題】までどうぞ。 さて、今回は Toaster サンプルの Notify.exe の使い方をご紹介しようと思います。 Notify.exe は、 Toaster サンプルのデバイスの追加や削除を行うことができると同時に、デバイスが追加・削除されたことを、 WM_DEVICECHANGE というメッセージとして受け取ることができるウィンドウアプリケーションのサンプルです...
  • Japan WDK Support Blog

    Device Object と Device Stack

    こんにちは、 K 里です。今回は、以前の 記事 で紹介しました WDM (Windows Driver Model) ドライバのデバイス オブジェクトとデバイス スタックについて説明します。 デバイス オブジェクト Windows OS は、システムに接続される全てのデバイスをデバイスオブジェクトという情報を用いて制御します。各デバイスには、 1 つ以上のデバイス オブジェクトが関連付けられていて、デバイスの操作は、このオブジェクトを対象に機能します。カーネルモードドライバは、デバイスに対して少なくとも...
  • Japan WDK Support Blog

    Printer Driver Isolation

    こんにちは、A尾です。 前回の予告通り、今回は Windows 7 よりサポートされた Printer Driver Isolation についてお話しさせていただきます。   Windows 7 以前の Windows OS では、プリント プロセッサやプリンタ ドライバはスプーラ サービスのプロセス上にて動作していましたが、 Windows 7 以降では、 Printer Driver Isolation により、これまでスプーラサービス上で動作していたプリント プロセッサやプリンタ...
  • Japan WDK Support Blog

    Windows の Network Driver

    お久しぶりです。さなえすです。 8 月ももう終わりですね。 私事ですが、この間の週末は高円寺の阿波踊りに「マイクロソフト連」として参加させていただきました。“ Windows 7 ”   を掛け声に踊ったんですけど、腕も足も痛いし、汗は目に入るしで大変でした。最後まで頑張れたのは、沿道のみなさんから「マイクロソフトぉ~頑張れ~!」「せぶんせぶんせぶん~」と温かい声援をかけていただいたおかげです。お祭りを通じて、地域のみなさんとの距離がぐっと近くなる感じが、とっても良かったです♪ さて、皆さまのこの夏の思い出は何でしたか...
  • Japan WDK Support Blog

    デバイス ドライバーの選ばれ方

      久方ぶりです。まさかたです。   今回は、 Windows がどのようにインストールするドライバーを選んでいるのかについて、特に Windows 7 で変わった点にフォーカスして、お話したいと思います。 まず、 PC に新しいデバイスが接続されると、 PnP が発生してドライバーのインストールが行われるわけですが、その背後で Windows はさまざまな場所からドライバーを検索して、できるだけ最適なドライバーをインストールしようとします。 この時のドライバーを探してくる場所とその優先順位や...
  • Japan WDK Support Blog

    印刷時のスプーリングについて(その2)

    こんにちは、A尾です。 色々とバタバタとしておりまして、しばらくぶりとなってしまいました。申し訳ありません。 前回はローカルにインストールしたプリンタで印刷した際のスプーリングについてお話ししました。今回は Point and Print によりインストールしたプリンタで印刷した際のスプーリング動作についてお話ししたいと思います。   Point and Print によるインストールについてですが、 Point and Print によるインストールとはプリント サーバー等のネットワーク上の...
  • Japan WDK Support Blog

    ClasFiltサンプルINFにアンインストール処理を追加する

    皆さん、こんにちは。 A 寿です。   突然ですが、皆さんは乗った船の船頭さんに船から引きずり落とされそうになったことはありますか?・・・このお話にご興味のある方は本文の最後の【閑話休題】までどうぞ。   さて、 前回の私の記事 では、 ClasFilt サンプル INF ファイルをご紹介しました。この INF ファイルには、お気づきの方もいらっしゃるかと思いますが、 INF そのものにはアンインストールの方法は記述されておりません。そこで、今回は、 ClasFilt サンプル...
Page 1 of 3 (67 items) 123