Partager via


DXGKDDI_VIDPN_ASSIGNSOURCEMODESET fonction de rappel (d3dkmddi.h)

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

Syntaxe

DXGKDDI_VIDPN_ASSIGNSOURCEMODESET DxgkddiVidpnAssignsourcemodeset;

NTSTATUS DxgkddiVidpnAssignsourcemodeset(
  [in] IN_D3DKMDT_HVIDPN hVidPn,
  [in] IN_CONST_D3DDDI_VIDEO_PRESENT_SOURCE_ID VidPnSourceId,
  [in] IN_CONST_D3DKMDT_HVIDPNSOURCEMODESET hVidPnSourceModeSet
)
{...}

Paramètres

[in] hVidPn

Handle pour un objet VidPN. Le gestionnaire VidPN a précédemment fourni ce handle au pilote de miniport d’affichage en appelant DxgkDdiEnumVidPnCofuncModality ou DxgkDdiRecommendFunctionalVidPn.

[in] VidPnSourceId

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

[in] hVidPnSourceModeSet

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

Valeur retournée

La fonction pfnAssignSourceModeSet 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_SOURCE L’identificateur fourni dans VidPnSourceId n’était pas valide.
STATUS_GRAPHICS_INVALID_VIDPN_SOURCEMODESET Le handle fourni dans hVidPnSourceModeSet n’était pas valide.
STATUS_GRAPHICS_PINNED_MODE_MUST_REMAIN_IN_SET L’ensemble du mode source que vous essayez d’affecter ne contient pas le mode déjà épinglé sur la source.

Remarques

Les identificateurs de source VidPN sont attribués par le système d’exploitation. DxgkDdiStartDevice, implémenté par le pilote de miniport d’affichage, retourne le nombre N de sources vidéo présentes prises en charge par la carte graphique. Ensuite, le système d’exploitation affecte les identificateurs 0, 1, 2, ... N - 1.

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

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

Note La fonction pfnAssignSourceModeSet libère ou ne libère pas l’objet d’ensemble de mode source identifié par le paramètre hVidPnSourceModeSet en fonction de la raison de l’échec de pfnAssignSourceModeSet .

pfnAssignSourceModeSet ne libère pas l’objet défini de mode source si pfnAssignSourceModeSet échoue avec un paramètre d’entrée non valide (c’est-à-dire, échoue avec le code d’erreur STATUS_GRAPHICS_INVALID_VIDPN, STATUS_GRAPHICS_INVALID_VIDEO_PRESENT_SOURCE ou STATUS_GRAPHICS_INVALID_VIDPN_SOURCEMODESET), car les paramètres spécifiés n’étaient pas suffisants pour que le système d’exploitation détermine l’objet défini sur le mode à 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 source ou le handle défini du mode source VidPN correct.

pfnAssignSourceModeSet libère l’objet set de mode source après avoir validé tous les paramètres d’entrée en cas d’échec de pfnAssignSourceModeSet pour l’une des raisons suivantes :

  • Le mode source défini est vide.
  • Le jeu de modes source ne contient pas de mode épinglé dans le jeu de modes précédent, le cas échéant.
  • Le mode source défini n’a pas été créé pour la source identifiée par VidPnSourceId.
 
Le type de données D3DDDI_VIDEO_PRESENT_SOURCE_ID est défini dans D3dukmdt.h.

Les types de données D3DKMDT_HVIDPN et D3DKMDT_HVIDPNSOURCEMODESET 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 (include D3dkmddi.h)
IRQL PASSIVE_LEVEL

Voir aussi

Interface d’ensemble du mode source VidPN

pfnCreateNewSourceModeSet