Partager via


DXGKDDI_VIDPN_ASSIGNTARGETMODESET fonction de rappel (d3dkmddi.h)

La fonction pfnAssignTargetModeSet attribue 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 vers un objet VidPN. Le gestionnaire VidPN a précédemment fourni ce handle au pilote miniport d’affichage en appelant DxgkDdiEnumVidPnCofuncModality ou DxgkDdiRecommendFunctionalVidPn.

[in] VidPnTargetId

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

[in] hVidPnTargetModeSet

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

Valeur de retour

La fonction pfnAssignTargetModeSet retourne l’une des valeurs suivantes :

Retourner le code 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 Le jeu de mode cible que vous tentez d’affecter ne contient pas le mode déjà épinglé sur la cible.

Remarques

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

Si vous obtenez un handle en appelant pfnCreateNewTargetModeSet, puis 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, puis 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.

Remarque Les versions de fonction pfnAssignTargetModeSet ou ne libèrent pas l’objet de jeu de modes cibles identifié par le paramètre hVidPnTargetModeSet en fonction de la raison pour laquelle pfnAssignTargetModeSet échouer.

pfnAssignTargetModeSet ne libère pas l’objet de jeu de 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 le système d’exploitation afin de déterminer l’objet défini en mode à libérer. Ces situations de paramètre non valides indiquent une erreur de codage brute dans le pilote. Vous pouvez corriger cette erreur en spécifiant le handle VidPN approprié, l’identificateur cible ou le handle défini du mode cible VidPN.

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

  • Le jeu de mode cible est vide.
  • Le jeu de mode cible ne contient pas de mode épinglé dans le jeu de mode précédent, le cas échéant.
  • Le jeu de mode cible 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.

Exigences

Exigence Valeur
client minimum pris en charge Windows Vista
plateforme cible Bureau
d’en-tête d3dkmddi.h (include D3dkmddi.h)
IRQL PASSIVE_LEVEL

Voir aussi

interface de définition de mode cible VidPN

pfnCreateNewTargetModeSet