2

Windows 732ビット用のWDK7.0ビルドユーティリティを使用してミニフィルタードライバーを作成し、コンパイルしました。次に、OSRのドライバーローダーユーティリティを使用して、VMWareで実行されているWindows 7(32ビット)マシンにインストールしました。DbgViewを実行すると、DbgPrintの出力を正確に確認できました。

次に、Microsoft Visual Studio Pro 2012 for Windows 7(32ビット)に統合されたWDK 8.0を使用して、まったく同じドライバーをコンパイルしました。その結果、sys、cat、infファイルの3つのファイルが作成されました。infファイルを右クリックし、[インストール]を選択して、VMWareで実行されているWindows 7(32ビット)マシンにドライバーをインストールしました。その後、正常に起動したコマンドプロンプトからサービスを開始しました。しかし、同じコード/ドライバーであったとしても、WDK 8.0 /VS2012Proを使用してコンパイルされたドライバーからのDbgPrint出力をDbgViewで見ることができません。実際に印刷を行うコードは次のとおりです(IRP_MJ_CREATEの操作後のコールバック関数)。

FLT_POSTOP_CALLBACK_STATUS CreateFilePostOpCallback(__in PFLT_CALLBACK_DATA Data, __in PCFLT_RELATED_OBJECTS FltObjects,
                                                    __in_opt PVOID CompletionContext, __in FLT_POST_OPERATION_FLAGS Flags)
{
    PFLT_FILE_NAME_INFORMATION fileNameInfo;
    NTSTATUS status;

    UNREFERENCED_PARAMETER(FltObjects);
    UNREFERENCED_PARAMETER(CompletionContext);
    UNREFERENCED_PARAMETER(Flags);

    status = FltGetFileNameInformation(Data, FLT_FILE_NAME_NORMALIZED|FLT_FILE_NAME_QUERY_DEFAULT, &fileNameInfo);

    if(!NT_SUCCESS(status))
        return FLT_POSTOP_FINISHED_PROCESSING;

    FltParseFileNameInformation(fileNameInfo);

    DbgPrint("%wZ created/opened", &fileNameInfo->Name);

    FltReleaseFileNameInformation(fileNameInfo);

    return FLT_POSTOP_FINISHED_PROCESSING;
}

ここで何が欠けていますか?

4

3 に答える 3

2

ビスタ以上では、DbgPrintメッセージはデフォルトでマスクされます。

WinDbgプロンプトでこれを試してください

ed Kd_DEFAULT_Mask 8

詳細については、この質問カーネルトレースWindows7WinDbgまたはこの記事DbgPrintinvista以降を参照してください。

于 2013-01-01T07:59:10.867 に答える
0

WDK 8 for Windows 8 / WindowsServer2012でコンパイルしようとしましたか

デバッグ印刷の場合、WinDDKでコンパイルされたWindows 7で機能しますが、Windows 8 / Server 2012の場合は、WDK 8でコンパイルし、デバッグ情報を印刷しない必要があります。

于 2014-06-04T09:58:09.813 に答える
0

または、デフォルトで有効にする小さなregスクリプトを作成することもできます。問題のレジストリキーは次のとおりです。

  1. HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Control \ Session Manager \ Debug Print Filter
  2. 値:デフォルト
  3. データ:0x8

これもチェックしてください。

于 2018-01-26T19:02:58.387 に答える