我使用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;
}
我失去的是什麼?
+1 for'ed Kd_DEFAULT_Mask 8' – 2013-07-20 19:17:46