DXGKCB_QUERY_SERVICES função de retorno de chamada (dispmprt.h)
A função DxgkCbQueryServices retorna uma interface implementada pelo driver de porta de exibição.
Sintaxe
DXGKCB_QUERY_SERVICES DxgkcbQueryServices;
NTSTATUS DxgkcbQueryServices(
[in] HANDLE DeviceHandle,
[in] DXGK_SERVICES ServicesType,
[in, out] PINTERFACE Interface
)
{...}
Parâmetros
[in] DeviceHandle
Um identificador que representa um adaptador de exibição. O driver de miniporto de exibição obteve anteriormente esse identificador no membro DeviceHandle da estrutura DXGKRNL_INTERFACE que foi passada para DxgkDdiStartDevice.
[in] ServicesType
Uma constante da enumeração DXGK_SERVICES que especifica qual interface está sendo solicitada.
[in, out] Interface
Um ponteiro para uma estrutura interface que recebe a interface solicitada.
Retornar valor
DxgkCbQueryServices retornará STATUS_SUCCESS se for bem-sucedido. Caso contrário, ele retornará um dos códigos de erro definidos em Ntstatus.h.
Comentários
Uma interface, nesse contexto, é um conjunto de funções implementadas pelo driver de porta de exibição. O driver de porta de exibição disponibiliza as funções de uma interface para outros drivers fornecendo ponteiros de função em resposta a DxgkCbQueryServices.
Obtendo a interface AGP
Para obter uma interface AGP (Porta Gráfica Acelerada), faça o seguinte:
Alocar uma estrutura de DXGK_AGP_INTERFACE .
Defina o membro Size como sizeof(DXGK_AGP_INTERFACE).
Defina o membro Version . As constantes de versão são definidas em Dispmprt.h (por exemplo, DXGK_AGP_INTERFACE_VERSION_1).
Chame DxgkCbQueryServices; defina ServicesType como DxgkServicesAgp e defina Interface como o endereço (convertido como PINTERFACE) de sua estrutura DXGK_AGP_INTERFACE .
No retorno de DxgkCbQueryServices, sua estrutura de DXGK_AGP_INTERFACE conterá ponteiros para as funções de interface do AGP; por exemplo, AgpAllocatePool.
Obtendo a interface de Relatório de Depuração
Para obter uma interface de Relatório de Depuração, faça o seguinte:
Alocar uma estrutura de DXGK_DEBUG_REPORT_INTERFACE .
Defina o membro Size como sizeof(DXGK_DEBUG_REPORT_INTERFACE).
Defina o membro Version . As constantes de versão são definidas em Dispmprt.h (por exemplo, DXGK_DEBUG_REPORT_INTERFACE_VERSION_1).
Chame DxgkCbQueryServices; defina ServicesType como DxgkServicesDebugReport e defina Interface como o endereço (convertido como PINTERFACE) de sua estrutura de DXGK_DEBUG_REPORT_INTERFACE .
No retorno de DxgkCbQueryServices, sua estrutura de DXGK_DEBUG_REPORT_INTERFACE conterá ponteiros para as funções de interface de Relatório de Depuração; por exemplo, DbgReportCreate.
Obtendo a interface de operação cronometrada
Para obter uma interface de Operação Cronometrada, faça o seguinte:
Alocar uma estrutura de DXGK_TIMED_OPERATION_INTERFACE .
Defina o membro Size como sizeof(DXGK_TIMED_OPERATION_INTERFACE).
Defina o membro Version . As constantes de versão são definidas em Dispmprt.h (por exemplo, DXGK_TIMED_OPERATION_INTERFACE_VERSION_1).
Chame DxgkCbQueryServices; defina ServicesType como DxgkServicesTimedOperation e defina Interface como o endereço (convertido como PINTERFACE) de sua estrutura DXGK_TIMED_OPERATION_INTERFACE .
No retorno de DxgkCbQueryServices, sua estrutura de DXGK_TIMED_OPERATION_INTERFACE conterá ponteiros para as funções de interface operação cronometrada; por exemplo, TimedOperationStart.
Obtendo as interfaces SPB e System Firmware Table
As interfaces SPB (Barramento Periférico Simples) e Tabela de Firmware do Sistema podem ser obtidas da mesma forma seguindo as etapas acima usando o ServicesType e a estrutura apropriados.
Requisitos
Requisito | Valor |
---|---|
Cliente mínimo com suporte | Windows Vista |
Plataforma de Destino | Área de Trabalho |
Cabeçalho | dispmprt.h (inclua Dispmprt.h) |
IRQL | PASSIVE_LEVEL |