共用方式為


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訊息所表示,其具有下列四個參數。

  1. 0x3
  2. 內部排程器數據結構的指標
  3. 內部排程器數據結構的指標
  4. 內部排程器數據結構的指標
DxgkDdiPatch 應設為可分頁。

規格需求

需求
最低支援的用戶端 Windows Vista
目標平台 桌面
標頭 d3dkmddi.h
IRQL PASSIVE_LEVEL

另請參閱

DXGKARG_PATCH

DxgkDdiAddDevice