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 di un blocco di contesto associato a una scheda di visualizzazione. Il driver miniport di visualizzazione precedentemente fornito questo handle al sottosistema kernel della grafica Microsoft DirectX nel MiniportDeviceContext parametro di output della funzione DxgkDdiAddDevice.

[in] pPatch

Puntatore a una struttura DXGKARG_PATCH che descrive il buffer DMA a cui applicare 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 un controllo errori del sistema. Per altre informazioni, vedere la sezione Osservazioni seguente.

Osservazioni

La funzione DxgkDdiPatch deve assegnare indirizzi fisici al buffer DMA. Pertanto, quando il driver miniport di visualizzazione 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 possono corrispondere alla memoria video, alla memoria AGP/PCI Express o alla memoria di sistema.

Il driver deve esaminare l'elenco di percorsi patch fornito nel pPatchLocationList membro della struttura DXGKARG_PATCH a cui punta il parametro pPatch per identificare le posizioni nel buffer DMA che devono essere applicate patch con indirizzi fisici. L'elenco di allocazioni fornito (specificato dal membro pAllocationList di DXGKARG_PATCH) contiene anche gli indirizzi fisici generati dalla gestione della 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 più volte patch a un buffer DMA negli scenari in cui viene superato il buffer DMA.

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

Se il driver restituisce un codice di errore, il sottosistema kernel della grafica Microsoft DirectX causa la verifica di un bug di sistema. In un file di dump di arresto anomalo del sistema, l'errore viene indicato 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 impaginabile.

Fabbisogno

Requisito Valore
client minimo supportato Windows Vista
piattaforma di destinazione Desktop
intestazione d3dkmddi.h
IRQL PASSIVE_LEVEL

Vedere anche

DXGKARG_PATCH

DxgkDdiAddDevice