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
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 |