註冊 (或清除從 PIX 啟動子進程) (WinPixServices、WinPixEngineHost 等 ) 耗盡的 stdout/stderr 輸出的接收器。 每個清空的行都是透過 IPixLogging::ReportLog 傳遞,其中 SourceType 設定為 PIX_LOGGING_SOURCE_STD_OUTPUT 或 PIX_LOGGING_SOURCE_STD_ERROR,SourceName 設定為生產程序識別碼 (十進位) ,SourceInterface 設定為 GUID_NULL,而 Message 設定為原始、未格式化的行內容。 無論水槽是否註冊,排水器始終在 pixapi.dll 內運行——這可以防止孩子們的管道填滿。 將記錄器設定為 nullptr 會中斷連結任何先前註冊的接收器,並導致捨棄排空的行。 可以隨時撥打電話;新水槽由後續生產線的排水線觀察。 對 IPixLogging::ReportLog 的呼叫來自任意 pixapi 背景工作執行緒。
語法
HRESULT SetLogger(
IPixLogging * logger);
參數
logger [在]
要清除的接收或 nullptr。
傳回
S_OK成功。
註解
注意
提供的 IPixLogging 實作必須是自由執行緒 (敏捷) 。 ReportLog 會直接從未 COM 初始化的 pixapi 內部清空執行緒叫用;結合宣告 IPixLogging 為 [local] (未) 產生封送處理 Proxy 時,就沒有跨單位封送處理呼叫的路徑。 從任意執行緒同時呼叫 ReportLog 不安全的實作將會競賽或當機。