Partager via


DXGKDDI_VIDPN_ASSIGNTARGETMODESET fonction de rappel (d3dkmddi.h)

La fonction pfnAssignTargetModeSet affecte un mode cible défini à une cible particulière dans un VidPN spécifié.

Syntaxe

DXGKDDI_VIDPN_ASSIGNTARGETMODESET DxgkddiVidpnAssigntargetmodeset;

NTSTATUS DxgkddiVidpnAssigntargetmodeset(
  [in] IN_D3DKMDT_HVIDPN hVidPn,
  [in] IN_CONST_D3DDDI_VIDEO_PRESENT_TARGET_ID VidPnTargetId,
  [in] IN_CONST_D3DKMDT_HVIDPNTARGETMODESET hVidPnTargetModeSet
)
{...}

Paramètres

[in] hVidPn

Handle d’un objet VidPN. Le gestionnaire VidPN a précédemment fourni cette poignée au pilote d’affichage miniport en appelant DxgkDdiEnumVidPnCofuncModality ou DxgkDdiRecommendFunctionalVidPn.

[in] VidPnTargetId

Entier qui identifie l’une des cibles présentes vidéo associées à l’objet VidPN.

[in] hVidPnTargetModeSet

Handle de l’objet défini en mode cible qui doit être affecté à la cible identifiée par VidPnTargetId. Le pilote de miniport d’affichage a précédemment obtenu ce handle en appelant pfnCreateNewTargetModeSet.

Valeur retournée

La fonction pfnAssignTargetModeSet retourne l’une des valeurs suivantes :

Code de retour Description
STATUS_SUCCESS La fonction a réussi.
STATUS_GRAPHICS_INVALID_VIDPN Le handle fourni dans hVidPn n’était pas valide.
STATUS_GRAPHICS_INVALID_VIDEO_PRESENT_TARGET L’identificateur fourni dans VidPnTargetId n’était pas valide.
STATUS_GRAPHICS_INVALID_VIDPN_TARGETMODESET Le handle fourni dans hVidPnTargetModeSet n’était pas valide.
STATUS_GRAPHICS_PINNED_MODE_MUST_REMAIN_IN_SET L’ensemble de modes cibles que vous essayez d’affecter ne contient pas le mode déjà épinglé sur la cible.

Remarques

Les identificateurs cibles VidPN sont attribués par le pilote de miniport d’affichage. DxgkDdiQueryChildRelations, implémenté par le pilote de miniport d’affichage, retourne un tableau de structures DXGK_CHILD_DESCRIPTOR , chacune contenant un identificateur.

Si vous obtenez un handle en appelant pfnCreateNewTargetModeSet , puis que vous passez ce handle à pfnAssignTargetModeSet, vous n’avez pas besoin de libérer le handle en appelant pfnReleaseTargetModeSet.

Si vous obtenez un handle en appelant pfnCreateNewTargetModeSet et que vous décidez de ne pas affecter le nouveau mode cible défini à une cible, vous devez libérer le handle nouvellement obtenu en appelant pfnReleaseTargetModeSet.

Note La fonction pfnAssignTargetModeSet libère ou ne libère pas l’objet défini en mode cible identifié par le paramètre hVidPnTargetModeSet en fonction de la raison de l’échec de pfnAssignTargetModeSet .

pfnAssignTargetModeSet ne libère pas l’objet défini en mode cible si pfnAssignTargetModeSet échoue avec un paramètre d’entrée non valide (autrement dit, échoue avec le STATUS_GRAPHICS_INVALID_VIDPN, STATUS_GRAPHICS_INVALID_VIDEO_PRESENT_TARGET ou STATUS_GRAPHICS_INVALID_VIDPN_TARGETMODESET code d’erreur), car les paramètres spécifiés n’étaient pas suffisants pour que le système d’exploitation détermine quel mode définir l’objet à libérer. Ces situations de paramètre non valides indiquent une erreur de codage grossière dans le pilote. Vous pouvez corriger cette erreur en spécifiant le handle VidPN, l’identificateur cible ou le handle défini du mode cible VidPN correct.

pfnAssignTargetModeSet libère l’objet défini en mode cible après avoir validé tous les paramètres d’entrée si pfnAssignTargetModeSet échoue pour l’une des raisons suivantes :

  • Le mode cible défini est vide.
  • L’ensemble de modes cibles ne contient pas de mode épinglé dans l’ensemble de modes précédent, le cas échéant.
  • Le mode cible défini n’a pas été créé pour la cible identifiée par VidPnTargetId.
 
Le type de données D3DDDI_VIDEO_PRESENT_TARGET_ID est défini dans D3dukmdt.h.

Les types de données D3DKMDT_HVIDPN et D3DKMDT_HVIDPNTARGETMODESET sont définis dans D3dkmdt.h.

Configuration requise

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

Voir aussi

Interface définie du mode cible VidPN

pfnCreateNewTargetModeSet