ドライバ開発の際には従来広くASSERTマクロが使われているが、最近のWDKではASSERT定義周辺に、NT_ASSERTというマクロが追加されている。このマクロは現時点では文書化されていないものの、ASSERT Yourself - The New NT_ASSERT Macro in the WDKにおいて、詳細に独自研究されている。 ここでは以下にこの文書の要約を示す。 ASSERTと同じ点 DBGが定義されていなければ(つまりFree Buildであるならば)完全に消去される。 渡した条件式がFALSEになるとカーネルデバッガにトラップされる。 その状況でカーネルデバッガが接続されていないとBSODになる。 ASSERTと異なる点 __annotation組み込み命令を使い、条件式中の文字列をPDB側に埋め込む(バイナリには埋め込まない)。 Vista以降でしかトラップ(ブレーク)