2012-12-29 61 views
2

我使用Windows 7 32位的WDK 7.0編譯實用程序編寫並編譯了一個微過濾器驅動程序。然後,我使用OSR的驅動程序加載器實用程序將它安裝在VMWare上運行的Windows 7(32位)機器上。當我運行DbgView時,我可以準確地看到DbgPrint輸出。使用WDK 8.0編譯的FileSystem MiniFilter驅動程序未顯示DbgPrint輸出(DbgView/Win7 32位)

然後,我編譯了使用集成在Windows 7(32位)的Microsoft Visual Studio Pro 2012中的WDK 8.0的非常相同的驅動程序。結果創建了3個文件,一個sys,cat和inf文件。我通過右鍵單擊inf文件並選擇「安裝」,將驅動程序安裝在VMWare上運行的Windows 7(32位)機器上。然後我從命令提示符開始罰款的服務。但即使它是相同的代碼/驅動程序,我也無法從使用WDK 8.0/VS2012 Pro編譯的驅動程序中看到DbgView中的DbgPrint輸出。下面是實際執行打印(POST操作的回調函數爲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; 
} 

我失去的是什麼?

回答

0

你有沒有試着用WDK 8編譯爲Windows 8/Windows Server 2012中

調試打印的Windows 7,它與WINDDK編譯,但是對於Windows 8/Server 2012中它與WDK編譯工作8和調試信息不​​打印。

0

或者,你可以簡單地寫一個小的reg腳本,默認啓用它們。 有問題的註冊表項是:

  1. HKEY_LOCAL_MACHINE \系統\ CurrentControlSet \控制\會話管理器\調試打印過濾器
  2. 值:DEFAULT
  3. 數據:0x8中

另請檢查this

相關問題