Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

of

ドライバへのETWの埋め込み Slide 1 ドライバへのETWの埋め込み Slide 2 ドライバへのETWの埋め込み Slide 3 ドライバへのETWの埋め込み Slide 4 ドライバへのETWの埋め込み Slide 5 ドライバへのETWの埋め込み Slide 6 ドライバへのETWの埋め込み Slide 7 ドライバへのETWの埋め込み Slide 8 ドライバへのETWの埋め込み Slide 9 ドライバへのETWの埋め込み Slide 10 ドライバへのETWの埋め込み Slide 11 ドライバへのETWの埋め込み Slide 12
Upcoming SlideShare
What to Upload to SlideShare
Next
Download to read offline and view in fullscreen.

0 Likes

Share

Download to read offline

ドライバへのETWの埋め込み

Download to read offline

勉強会で発表した資料。
https://sciencepark.connpass.com/event/175823/

Related Books

Free with a 30 day trial from Scribd

See all

Related Audiobooks

Free with a 30 day trial from Scribd

See all
  • Be the first to like this

ドライバへのETWの埋め込み

  1. 1. 初心者向けデバイスドライバ講座 ドライバへのETWの埋め込み サイエンスパーク株式会社 神戸 佑太 1 Copyright@2020 SciencePark Corp.
  2. 2. ID:ykanbe 名前:神戸佑太(カンベ ユウタ) 出身地:静岡県静岡市 趣味:サッカー・乗馬 静岡大学理学部物理学科卒業 卒業後産業機械メーカーで勤務、 今年4月にサイエンスパーク株式会社に転職 プラットフォーム開発部:デバイスドライバ課所属 ⇒デバイスドライバ初心者が学んだ内容を発表していきます。 自己紹介 2
  3. 3. 4月入社後これまでに取り組んだ業務内容から学んだ内容から発表を行う。 →既存のドライバへのログ機能(ETW)の追加 今回の目標 3
  4. 4. Event Tracing for Windows の略 Windows OS(Windows Vista以降)のイベントトレースの仕組み。 ETWを使用してログを取得するメリットを以下に挙げます。 1.ドライバのパフォーマンスにほぼ影響しない 2.1の理由からRelease版でもトレースログ機能を有効にできる 3.ログ取得のために、追加でアプリケーションをインストールする必要がない 4.BSODが発生した場合、ダンプファイルからログの取り出しが可能 今回はWindows Driver Kit(WDK) とVisual Studio を使用してETWの実装する方法を 紹介します。 ETWとは 4
  5. 5. 5 GUIDとトレースフラグを定義 任意のヘッダファイル(Trace.hとする)で以下を定義していきます。 • GUID・・・オブジェクトを識別するための識別子 今回はトレース対象のドライバに対するGUIDを定義 • トレースフラグ・・・フラグを指定することでトレースするタイミングを制御できる。 ログ出力時にトレースフラグを指定することで、フラグに対応した トレースメッセージがログに書き込まれる。 128bit 16進法で32桁のGUIDを定義t
  6. 6. ヘッダファイルと.tmhファイルをインクルード 6 ログを出力するファイルごとにヘッダファイルとtmhファイルをインクルードします。 tmhファイル・・・ TraceMessageHeaderファイル。 WPP プリプロセッサによって、生成されるトレースで使用される 関数、変数の宣言を含むテキストファイル。 Main.tmhはビルド時にWPPによって生成されるためインテリセンスがエラーになる Main.cにインクルードするファイル例
  7. 7. トレースの初期化処理、クリーンアップ処理を追加 7 ドライバのエントリポイント(DriverEntry関数)にイベントトレースの初期化処理を追加します。 ドライバーのアンロードルーチンにイベントトレースのクリーンアップ処理を追加します。 また、ドライバエントリに失敗した場合に備え、ドライバエントリルーチンにも クリーンアップ処理を追加します。
  8. 8. コードへのトレースメッセージ関数の追加 9 DriverEntyにユーザー定義関数TraceEventsを埋め込んだ 例
  9. 9. ビルド、インストール 10 ドライバープロジェクトのプロパティで以下の設定をしてビルドし、 インストールします。 ・Wpp有効 構成プロパティ-Wpp Tracing-General -Run Wpp Tracing →はい ・GUIDやトレースフラグを定義した、ヘッダー ファイルをScan Configuration Dataとして指定 構成プロパティ-Wpp Tracing-File Options -Scan Configuration Data→trace.h
  10. 10. ログ出力の確認 – TraceViewの設定 11 ①空欄を右クリックし、 Create New Log Sessionを選 択 ②ビルド時に生成されるpdbファイルを指定する pdbファイル:ProgramDataBaseファイル デバッグとプロジェクトの情報を保持 今回はWDK内のTraceViewを使ってpdbファイルを読み込ませて、ログ出力 の確認を行いました。 Windows Kits/10/Tools/x64/traceview
  11. 11. ログ出力の確認 12 DriverEntryルーチンに入ったログ出力を確認。
  12. 12. ご清聴ありがとうございました。 SP2005-E03-01

勉強会で発表した資料。 https://sciencepark.connpass.com/event/175823/

Views

Total views

201

On Slideshare

0

From embeds

0

Number of embeds

18

Actions

Downloads

0

Shares

0

Comments

0

Likes

0

×