Condividi tramite


DXGKDDI_PATCH funzione di callback (d3dkmddi.h)

La funzione DxgkDdiPatch assegna indirizzi fisici al buffer DMA (Direct Memory Access) specificato prima che il buffer DMA venga inviato all'hardware grafico.

Sintassi

DXGKDDI_PATCH DxgkddiPatch;

NTSTATUS DxgkddiPatch(
  [in] IN_CONST_HANDLE hAdapter,
  [in] IN_CONST_PDXGKARG_PATCH pPatch
)
{...}

Parametri

[in] hAdapter

Handle a un blocco di contesto associato a una scheda di visualizzazione. Il driver miniport visualizzato in precedenza ha fornito questo handle al sottosistema kernel della grafica Microsoft DirectX nel parametro di output MiniportDeviceContext della funzione DxgkDdiAddDevice .

[in] pPatch

Puntatore a una struttura DXGKARG_PATCH che descrive il buffer DMA da applicare a patch con indirizzi fisici.

Valore restituito

Restituisce STATUS_SUCCESS al completamento corretto. Se il driver restituisce invece un codice di errore, il sistema operativo causa la verifica di un bug di sistema. Per ulteriori informazioni, vedere la sezione Osservazioni successiva.

Commenti

La funzione DxgkDdiPatch deve assegnare indirizzi fisici al buffer DMA sul posto. Pertanto, quando il driver miniport visualizzato genera il buffer DMA, il driver deve assicurarsi che lo spazio sia disponibile nel buffer DMA per inserire istruzioni necessarie per gestire gli indirizzi fisici. Si noti che gli indirizzi fisici potrebbero corrispondere alla memoria video, alla memoria AGP/PCI Express o alla memoria di sistema.

Il driver deve esaminare l'elenco di patch-location fornito nel membro pPatchLocationList della struttura DXGKARG_PATCH a cui punta il parametro pPatch per identificare le posizioni nel buffer DMA che deve essere sottoposto a patch con indirizzi fisici. L'elenco di allocazioni fornito (specificato dal membro pAllocationList di DXGKARG_PATCH) contiene anche gli indirizzi fisici generati dalla gestione memoria video. La chiamata alla funzione DxgkDdiPatch del driver è l'ultima possibilità per il driver di modificare il contenuto del buffer DMA prima che il buffer DMA venga inviato all'unità di elaborazione grafica (GPU). Si noti che il driver può applicare una patch a un buffer DMA più volte negli scenari in cui il buffer DMA viene preceduto.

Il driver può applicare patch al valore fornito nel membro SubmissionFenceId di DXGKARG_PATCH nel comando di recinzione alla fine del buffer DMA. Per altre informazioni su questo membro, vedere Fornitura di identificatori di recinzione.

Se il driver restituisce un codice di errore, il sottosistema del kernel della grafica Microsoft DirectX causa la verifica di un bug di sistema. In un file di dump dell'arresto anomalo, l'errore viene notato dal messaggio BugCheck 0x119, con i quattro parametri seguenti.

  1. 0x3
  2. Puntatore a una struttura di dati dell'utilità di pianificazione interna
  3. Puntatore a una struttura di dati dell'utilità di pianificazione interna
  4. Puntatore a una struttura di dati dell'utilità di pianificazione interna
DxgkDdiPatch deve essere reso paginabile.

Requisiti

Requisito Valore
Client minimo supportato Windows Vista
Piattaforma di destinazione Desktop
Intestazione d3dkmddi.h
IRQL PASSIVE_LEVEL

Vedi anche

DXGKARG_PATCH

DxgkDdiAddDevice