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