XMemGetWriteWatch
擷取虛擬位址範圍中已寫入之頁面的位址。語法
參數
dwFlags _In_類型:DWORD 表示呼叫 XMemGetWriteWatch 之後是否要重設寫入追蹤狀態。指定
WRITE_WATCH_FLAG_RESET 表示應重設寫入追蹤。否則請指定 0。
lpBaseAddress _In_類型:PVOID 要擷取寫入追蹤資訊之範圍的基底位址。 dwRegionSize _In_
類型:SIZE_T 要擷取寫入追蹤資訊之範圍的大小。 lpAddresses _Out_writes_to_opt_(*lpdwCount,*lpdwCount)
類型:PVOID 指向緩衝區的指標,該緩衝區會接收位址範圍中已寫入之頁面位址的陣列。 lpdwCount _Inout_opt_
類型:ULONG_PTR* 輸入時,提供 lpAddresses 中的陣列元素計數。
輸出時,包含傳回的陣列元素數目。 lpdwGranularity _Out_opt_
類型:LPDWORD 指向接收頁面大小 (以位元組為單位) 之變數的指標。
傳回值
類型:UINT 成功時,XMemGetWriteWatch 會傳回 0。如果函式失敗,傳回值為非零值。備註
在正常運作時,XMemGetWriteWatch 與 GetWriteWatch 大致相同。不過,因為 PIX GPU 擷取也需要寫入追蹤,所以發生 PIX GPU 擷取時,XMemGetWriteWatch 會有額外的行為。 發生 PIX GPU 擷取時,遊戲的寫入追蹤會暫停。這會由 XMemGetWriteWatch 傳回ERROR_CAN_NOT_COMPLETE 來表示。XMemGetWriteWatch 會持續傳回此值,直到 (GPU 擷取完成後) 呼叫 XMemResumeWriteWatch,表示呼叫端已準備好繼續寫入追蹤為止。PIX GPU 擷取完成後,所有 MEM_WRITE_WATCH 虛擬位址範圍的寫入追蹤狀態都是未知的。呼叫端有責任為每個受監視的範圍重新建立寫入追蹤狀態的基準預期。這可以透過呼叫 XMemResetWriteWatch、使用 WRITE_WATCH_FLAG_RESET 呼叫 XMemGetWriteWatch,或刻意寫入 MEM_WRITE_WATCH 區域來完成。
