DXGKCB_QUERY_SERVICES fonction de rappel (dispmprt.h)

La fonction DxgkCbQueryServices retourne une interface implémentée par le pilote de port d’affichage.

Syntaxe

DXGKCB_QUERY_SERVICES DxgkcbQueryServices;

NTSTATUS DxgkcbQueryServices(
  [in]      HANDLE DeviceHandle,
  [in]      DXGK_SERVICES ServicesType,
  [in, out] PINTERFACE Interface
)
{...}

Paramètres

[in] DeviceHandle

Handle qui représente une carte d’affichage. Le pilote miniport d’affichage a précédemment obtenu cette poignée dans le membre DeviceHandle de la structure DXGKRNL_INTERFACE qui a été passée à DxgkDdiStartDevice.

[in] ServicesType

Constante de l’énumération DXGK_SERVICES qui spécifie l’interface demandée.

[in, out] Interface

Pointeur vers une structure INTERFACE qui reçoit l’interface demandée.

Valeur retournée

DxgkCbQueryServices retourne STATUS_SUCCESS si elle réussit. Sinon, il retourne l’un des codes d’erreur définis dans Ntstatus.h.

Remarques

Dans ce contexte, une interface est un ensemble de fonctions implémentées par le pilote de port d’affichage. Le pilote de port d’affichage met les fonctions d’une interface à la disposition d’autres pilotes en fournissant des pointeurs de fonction en réponse à DxgkCbQueryServices.

Obtention de l’interface AGP

Pour obtenir une interface AGP (Accelerated Graphics Port), procédez comme suit :

  1. Allouez une structure DXGK_AGP_INTERFACE .

  2. Définissez le membre Size sur sizeof(DXGK_AGP_INTERFACE).

  3. Définissez le membre Version . Les constantes de version sont définies dans Dispmprt.h (par exemple, DXGK_AGP_INTERFACE_VERSION_1).

  4. Appelez DxgkCbQueryServices ; définissez ServicesType sur DxgkServicesAgp et définissez Interface sur l’adresse (cast en tant que PINTERFACE) de votre structure de DXGK_AGP_INTERFACE .

  5. Au retour de DxgkCbQueryServices, votre structure DXGK_AGP_INTERFACE contiendra des pointeurs vers les fonctions d’interface AGP ; par exemple, AgpAllocatePool.

Obtention de l’interface Rapport de débogage

Pour obtenir une interface de rapport de débogage, procédez comme suit :

  1. Allouez une structure DXGK_DEBUG_REPORT_INTERFACE .

  2. Définissez le membre Size sur sizeof(DXGK_DEBUG_REPORT_INTERFACE).

  3. Définissez le membre Version . Les constantes de version sont définies dans Dispmprt.h (par exemple, DXGK_DEBUG_REPORT_INTERFACE_VERSION_1).

  4. Appelez DxgkCbQueryServices ; définissez ServicesType sur DxgkServicesDebugReport et définissez Interface sur l’adresse (cast en tant que PINTERFACE) de votre structure DXGK_DEBUG_REPORT_INTERFACE .

  5. Au retour de DxgkCbQueryServices, votre structure DXGK_DEBUG_REPORT_INTERFACE contiendra des pointeurs vers les fonctions d’interface Rapport de débogage ; par exemple, DbgReportCreate.

Obtention de l’interface d’opération chronopliquée

Pour obtenir une interface d’opération chronoté, procédez comme suit :

  1. Allouez une structure de DXGK_TIMED_OPERATION_INTERFACE .

  2. Définissez le membre Size sur sizeof(DXGK_TIMED_OPERATION_INTERFACE).

  3. Définissez le membre Version . Les constantes de version sont définies dans Dispmprt.h (par exemple, DXGK_TIMED_OPERATION_INTERFACE_VERSION_1).

  4. Appelez DxgkCbQueryServices ; définissez ServicesType sur DxgkServicesTimedOperation et définissez Interface sur l’adresse (cast en tant que PINTERFACE) de votre structure DXGK_TIMED_OPERATION_INTERFACE .

  5. Au retour de DxgkCbQueryServices, votre structure DXGK_TIMED_OPERATION_INTERFACE contiendra des pointeurs vers les fonctions d’interface Timed Operation ; par exemple, TimedOperationStart.

Obtention des interfaces SPB et table de microprogramme système

Les interfaces SPB (Simple Peripheral Bus) et System Firmware Table peuvent être obtenues de la même façon en suivant les étapes ci-dessus à l’aide de la structure et du Type de services appropriés.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows Vista
Plateforme cible Desktop (Expérience utilisateur)
En-tête dispmprt.h (inclure Dispmprt.h)
IRQL PASSIVE_LEVEL

Voir aussi

DXGK_AGP_INTERFACE

DxgkDdiStartDevice

DXGK_DEBUG_REPORT_INTERFACE

DXGK_FIRMWARE_TABLE_INTERFACE

DXGK_SERVICES

DXGK_SPB_INTERFACE

DXGK_TIMED_OPERATION_INTERFACE

DXGKRNL_INTERFACE

INTERFACE