Share via


DXGKDDI_QUERYDEPENDENTENGINEGROUP funzione di callback (d3dkmddi.h)

DXGKDDI_QUERYDEPENDENTENGINEGROUP viene chiamato dall'utilità di pianificazione GPU del driver della porta di visualizzazione 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

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

pQueryDependentEngineGroup

Valore di tipo DXGKARG_QUERYDEPENDENTENGINEGROUP che specifica tutti i nodi interessati dall'operazione di reimpostazione.

Valore restituito

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

Commenti

Questa funzione viene usata per descrivere tutti gli adattatori fisici (motori) interessati da una richiesta di reimpostazione del motore. Consente di migliorare l'esperienza utente nelle 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 nelle modifiche TDR in Windows 8.

L'utilità di pianificazione GPU del driver della porta di visualizzazione chiama DxgkDdiQueryDependentEngineGroup ogni volta che chiama la funzione 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 per cui il driver non può completare un preemption, l'utilità di pianificazione GPU chiama la funzione DxgkDdiResetEngine in sequenza in base al valore ordinale del motore.

Ecco un esempio di come calcolare la maschera di bit nel DXGKARG_QUERYDEPENDENTENGINEGROUP. Membro DependentNodeOrdinalMask . Se i valori originali dei membri NodeOrdinal e EngineOrdinaldella struttura DXGKARG_QUERYDEPENDENTENGINEGROUP sono rispettivamente 1 e 0 e nodi aggiuntivi con identificatori 2 e 4 verranno reimpostati anche quando viene reimpostato il nodo 1, il driver deve impostare il valore binario di DependentNodeOrdinalMask su 10110 o 0x16 in 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 pageable e deve sempre avere esito positivo.

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

Per altre informazioni, vedere Modifiche TDR in Windows 8.

Requisiti

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

Vedi anche

DXGKARG_CREATECONTEXT

DXGKARG_QUERYDEPENDENTENGINEGROUP

DXGK_DRIVERCAPS

DxgkDdiAddDevice

DxgkDdiResetEngine