Partager via


DXGKDDI_START_DEVICE fonction de rappel (dispmprt.h)

La fonction DxgkDdiStartDevice prépare une carte d’affichage pour recevoir des demandes d’E/S.

Syntaxe

DXGKDDI_START_DEVICE DxgkddiStartDevice;

NTSTATUS DxgkddiStartDevice(
  [in]  IN_CONST_PVOID MiniportDeviceContext,
  [in]  IN_PDXGK_START_INFO DxgkStartInfo,
  [in]  IN_PDXGKRNL_INTERFACE DxgkInterface,
  [out] OUT_PULONG NumberOfVideoPresentSources,
  [out] OUT_PULONG NumberOfChildren
)
{...}

Paramètres

[in] MiniportDeviceContext

Handle d’un bloc de contexte associé à une carte d’affichage. La fonction DxgkDdiAddDevice du pilote miniport d’affichage fournissait précédemment cette poignée au sous-système du noyau graphique DirectX.

[in] DxgkStartInfo

Pointeur vers une structure de DXGK_START_INFO qui contient les informations dont le pilote de miniport d’affichage a besoin pour l’initialisation.

[in] DxgkInterface

Pointeur vers une structure DXGKRNL_INTERFACE qui contient des pointeurs vers des fonctions, implémentées par le sous-système du noyau graphique DirectX, que le pilote de miniport d’affichage peut appeler.

[out] NumberOfVideoPresentSources

Pointeur vers une variable ULONG qui reçoit le nombre de sources vidéo présentes prises en charge par l’adaptateur d’affichage. Pour plus d’informations sur les sources de présentation vidéo, consultez Multiple Monitors et Video Present Networks.

[out] NumberOfChildren

Pointeur vers une variable ULONG qui reçoit le nombre total d’appareils enfants de l’adaptateur d’affichage représenté par MiniportDeviceContext. Ce nombre doit inclure les appareils enfants potentiels ainsi que les appareils enfants actuellement présents. Par exemple, si l’ancrage d’un ordinateur portable rend des sorties vidéo supplémentaires disponibles, ces sorties vidéo doivent être comptabilisées, que l’ordinateur portable soit actuellement ancré ou non. Pour plus d’informations sur les appareils enfants, consultez Appareils enfants de l’adaptateur d’affichage.

Valeur retournée

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

Remarques

La fonction DxgkDdiStartDevice doit effectuer les actions suivantes :

  • Enregistrez les pointeurs de fonction fournis par la structure DXGKRNL_INTERFACE passée au paramètre DxgkInterface . Enregistrez également le membre DeviceHandle de la structure DXGKRNL_INTERFACE ; vous aurez besoin de ce handle pour rappeler le sous-système du noyau graphique DirectX.
  • Allouez une structure DXGK_DEVICE_INFO et appelez DxgkCbGetDeviceInformation pour renseigner les membres de cette structure, qui incluent le chemin d’accès du Registre, le PDO et une liste de ressources traduites pour l’adaptateur d’affichage représenté par MiniportDeviceContext. Enregistrez les membres sélectionnés (dont le pilote de miniport d’affichage aura besoin ultérieurement) de la structure DXGK_DEVICE_INFO dans le bloc de contexte représenté par MiniportDeviceContext.
  • Mapper les ressources de mémoire dans l’espace système en appelant la fonction DxgkCbMapMemory .
  • Initialisez le bloc de contexte représenté par MiniportDeviceContext avec n’importe quel état requis pour préparer le matériel à recevoir des demandes d’E/S.
  • Définissez NumberOfVideoPresentSources sur le nombre de sources vidéo présentes prises en charge par l’adaptateur d’affichage qui est représenté par MiniportDeviceContext.
  • Définissez NumberOfChildren sur le nombre d’appareils qui sont (ou pourraient devenir) enfants de l’adaptateur d’affichage représenté par MiniportDeviceContext.
  • Activez les interruptions pour l’adaptateur d’affichage représenté par MiniportDeviceContext.
À compter de Windows Display Driver Model (WDDM) 1.2, le pilote miniport d’affichage appelle la fonction DxgkCbAcquirePostDisplayOwnership pour obtenir les informations sur le mode d’affichage précédemment défini par le microprogramme et le chargeur système. Si DxgkCbAcquirePostDisplayOwnership retourne avec STATUS_SUCCESS, le pilote détermine s’il doit réinitialiser l’affichage en fonction des informations de mode d’affichage retournées via le paramètre DisplayInfo . Sinon, le pilote ne doit pas supposer qu’un mode d’affichage spécifique est actuellement activé sur l’appareil, et il doit initialiser l’affichage.

La fonction DxgkDdiStartDevice doit être paginable.

Configuration requise

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

Voir aussi

DXGKRNL_INTERFACE

DXGK_DEVICE_INFO

DxgkCbAcquirePostDisplayOwnership

DxgkCbGetDeviceInformation

DxgkCbMapMemory

DxgkDdiAddDevice

DxgkDdiStopDevice