来月中には出そうと思っているので、一応書いておく。
ってか、書いちゃえ。
予告ってやつですよ。
[PR] 自由な名前で定数を共有?!「Addin for Excel 95-2007 Professional Edition」
[AA] 安かったから、買ったよ→BUFFALO ポータブルブルーレイドライブ BR-PX68U2-BK
Hobby::C++の最近のブログ記事
テキストベースで、Excelとの親和性も高いので、プログラムするには適していると思ったんだが、よくわからないことが多い。
Win32スタティックライブラリのプロジェクトウィザードでATLを選択できないのは、普通に使うとマズイことになるからと推測中。
CoInitialize*を呼ぶことができれば、多分使える。
DLLの場合、スレッドアタッチとかスレッドデタッチのタイミングでCoInitialize*/CoUninitializeすればそのスレッドではCOM利用が可能なはず。
#でも、DllMainで呼んじゃダメみたいな記述がある・・・
スレッド内にすべてを封じ込めることができれば、スタティックライブラリにしても問題ないんじゃないかという方針で進めてみようと思っている。
並行してドライバの件もなんとかしなきゃなぁ・・・
ATLって、スタティックライブラリには使えないらしい・・・
#プロジェクトウィザードで選択できましぇんので。
ATL使用部分をスタティックライブラリに内包して、メインのプロジェクトからはATLを隠ぺいしたままにしたいというのは、結果的な希望。
本質の欲求は、msxml利用部分をプロジェクトとして分離したいという、ただそれだけなのにぃ・・・
ATL使うと楽ができるというか、多分コード量も少なくて済むからバグ少なくなると思ったんだけどなぁ。
・・・でもプロジェクトのプロパティではATL利用を選択できるんで、使えそうな気がするんだよね。
どうなってんじゃろぅ。
やっちゃいけないことなんだろうか?
まだちょっと未練があって、いろいろ考えてたら、チェックサム計算を忘れていることに気付いた。
#アキバ行ったときに、TCP/IP関連の本を読んでて気づいたのが本当のところ。
だから、試しにチェックサム計算を入れたわけだ。
1の補数とか、0xFFFF == 0 とか、そんなの。
でも、やはりパケットは飛んでない様子。
結局、ダメなのかなぁ・・・
サンプルが目的に合ってないのか、やろうとしていることが間違っているのか、やり方が間違ってるのか。
多分、全部だろうな・・・
書き換え方が悪いのか、書き換える場所が悪いのか・・・
イーサフレーム書き換えることはできても、発信できていなく、ダメっぽいので、別な方法を探そうと思ったのだった。
やはり、NICに到達しちゃったあとで、送信先MACアドレスまで入ったイーサフレームも出来上がった後で何かしようと思うのは、そもそもの間違いなんだろうな。
とりあえず、またサンプルを漁るか・・・
イーサフレームを書き換えるところまではできた。
でも、まだTCPコネクションを確立できていない。
意図した書き換えもできてるし、書き換えた結果、影響は与えられているようなので、書き換える値などをもう少し見てみる予定。
超面倒・・・
ドライバはカーネルモードで動くわけで、かなりの特権が与えられる。
そんなものが、無暗にメモリを喰いまくったり、例外吐いたりしたらえらいことになるわけだということは薄々気が付いていた。
サンプルコードを見ても、alloc系関数は特定要素の生成に特化したものだったりするのは当たり前だと思ったのだが、どうも、メモリ確保には細心の注意というか、気軽にメモリ確保しちゃいけないんじゃないかと、思ったのは、今日。
一時的なメモリ領域で、固定長にできず、しかし、内容解析のために連続領域が必要・・・といった場合でも、それを確保せずに済ませる方法を考えた方が、どうやらいいらしい。
メモリ確保しないとか、変数を使わないのは、XSLTで慣れてる?
悪戦苦闘の末、読めたのだが・・・
どうやら取得できたのは、IPパケットじゃなくそれを含んだイーサパケットらしい。
まぁ、そりゃ宛先を決めるのならIPアドレスじゃなくてMACアドレスが必要だよねぇ・・・
じゃなくて、そんなところまでいかないうちに、ループバックさせないとマズイのかも。
と思いつつ、書き換えできるかを先に試してみようかと思う。
当たり障りの無い情報ならいくらでもあるんだけど、ドライバ開発するための資料となると、Webですら殆ど見つからない。
DDK(WDK)のサンプルを選んで、デバッグ表示でIPパケットダンプしようと思っただけなのに、明らかにそこに目的のIPパケットがありそうなのに、もうやり方が分からない。
ヘルプ読むと、関数とかマクロ使えとか書いてあったりするんだけど、具体的な関数名やマクロ名が分からん。
気長にコツコツやるしかないのだろう。
そのうち分かってくるといいなぁ。