Compartilhar via


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

dxgkrnl's GPU scheduler calls DxgkddiQuerydependentenginegroup 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

[in] 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 de kernel de elementos gráficos DirectX na função MiniportDeviceContext da função DxgkDdiAddDevice.

pQueryDependentEngineGroup

[entrada/saída] Uma estrutura DXGKARG_QUERYDEPENDENTENGINEGROUP na qual o KMD especifica todos os nós afetados pela operação de redefinição.

Valor de retorno

DxgkddiQuerydependentenginegroup deve retornar STATUS_SUCCESS.

Observações

agendador de GPU do Dxgkrnlchama essa função para obter uma descrição de todos os adaptadores físicos (mecanismos) que serão afetados por uma solicitação de redefinição de 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 no alterações de TDR no Windows 8.)

O agendador de GPU chama DxgkDdiQueryDependentEngineGroup sempre que chama 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 quaisquer mecanismos que o driver não possa concluir uma preempção, o agendador de GPU chama o DxgkDdiResetEngine função 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 do DXGKARG_QUERYDEPENDENTENGINEGROUP 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 deve definir DependentNodeOrdinalMask como 10110 ou 0x16 na notação hexadecimal. O valor do í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 em de Primeiro Nível de Threading e Sincronização.

Para obter mais informações, consulte alterações de TDR no Windows 8.

Requisitos

Requisito Valor
de cliente com suporte mínimo Windows 8
servidor com suporte mínimo Windows Server 2012
da Plataforma de Destino Área de trabalho
cabeçalho d3dkmddi.h
IRQL PASSIVE_LEVEL

Consulte também

DXGKARG_CREATECONTEXT

DXGKARG_QUERYDEPENDENTENGINEGROUP

DXGK_DRIVERCAPS

DxgkDdiAddDevice

DxgkDdiResetEngine