DXGKDDI_PATCH回呼函式 (d3dkmddi.h)
DxgkDdiPatch 函式會將實體位址指派給指定的直接記憶體存取 (DMA) 緩衝區,再將 DMA 緩衝區提交至圖形硬體。
語法
DXGKDDI_PATCH DxgkddiPatch;
NTSTATUS DxgkddiPatch(
[in] IN_CONST_HANDLE hAdapter,
[in] IN_CONST_PDXGKARG_PATCH pPatch
)
{...}
參數
[in] hAdapter
與顯示配接器相關聯的內容區塊句柄。 顯示迷你埠驅動程式先前已將此句柄提供給 DxgkDdiAddDevice 函式之 MiniportDeviceContext 輸出參數中的 Microsoft DirectX 圖形核心子系統。
[in] pPatch
DXGKARG_PATCH 結構的指標,描述要以實體位址修補的 DMA 緩衝區。
傳回值
成功完成時 傳回STATUS_SUCCESS 。 如果驅動程式改為傳回錯誤碼,操作系統會導致發生系統錯誤檢查。 如需詳細資訊,請參閱接下來的<備註>一節。
備註
DxgkDdiPatch 函式必須就地將實體位址指派給 DMA 緩衝區。 因此,當顯示迷你埠驅動程序產生 DMA 緩衝區時,驅動程式必須確定 DMA 緩衝區中有空間可用,才能插入處理實體位址所需的指示。 請注意,實體位址可能會對應到視訊記憶體、AGP/PCI Express 記憶體或系統記憶體。
驅動程式必須在 pPatchLocationList DXGKARG_PATCH 成員的 pPatchLocationList 成員中檢查提供的修補程式位置清單,該成員是由 pPatch 參數所指向,以識別必須使用實體位址修補的 DMA 緩衝區中的位置。 提供的配置清單 (由 DXGKARG_PATCH) pAllocationList 成員所指定,也會包含視訊記憶體管理員產生的實體位址。 呼叫驅動程式的 DxgkDdiPatch 函式是驅動程式在 DMA 緩衝區提交至圖形處理單位之前修改 DMA 緩衝區內容的最後一個機會, (GPU) 。 請注意,在先占 DMA 緩衝區的情況下,驅動程式可以多次修補 DMA 緩衝區。
驅動程式可以將 DXGKARG_PATCH 的 SubmitFenceId 成員中提供的值修補到 DMA 緩衝區結尾的柵欄命令。 如需此成員的詳細資訊,請參閱 提供柵欄標識碼。
如果驅動程式傳回錯誤碼,Microsoft DirectX 圖形核心子系統會導致系統錯誤檢查發生。 在損毀傾印檔案中, 錯誤是由錯誤檢查0x119訊息所表示,其具有下列四個參數。
- 0x3
- 內部排程器數據結構的指標
- 內部排程器數據結構的指標
- 內部排程器數據結構的指標
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | Windows Vista |
目標平台 | 桌面 |
標頭 | d3dkmddi.h |
IRQL | PASSIVE_LEVEL |