DXGKDDI_QUERYDEPENDENTENGINEGROUP función de devolución de llamada (d3dkmddi.h)

el programador de GPU del controlador de puerto de visualización llama a DXGKDDI_QUERYDEPENDENTENGINEGROUP para consultar las dependencias de los nodos en un adaptador de pantalla físico.

Sintaxis

DXGKDDI_QUERYDEPENDENTENGINEGROUP DxgkddiQuerydependentenginegroup;

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

Parámetros

hAdapter

Identificador de un bloque de contexto asociado a un adaptador de pantalla. El controlador de miniporte de pantalla proporcionó anteriormente este identificador al subsistema del kernel de gráficos de DirectX en el parámetro de salida MiniportDeviceContext de la función DxgkDdiAddDevice .

pQueryDependentEngineGroup

Valor de tipo DXGKARG_QUERYDEPENDENTENGINEGROUP que especifica todos los nodos afectados por la operación de restablecimiento.

Valor devuelto

Devuelve STATUS_SUCCESS si se realiza correctamente. De lo contrario, devuelve uno de los códigos de error definidos en Ntstatus.h.

Comentarios

Esta función se usa para describir todos los adaptadores físicos (motores) afectados por una solicitud de restablecimiento del motor. Ayuda a mejorar la experiencia del usuario en las arquitecturas de hardware que tienen dependencias entre varios motores que pueden afectar al proceso de restablecimiento. Tenga en cuenta que todos los nodos afectados deben tener el mismo valor de afinidad del motor. (Consulte la discusión de afinidad del motor en cambios de TDR en Windows 8).

El programador de GPU del controlador de puerto de visualización llama a DxgkDdiQueryDependentEngineGroup cada vez que llama a la función DxgkDdiResetEngine . El programador de GPU espera 500 milisegundos para que el controlador de miniporte de pantalla complete el adelantamiento de todos los motores dependientes. Para los motores para los que el controlador no puede completar un adelantamiento, el programador de GPU llama a la función DxgkDdiResetEngine de forma secuencial basada en el valor ordinal del motor.

Este es un ejemplo de cómo calcular la máscara de bits en el DXGKARG_QUERYDEPENDENTENGINEGROUP. Miembro DependentNodeOrdinalMask . Si los valores originales de los miembros NodeOrdinal y EngineOrdinal de la estructura DXGKARG_QUERYDEPENDENTENGINEGROUP son 1 y 0, respectivamente, y los nodos adicionales con identificadores 2 y 4 también se restablecerán cuando se restablezca el nodo 1, el controlador debe establecer el valor binario de DependentNodeOrdinalMask en 10110 o 0x16 en notación hexadecimal. Se supone que el valor de índice EngineOrdinal es idéntico para todos los nodos dependientes. El nodo que se restablece se incluye en la máscara de bits DependentNodeOrdinalMask .

Esta función debe ser paginable y siempre debe realizarse correctamente.

El sistema operativo garantiza que esta función sigue el modo de sincronización de primer nivel tal y como se define en Subprocesos y Primer nivel de sincronización.

Para obtener más información, consulte Cambios de TDR en Windows 8.

Requisitos

Requisito Value
Cliente mínimo compatible Windows 8
Servidor mínimo compatible Windows Server 2012
Plataforma de destino Escritorio
Encabezado d3dkmddi.h
IRQL PASSIVE_LEVEL

Consulte también

DXGKARG_CREATECONTEXT

DXGKARG_QUERYDEPENDENTENGINEGROUP

DXGK_DRIVERCAPS

DxgkDdiAddDevice

DxgkDdiResetEngine