共用方式為


DXGKCB_EXCLUDE_ADAPTER_ACCESS回呼函式 (dispmprt.h)

DxgkCbExcludeAdapterAccess 函式會防止所有存取顯示適配卡,並在處於此受保護狀態時呼叫提供的 DxgkProtectedCallback 回呼例程。

語法

DXGKCB_EXCLUDE_ADAPTER_ACCESS DxgkcbExcludeAdapterAccess;

NTSTATUS DxgkcbExcludeAdapterAccess(
  [in] HANDLE DeviceHandle,
  [in] ULONG Attributes,
  [in] DXGKDDI_PROTECTED_CALLBACK DxgkProtectedCallback,
  [in] PVOID ProtectedCallbackContext
)
{...}

參數

[in] DeviceHandle

表示顯示配接器的句柄。 顯示迷你埠驅動程式在傳遞至 DxgkDdiStartDeviceDXGKRNL_INTERFACE 結構的 DeviceHandle 成員中取得此句柄。

[in] Attributes

指定視訊記憶體作業的 值。 此參數可以是下列位旗標值的任何組合,但DXGK_EXCLUDE_EVICT_ALL和DXGK_EXCLUDE_CALL_SYNCHRONOUS互斥。 這些值定義於 Dispmprt.h 中。

DXGK_EXCLUDE_EVICT_ALL

配接器中的所有視訊記憶體都會複製到系統記憶體;這是昂貴的作業。 如果未將 Attributes 參數設定為此值,系統記憶體中鎖定表面的存取權就會暫停。

DXGK_EXCLUDE_CALL_SYNCHRONOUS

在與呼叫端相同的線程內容中,執行受保護的 DxgkProtectedCallback 驅動程式回呼例程。 呼叫端必須從 第二層第三層 同步處理 DDI 呼叫。 否則 DxgkCbExcludeAdapterAccess 函式將會失敗。

DXGK_EXCLUDE_BRIDGE_ACCESS

當驅動程式需要存取根埠設定空間時,保護PCI Express (PCIe) 根埠的存取權。 呼叫 DxgkCbReadDeviceSpaceDxgkCbWriteDeviceSpace 函式,並將 DataType 參數設定為 DXGK_WHICHSPACE_BRIDGE 之前,請先將 Attributes 參數設定為此值。

[in] DxgkProtectedCallback

當配接器的所有存取已停止時,要回呼的回呼例程。

[in] ProtectedCallbackContext

要傳遞至 DxgkProtectedCallback 回呼例程之 ProtectedCallbackContext 參數之值的指標。

傳回值

DxgkCbExcludeAdapterAccess 如果成功,則會傳回STATUS_SUCCESS。 否則,它會傳回 Ntstatus.h 中定義的其中一個錯誤碼。

備註

應用程式要求將會遭到封鎖,直到此函式傳回為止。 在這個保護狀態下,在 IRQL = PASSIVE_LEVEL呼叫提供的 DxgkProtectedCallback 回 呼例程。

DxgkCbExcludeAdapterAccess 會取得獨佔適配卡存取權,以防止圖形相關的 I/O 作業顯示適配卡和所有連結。 這實際上會將 GPU 閑置在呼叫的整個持續時間內。

如果 Attributes 參數中指定了 DXGK_EXCLUDE_BRIDGE_ACCESS,此函式也會防止對 PCI Express (PCIe 的所有 PCI 組態空間存取) 根埠。

驅動程式不應該等候 DxgkProtectedCallback 回 呼例程傳回,來封鎖呼叫線程的繼續執行。 例如,驅動程式可以排程異步背景工作線程來處理回呼例程。

當使用者模式顯示驅動程式在呼叫 pfnLockCb 函式中,於 D3DDDICB_LOCKFLAGS 結構的 Flags 成員中設定 UseAlternateVA 位欄位旗標時,就會發生此應用程式要求的封鎖例外狀況。 DxgkCbExcludeAdapterAccess 不會封鎖這種類型的配置鎖定,而且 CPU 可以在受保護的回呼例程執行時存取顯示適配卡。

注意如果在 pfnLockCb 的呼叫中設定 UseAlternateVA,則顯示迷你埠驅動程式不應該呼叫 DxgkCbExcludeAdapterAccess
 

規格需求

需求
最低支援的用戶端 Windows Vista
目標平台 桌面
標頭 dispmprt.h (包括 Dispmprt.h)
IRQL PASSIVE_LEVEL

另請參閱

DxgkProtectedCallback