Windowsドライバのファイルに特定の構造のダンプを作成する必要があります。したがって、ファイルポインタの場合、私はvoidポインタを使用し、fprintfのファイルポインタの代わりに使用しました。Windowsカーネルデバイスドライバでfprintfを使用する
ソースもコンパイルエラーなしで正常にビルドされます。しかし、ドライバをロードすると、そのポインタに格納されている値は印刷されません。
どのようにWindowsドライバでfprintfを使用する必要がありますか?
Windowsドライバのファイルに特定の構造のダンプを作成する必要があります。したがって、ファイルポインタの場合、私はvoidポインタを使用し、fprintfのファイルポインタの代わりに使用しました。Windowsカーネルデバイスドライバでfprintfを使用する
ソースもコンパイルエラーなしで正常にビルドされます。しかし、ドライバをロードすると、そのポインタに格納されている値は印刷されません。
どのようにWindowsドライバでfprintfを使用する必要がありますか?
デバイスドライバ内でDbgPrintExを使用しているはずです。
printfはカーネルモードでは動作しません。
DbgPrintExは、カーネルのDbgPrintバッファに印刷します.DbgPrintExは、WinDbgやKdのようなカーネルデバッガで見ることができます。ローカルシステムで見る場合はDebugViewです。
あなたはこのバッファに印刷するメッセージのほとんどは、デフォルトでは除外されているので、Windowsを使用する、デバイスドライバにCI/O機能を使用しないでくださいMSDN
で説明するように、フィルタリングを調整したいです代わりにAPI。 CRTの標準機能には、ロックやその他の事態が起こって、ドライバを混乱させたりロックしたり、クラッシュさせたりすることがあります。 –
@JoachimPileborg:また、モニカは一般的にユーザモードのコンポーネントを参照するので、ドライバ内のWindows APIを避けたいでしょう。これは、ユーザーモードコードからのみ使用できます。 NT DDK(または最近呼び出されるWDK)で定義されているカーネルモードのAPIのみを使用する必要があります。 – EFraim