DXGKDDI_INTERRUPT_ROUTINE回呼函式 (dispmprt.h)

DxgkDdiInterruptRoutine 函式會處理顯示配接器所產生的中斷。

語法

DXGKDDI_INTERRUPT_ROUTINE DxgkddiInterruptRoutine;

BOOLEAN DxgkddiInterruptRoutine(
  [in] IN_CONST_PVOID MiniportDeviceContext,
  [in] IN_ULONG MessageNumber
)
{...}

參數

[in] MiniportDeviceContext

與顯示配接器相關聯的內容區塊句柄。 顯示迷你埠驅動程式的 DxgkDdiAddDevice 函式先前已將此句柄提供給 DirectX 圖形核心子系統。

[in] MessageNumber

如果中斷已發出 訊息訊號,則訊息訊號中斷 (MSI) 數據表中以零起始的索引。 針對以行為基礎的中斷,此參數為零。

傳回值

如果 DxgkDdiInterruptRoutine 判斷 MiniportDeviceContext 所代表的配接器不會產生中斷,則會傳回 FALSE。 否則,它必須先關閉適配卡上的中斷,才能傳回 TRUE。

備註

如果中斷是以線條為基礎的 (MessageNumber = 0 ) ,DxgkDdiInterruptRoutine 必須判斷 MiniportDeviceContext 所代表的配接器是否會產生中斷,否則會立即傳回 FALSE。

如果 MiniportDeviceContext 所代表的配接器確實產生中斷, 則 DxgkDdiInterruptRoutine 應該執行下列步驟:

  • 關閉配卡上的中斷。
  • 完成造成中斷的要求作業,或將稍後完成作業的 DPC 排入佇列。
  • 儘快傳回 TRUE。

例如,與 Dxgk) DdiInterruptRoutine 共用記憶體 (的任何其他顯示迷你埠驅動程式函式,都必須呼叫 DxgkCbSynchronizeExecution,以同步處理其對共用記憶體的存取。

DxgkDdiInterruptRoutine 函式可以呼叫 DxgkCbQueueDpcDxgkCbNotifyInterrupt,但不能呼叫任何其他 DxgkCbXxx 函式。 如需正確順序函數調用的詳細資訊,請參閱 提交命令緩衝區

DxgkDdiInterruptRoutine 會在提升許可權的 IRQL 上執行,因此它會 (,而且它呼叫) 的所有函式都必須是不可分頁的。 此外, DxgkDdiInterruptRoutine (,而且它呼叫的所有函式) 不得嘗試存取可分頁的記憶體。

規格需求

需求
最低支援的用戶端 Windows Vista
目標平台 桌面
標頭 dispmprt.h
IRQL 請參閱一節。

另請參閱

DxgkCbNotifyInterrupt

DxgkCbQueueDpc

DxgkCbSynchronizeExecution