Condividi tramite


DXGKDDI_QUERYDEPENDENTENGINEGROUP funzione di callback (d3dkmddi.h)

Dxgkrnlchiamate dell'utilità di pianificazione GPU DxgkddiQuerydependentenginegroup per eseguire query sulle dipendenze dei nodi in una scheda di visualizzazione fisica.

Sintassi

DXGKDDI_QUERYDEPENDENTENGINEGROUP DxgkddiQuerydependentenginegroup;

NTSTATUS DxgkddiQuerydependentenginegroup(
  IN_CONST_HANDLE hAdapter,
  INOUT_DXGKARG_QUERYDEPENDENTENGINEGROUP pQueryDependentEngineGroup
)
{...}

Parametri

hAdapter

[in] 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 DirectX nel MiniportDeviceContext parametro di output della funzione DxgkDdiAddDevice.

pQueryDependentEngineGroup

[in/out] Struttura DXGKARG_QUERYDEPENDENTENGINEGROUP in cui kmD specifica tutti i nodi interessati dall'operazione di reimpostazione.

Valore restituito

DxgkddiQuerydependentenginegroup deve restituire STATUS_SUCCESS.

Osservazioni

Dxgkrnll'utilità di pianificazione GPU chiama questa funzione per ottenere una descrizione di tutte le schede fisiche (motori) interessate da una richiesta di reimpostazione del motore. Consente di migliorare l'esperienza utente sulle architetture hardware con dipendenze tra più motori che possono influire sul processo di reimpostazione. Si noti che tutti i nodi interessati devono avere lo stesso valore di affinità del motore. Vedere la discussione sull'affinità del motore in modifiche TDR in Windows 8.

L'utilità di pianificazione GPU chiama DxgkDdiQueryDependentEngineGroup ogni volta che chiama DxgkDdiResetEngine. L'utilità di pianificazione GPU attende 500 millisecondi affinché il driver miniport di visualizzazione completi la precedenza di tutti i motori dipendenti. Per tutti i motori che il driver non può completare una precedenza, l'utilità di pianificazione GPU chiama la funzione DxgkDdiResetEngine in sequenza in base al valore ordinale del motore.

Di seguito è riportato un esempio di come calcolare la maschera di bit nel DXGKARG_QUERYDEPENDENTENGINEGROUP.membro di DependentNodeOrdinalMask. Se i valori originali della struttura di DXGKARG_QUERYDEPENDENTENGINEGROUPNodeOrdinal e membri engineOrdinal sono rispettivamente 1 e 0 e nodi aggiuntivi con identificatori 2 e 4 verranno reimpostati quando viene reimpostato il nodo 1, il driver deve impostare DependentNodeOrdinalMask su 10110 o 0x16 nella notazione esadecimale. Si presuppone che il valore di indice EngineOrdinal sia identico per tutti i nodi dipendenti. Il nodo da reimpostare è incluso nella maschera di bit DependentNodeOrdinalMask.

Questa funzione deve essere resa paginabile e dovrebbe sempre avere esito positivo.

Il sistema operativo garantisce che questa funzione segua la modalità di sincronizzazione di primo livello come definito in Threading and Synchronization First Level.

Per altre informazioni, vedere modifiche TDR in Windows 8.

Fabbisogno

Requisito Valore
client minimo supportato Windows 8
server minimo supportato Windows Server 2012
piattaforma di destinazione Desktop
intestazione d3dkmddi.h
IRQL PASSIVE_LEVEL

Vedere anche

DXGKARG_CREATECONTEXT

DXGKARG_QUERYDEPENDENTENGINEGROUP

DXGK_DRIVERCAPS

DxgkDdiAddDevice

DxgkDdiResetEngine