DXGKCB_EXCLUDE_ADAPTER_ACCESS Rückruffunktion (dispmprt.h)

Die DxgkCbExcludeAdapterAccess-Funktion verhindert den gesamten Zugriff auf die Grafikkarte und ruft eine bereitgestellte DxgkProtectedCallback-Rückrufroutine auf, während sich dieser geschützte Zustand befindet.

Syntax

DXGKCB_EXCLUDE_ADAPTER_ACCESS DxgkcbExcludeAdapterAccess;

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

Parameter

[in] DeviceHandle

Ein Handle, das eine Grafikkarte darstellt. Der Anzeige-Miniporttreiber hat dieses Handle im DeviceHandle-Member der DXGKRNL_INTERFACE-Struktur abgerufen, die an DxgkDdiStartDevice übergeben wurde.

[in] Attributes

Ein -Wert, der Videospeichervorgänge angibt. Dieser Parameter kann eine beliebige Kombination der folgenden Bitflagswerte sein, mit der Ausnahme, dass sich DXGK_EXCLUDE_EVICT_ALL und DXGK_EXCLUDE_CALL_SYNCHRONOUS gegenseitig ausschließen. Diese Werte werden in Dispmprt.h definiert.

DXGK_EXCLUDE_EVICT_ALL

Der gesamte Videospeicher im Adapter wird in den Systemspeicher kopiert. Dies ist ein teurer Vorgang. Wenn der Attributes-Parameter nicht auf diesen Wert festgelegt ist, wird der Zugriff auf gesperrte Oberflächen im Systemspeicher angehalten.

DXGK_EXCLUDE_CALL_SYNCHRONOUS

Führt die geschützte DxgkProtectedCallback-Treiberrückrufroutine im selben Threadkontext wie der Aufrufer aus. Der Aufrufer muss von einem synchronisierten DDI-Aufruf der zweiten oderdritten Ebene aus aufrufen. Andernfalls schlägt die DxgkCbExcludeAdapterAccess-Funktion fehl.

DXGK_EXCLUDE_BRIDGE_ACCESS

Schützt den Zugriff auf den PCI Express-Stammport (PCIe), wenn der Treiber auf den Konfigurationsbereich des Stammports zugreifen muss. Legen Sie den Attributes-Parameter auf diesen Wert fest, bevor Sie die Funktionen DxgkCbReadDeviceSpace oder DxgkCbWriteDeviceSpace aufrufen, wobei der Parameter DataType auf DXGK_WHICHSPACE_BRIDGE festgelegt ist.

[in] DxgkProtectedCallback

Die Rückrufroutine, die zurückgerufen werden soll, wenn der gesamte Zugriff auf den Adapter angehalten wurde.

[in] ProtectedCallbackContext

Ein Zeiger auf den Wert, der an den ProtectedCallbackContext-Parameter der DxgkProtectedCallback-Rückrufroutine übergeben werden soll.

Rückgabewert

DxgkCbExcludeAdapterAccess gibt bei Erfolg STATUS_SUCCESS zurück. Andernfalls wird einer der in Ntstatus.h definierten Fehlercodes zurückgegeben.

Hinweise

Anwendungsanforderungen werden blockiert, bis diese Funktion zurückgegeben wird. In diesem Schutzzustand wird die bereitgestellte DxgkProtectedCallback-Rückrufroutine unter IRQL = PASSIVE_LEVEL aufgerufen.

DxgkCbExcludeAdapterAccess erhält exklusiven Adapterzugriff, um grafikbezogene E/A-Vorgänge für die Grafikkarte und alle Links zu verhindern. Dadurch wird die GPU während der gesamten Dauer des Aufrufs im Leerlauf ausgeführt.

Diese Funktion verhindert auch den zugriff des gesamten PCI-Konfigurationsraums auf den PCI Express (PCIe)-Stammport, wenn DXGK_EXCLUDE_BRIDGE_ACCESS im Attributes-Parameter angegeben ist.

Der Treiber sollte die fortgesetzte Ausführung des aufrufenden Threads nicht blockieren, indem er darauf wartet, dass die Rückrufroutine dxgkProtectedCallback zurückgegeben wird. Der Treiber könnte beispielsweise einen asynchronen Workerthread für die Verarbeitung der Rückrufroutine planen.

Eine Ausnahme von dieser Blockierung von Anwendungsanforderungen tritt auf, wenn der Anzeigetreiber für den Benutzermodus das Bitfeldflag UseAlternateVA im Flags-Member der D3DDDICB_LOCKFLAGS-Struktur in einem Aufruf der pfnLockCb-Funktion festgelegt hat. DxgkCbExcludeAdapterAccess blockiert diese Art von Zuordnungssperre nicht, und die CPU kann während der Ausführung der geschützten Rückrufroutine auf den Grafikkarte zugreifen.

Hinweis Wenn UseAlternateVA in einem Aufruf von pfnLockCb festgelegt wurde, sollte der Anzeigeminiporttreiber DxgkCbExcludeAdapterAccess nicht aufrufen.
 

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows Vista
Zielplattform Desktop
Kopfzeile dispmprt.h (include Dispmprt.h)
IRQL PASSIVE_LEVEL

Weitere Informationen

DxgkProtectedCallback