Avshws avshws.h Try004
Avshws(AVStream simulated hardware sample driver)を見ていき、気になったところをピックアップします。
プロジェクト名と同じ名前のヘッダーファイルavshws.h
を見ます。冒頭からのツッコミ…
/* AVStream Simulated Hardware Sample Copyright (c) 2001, Microsoft Corporation. */
をぃ。これ書いている時点で20年前のソースコードorz
ざっと見ました。標準のヘッダーの参照や#define
群があります。このファイルは全ソースファイルに入れておくものでしょう。あとこのAvstreamで重要なヘッダーKs.h, Ksmedia.hの参照もこのファイルに記述されています。
PVOID operator new ( size_t iSize, _When_((poolType & NonPagedPoolMustSucceed) != 0, __drv_reportError("Must succeed pool allocations are forbidden. Allocation failures cause a system crash")) POOL_TYPE poolType );
new演算子の定義(deleteもある)…こんなのあるんだね。知らなかったわw というか、C++は全ての演算子をこうして定義できることは知っていたが、このようにわざわざ書くということは、メモリの確保の仕方が標準と違うのだろうな。
これは実際このような時に使われるそうな。
CClass *cp = new (/* POOLTYPE */ 0) CClass();
あと、見慣れない_When_()は、SALというらしい。パラメーターの補足説明になるらしい。
うむ。定義を見る段階では、これ以上差し当たって問題となるソースコードの内容は無いな。次はDriverEntry関数のあるdevice.cppから見ようっと。