DXGKCB_EXCLUDE_ADAPTER_ACCESS funzione di callback (dispmprt.h)

La funzione DxgkCbExcludeAdapterAccess impedisce tutto l'accesso alla scheda di visualizzazione e chiama una routine di callback DxgkProtectedCallback fornita in questo stato protetto.

Sintassi

DXGKCB_EXCLUDE_ADAPTER_ACCESS DxgkcbExcludeAdapterAccess;

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

Parametri

[in] DeviceHandle

Handle che rappresenta una scheda di visualizzazione. Il driver miniport di visualizzazione ha ottenuto questo handle nel membro DeviceHandle della struttura DXGKRNL_INTERFACE passata a DxgkDdiStartDevice.

[in] Attributes

Valore che specifica le operazioni di memoria video. Questo parametro può essere qualsiasi combinazione dei valori del flag di bit seguenti, ad eccezione del fatto che DXGK_EXCLUDE_EVICT_ALL e DXGK_EXCLUDE_CALL_SYNCHRONOUS si escludono a vicenda. Questi valori sono definiti in Dispmprt.h.

DXGK_EXCLUDE_EVICT_ALL

Tutta la memoria video nella scheda viene copiata nella memoria di sistema; si tratta di un'operazione costosa. Se il parametro Attributes non è impostato su questo valore, l'accesso alle superfici bloccate nella memoria di sistema viene sospeso.

DXGK_EXCLUDE_CALL_SYNCHRONOUS

Esegue la routine di callback del driver DxgkProtectedCallback protetta nello stesso contesto del thread del chiamante. Il chiamante deve chiamare da una chiamata DDI sincronizzata di secondo livello o di terzo livello . In caso contrario, la funzione DxgkCbExcludeAdapterAccess avrà esito negativo.

DXGK_EXCLUDE_BRIDGE_ACCESS

Protegge l'accesso alla porta radice PCI Express (PCIe) quando il driver deve accedere allo spazio di configurazione della porta radice. Impostare il parametro Attributes su questo valore prima di chiamare le funzioni DxgkCbReadDeviceSpace o DxgkCbWriteDeviceSpace con il parametro DataType impostato su DXGK_WHICHSPACE_BRIDGE.

[in] DxgkProtectedCallback

Routine di callback da richiamare quando tutto l'accesso all'adattatore è stato interrotto.

[in] ProtectedCallbackContext

Puntatore al valore da passare al parametro ProtectedCallbackContext della routine di callback DxgkProtectedCallback .

Valore restituito

DxgkCbExcludeAdapterAccess restituisce STATUS_SUCCESS se ha esito positivo. In caso contrario, restituisce uno dei codici di errore definiti in Ntstatus.h.

Commenti

Le richieste dell'applicazione verranno bloccate fino a quando questa funzione non viene restituita. In questo stato protettivo, la routine di callback DxgkProtectedCallback fornita viene chiamata in IRQL = PASSIVE_LEVEL.

DxgkCbExcludeAdapterAccess acquisisce l'accesso esclusivo alle schede per impedire operazioni di I/O correlate alla grafica alla scheda di visualizzazione e a tutti i collegamenti. In questo modo la GPU viene inattiva per l'intera durata della chiamata.

Questa funzione impedisce inoltre l'accesso a tutti gli spazi di configurazione PCI alla porta radice PCI Express (PCIe) se DXGK_EXCLUDE_BRIDGE_ACCESS è specificato nel parametro Attributes .

Il driver non deve bloccare l'esecuzione continua del thread chiamante attendendo la restituzione della routine di callback DxgkProtectedCallback . Ad esempio, il driver potrebbe pianificare un thread di lavoro asincrono per gestire la routine di callback.

Un'eccezione a questo blocco delle richieste dell'applicazione si verifica quando il driver di visualizzazione in modalità utente ha impostato il flag di campo bit UseAlternateVA nel membro Flags della struttura D3DDDICB_LOCKFLAGS in una chiamata alla funzione pfnLockCb . DxgkCbExcludeAdapterAccess non blocca questo tipo di blocco di allocazione e la CPU può accedere alla scheda di visualizzazione durante l'esecuzione della routine di callback protetta.

Nota Se UseAlternateVA è stato impostato in una chiamata a pfnLockCb, il driver miniport di visualizzazione non deve chiamare DxgkCbExcludeAdapterAccess.
 

Requisiti

Requisito Valore
Client minimo supportato Disponibile in Windows Vista e versioni successive dei sistemi operativi Windows.
Piattaforma di destinazione Desktop
Intestazione dispmprt.h (include Dispmprt.h)
IRQL PASSIVE_LEVEL

Vedi anche

DxgkProtectedCallback