Compartilhar via


DXGKDDI_QUERYDEPENDENTENGINEGROUP função de retorno de chamada (d3dkmddi.h)

DXGKDDI_QUERYDEPENDENTENGINEGROUP é chamado pelo agendador de GPU do driver de porta de exibição para consultar dependências de nós em um adaptador de exibição físico.

Sintaxe

DXGKDDI_QUERYDEPENDENTENGINEGROUP DxgkddiQuerydependentenginegroup;

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

Parâmetros

hAdapter

Um identificador para um bloco de contexto associado a um adaptador de exibição. O driver de miniporto de exibição forneceu anteriormente esse identificador para o subsistema kernel de elementos gráficos DirectX no parâmetro de saída MiniportDeviceContext da função DxgkDdiAddDevice .

pQueryDependentEngineGroup

Um valor do tipo DXGKARG_QUERYDEPENDENTENGINEGROUP que especifica todos os nós afetados pela operação de redefinição.

Retornar valor

Retorna STATUS_SUCCESS se for bem-sucedido. Caso contrário, ele retornará um dos códigos de erro definidos em Ntstatus.h.

Comentários

Essa função é usada para descrever todos os adaptadores físicos (mecanismos) afetados por uma solicitação de redefinição do mecanismo. Ele ajuda a melhorar a experiência do usuário em arquiteturas de hardware que têm dependências entre vários mecanismos que podem afetar o processo de redefinição. Observe que todos os nós afetados devem ter o mesmo valor de afinidade do mecanismo. (Consulte a discussão de afinidade do mecanismo em alterações de TDR no Windows 8.)

O agendador de GPU do driver de porta de exibição chama DxgkDdiQueryDependentEngineGroup sempre que chama a função DxgkDdiResetEngine . O agendador de GPU aguarda 500 milissegundos para que o driver de miniporto de exibição conclua a preempção de todos os mecanismos dependentes. Para os mecanismos para os quais o driver não pode concluir uma preempção, o agendador de GPU chama a função DxgkDdiResetEngine sequencialmente com base no valor ordinal do mecanismo.

Aqui está um exemplo de como calcular a máscara de bits no DXGKARG_QUERYDEPENDENTENGINEGROUP. Membro DependentNodeOrdinalMask . Se os valores originais dos membros NodeOrdinal e EngineOrdinal da estrutura DXGKARG_QUERYDEPENDENTENGINEGROUP forem 1 e 0, respectivamente, e nós adicionais com identificadores 2 e 4 também serão redefinidos quando o nó 1 for redefinido, o driver deverá definir o valor binário de DependentNodeOrdinalMask como 10110 ou 0x16 na notação hexadecimal. O valor de índice EngineOrdinal é considerado idêntico para todos os nós dependentes. O nó que está sendo redefinido está incluído na máscara de bits DependentNodeOrdinalMask .

Essa função deve ser tornada paginável e sempre deve ser bem-sucedida.

O sistema operacional garante que essa função siga o modo de sincronização de primeiro nível, conforme definido no Primeiro Nível de Threading e Sincronização.

Para obter mais informações, consulte Alterações de TDR em Windows 8.

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows 8
Servidor mínimo com suporte Windows Server 2012
Plataforma de Destino Área de Trabalho
Cabeçalho d3dkmddi.h
IRQL PASSIVE_LEVEL

Confira também

DXGKARG_CREATECONTEXT

DXGKARG_QUERYDEPENDENTENGINEGROUP

DXGK_DRIVERCAPS

DxgkDdiAddDevice

DxgkDdiResetEngine