この記事は Windows & Microsoft技術 基礎 Advent Calendar 2015 の 23 日目です。
今度は期日前に書き上げましたよ!
前回は肝心なところで終わってしまいました。
今回は続きの NT ヘッダー編から。
と言ってもですね、NT ヘッダーを全部解説し終わったら、PE ファイルの解説なんて 9 割方終わったようなもんです。
なので、しばらくは NT ヘッダーの解説が続きます。
この記事は Windows & Microsoft技術 基礎 Advent Calendar 2015 の 23 日目です。
今度は期日前に書き上げましたよ!
前回は肝心なところで終わってしまいました。
今回は続きの NT ヘッダー編から。
と言ってもですね、NT ヘッダーを全部解説し終わったら、PE ファイルの解説なんて 9 割方終わったようなもんです。
なので、しばらくは NT ヘッダーの解説が続きます。
この記事は Windows & Microsoft技術 基礎 Advent Calendar 2015 の 20 日目です。*1
他の人が書かなそうなネタということで、Windows 実行ファイルで攻めてみることにします。
*1:今まで 21 日目だと思ってましたごめんー!
P/Invoke で Windows API を呼び出す際、引数に構造体を渡すには、割と色々な方法があります。
最近ちょっと混乱したので、改めてまとめてみました。
これまで知らなかった便利な方法も紹介しています。
新機能でも何でもありませんが、よく P/Invoke を使われる方にはご一読頂いて損はない内容だと思います。
ちなみに、本記事では、C# で言う struct と class を総称して「構造体」と呼ぶこととします。
struct と class の区別が必要な場合は「struct」と「class」または「値型」と「参照型」と呼び分けます。
本文中では「struct ≠ 構造体」ということにご留意ください。
なお、本記事の内容は、Windows API の呼び出しに限定した内容になっています。
COM の場合はまた事情が違うのですが、そちらは割愛させて頂きます。
前回の投稿に入れようと思って書いていたら脱線しすぎ&長くなり過ぎたのでカットした補足事項でございます。
続きを読む思い出した頃に更新することで定評のある ETW ブログのお時間です。
前々回までで、プロバイダー、コントローラー、コンシューマーと、ETW のコンポーネントを一通り作ってみました。
が、今までのプロバイダーは、イベントに付随するデータが何もありませんでした。
そのため、「何かが起きた」ことはわかっても、「何が起きたか」はわかりません。
それでは実用になりませんので、今回から、イベントに様々なデータを付随させて、実用的なサンプルにして行きたいと思います。
ま、今回はその準備段階のようなものですが。
例によってコードは GitHub に。
今回はプロバイダーとコンシューマーをいじっています。
コントローラーはこれまで作ったものでも logman でも構いませんが、.etl ファイルの名前には注意してください(trace3.cmd を使うとファイルを生成できます)。