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.
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.
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 |