Partager via


DXGKDDI_ADD_DEVICE fonction de rappel (dispmprt.h)

La fonction DxgkDdiAddDevice crée un bloc de contexte pour une carte d’affichage et retourne un handle qui représente l’adaptateur d’affichage.

Syntaxe

DXGKDDI_ADD_DEVICE DxgkddiAddDevice;

NTSTATUS DxgkddiAddDevice(
  [in]  IN_CONST_PDEVICE_OBJECT PhysicalDeviceObject,
  [out] OUT_PPVOID MiniportDeviceContext
)
{...}

Paramètres

[in] PhysicalDeviceObject

Pointeur vers un objet d’appareil physique (PDO) qui identifie une carte d’affichage.

[out] MiniportDeviceContext

Pointeur vers une variable qui reçoit un handle, créé par le pilote miniport d’affichage, qui représentera l’adaptateur d’affichage identifié par PhysicalDeviceObject. Le pilote de miniport d’affichage peut retourner NULL dans ce paramètre pour indiquer qu’il ne prendra pas en charge l’adaptateur d’affichage identifié par PhysicalDeviceObject.

Valeur retournée

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

Remarques

La fonction DxgkDdiAddDevice alloue un bloc de contexte privé associé à l’adaptateur d’affichage identifié par PhysicalDeviceObject. Vous pouvez considérer le handle retourné dans MiniportDeviceContext comme un handle à l’adaptateur d’affichage ou comme un handle du bloc de contexte associé à l’adaptateur d’affichage. Le sous-système du noyau graphique DirectX (Dxgkrnl.sys) fournit le handle dans les appels suivants au pilote miniport d’affichage. La liste suivante fournit des exemples de divers composants de Dxgkrnl.sys passant la poignée aux fonctions implémentées par le pilote miniport d’affichage.

  • Le pilote de port d’affichage fournit le handle dans le paramètre MiniportDeviceContext de la fonction DxgkDdiStartDevice .

  • Le gestionnaire VidPN fournit le handle dans le paramètre hAdapter de la fonction DxgkDdiIsSupportedVidPn .

  • Le cœur graphique DirectX fournit le handle dans le paramètre hAdapter de la fonction DxgkDdiQueryAdapterInfo .

Ne soyez pas confondus par le fait que parfois le handle est nommé MiniportDeviceContext et parfois il est nommé hAdapter. En outre, ne confondez pas cette poignée avec le paramètre hDevice qui est passé à certaines fonctions de pilote miniport d’affichage.

DxgkDdiAddDevice est appelé pour un appareil à la fois en série. Son comportement est le même que le rappel standard DRIVER_ADD_DEVICE pour les pilotes en mode noyau WDM.

Certaines cartes d’adaptateur d’affichage ont au moins deux fonctions PCI qui jouent le rôle d’adaptateur d’affichage. Par exemple, certaines cartes plus anciennes implémentent plusieurs vues en ayant une fonction PCI distincte pour chaque vue. Le pilote de port d’affichage appelle DxgkDdiAddDevice une fois pour chacune de ces fonctions PCI, auquel moment le pilote miniport d’affichage peut indiquer qu’il prend en charge la fonction PCI (en définissant MiniportDeviceContext sur une valeur différente de zéro) ou qu’il ne prend pas en charge la fonction PCI (en définissant MiniportDeviceContext sur NULL). Pour obtenir des informations sur une fonction PCI particulière, le pilote miniport d’affichage peut passer PhysicalDeviceObject à IoGetDeviceProperty.

Dans DxgkDdiRemoveDevice, libérez votre bloc de contexte et toutes les autres ressources que vous allouez pendant DxgkDdiAddDevice.

La fonction DxgkDdiAddDevice doit être paginable.

Configuration requise

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

Voir aussi

DxgkDdiRemoveDevice

DxgkDdiStartDevice