Lire en anglais

Partager via


DXGKDDI_SET_POWER_STATE fonction de rappel (dispmprt.h)

La fonction DxgkDdiSetPowerState définit l’état d’alimentation d’une carte d’affichage ou d’un appareil enfant d’une carte d’affichage.

Syntaxe

DXGKDDI_SET_POWER_STATE DxgkddiSetPowerState;

NTSTATUS DxgkddiSetPowerState(
  [in] IN_CONST_PVOID MiniportDeviceContext,
  [in] IN_ULONG DeviceUid,
  [in] IN_DEVICE_POWER_STATE DevicePowerState,
  [in] IN_POWER_ACTION ActionType
)
{...}

Paramètres

[in] MiniportDeviceContext

Handle vers un bloc de contexte associé à un adaptateur d’affichage. La fonction d’affichage du pilote miniport DxgkDdiAddDevice précédemment fourni ce handle au sous-système du noyau graphique DirectX.

[in] DeviceUid

Entier positif qui identifie l’appareil pour lequel l’état d’alimentation doit être défini. Si DeviceUid est égal à DISPLAY_ADAPTER_HW_ID (défini dans Video.h), l’appareil est l’adaptateur d’affichage lui-même. Sinon, DeviceUid est l’identificateur d’un appareil enfant de l’adaptateur d’affichage. Les identificateurs d’appareil enfant ont été précédemment attribués par la fonction DxgkDdiQueryChildRelations.

[in] DevicePowerState

Valeur d’énumération DEVICE_POWER_STATE qui fournit l’état d’alimentation (PowerDeviceD0, PowerDeviceD1, PowerDeviceD2, PowerDeviceD3) sur laquelle l’appareil doit être défini.

[in] ActionType

Valeur d’énumération POWER_ACTION qui fournit la raison (PowerActionSleep, PowerActionHibernate, PowerActionShutdown) pour le changement d’état d’alimentation.

Valeur de retour

DxgkDdiSetPowerState retourne STATUS_SUCCESS si elle réussit. DxgkDdiSetPowerState ne doit jamais échouer ; Toutefois, elle peut retourner n’importe quelle valeur typée NTSTATUS définie dans Ntstatus.h et qui transmet la macro NT_SUCCESS(Status).

Remarques

Si l’état demandé est égal à PowerDeviceD1, PowerDeviceD2ou PowerDeviceD3, DxgkDdiSetPowerState enregistre tout contexte qui sera ultérieurement nécessaire pour ramener l’appareil à PowerDeviceD0, puis place l’appareil dans l’état demandé. Si l’état demandé est PowerDeviceD0 (entièrement activé), DxgkDdiSetPowerState restaure le contexte de l’appareil et place l’appareil dans PowerDeviceD0.

Si DxgkDdiSetPowerState est appelé avec une demande de mise en veille prolongée de l’adaptateur d’affichage prenant en charge LE MODE MODE, il ne doit pas être mis hors tension de l’adaptateur d’affichage. Au lieu de cela, il doit enregistrer le contexte et laisser le pilote bus mettre hors tension l’adaptateur d’affichage. De cette façon, le gestionnaire d’alimentation peut afficher la progression de la mise en veille prolongée une fois que le pilote miniport d’affichage a été averti de la modification de l’état de l’alimentation.

Le système d’exploitation peut appeler DxgkDdiSetPowerState sur un appareil enfant de l’adaptateur d’affichage qui n’est plus connecté (par exemple, un moniteur récemment déconnecté). Cette anomalie se produit parce qu’une latence inhérente existe entre le temps pendant lequel le système d’exploitation appelle le DxgkDdiSetPowerState et le temps pendant lequel le système d’exploitation traite la déconnexion. Le conducteur doit gérer ces situations sans échouer.

Si DevicePowerState est égal à PowerDeviceD0, ne reposez pas sur la valeur de ActionType.

À compter du modèle de pilote d’affichage Windows (WDDM) 1.2, si le paramètre DevicePowerState est défini sur PowerDeviceD0, le pilote miniport d’affichage doit appeler DxgkCbAcquirePostDisplayOwnership pour interroger les informations sur le mode d’affichage. Ce mode d’affichage a peut-être été précédemment défini par le microprogramme et le chargeur système. Si DxgkCbAcquirePostDisplayOwnership retourne avec STATUS_SUCCESS, le pilote doit déterminer s’il doit réinitialiser l’affichage en fonction des informations du mode d’affichage retournées via le paramètre DisplayInfo. Sinon, le pilote ne doit pas supposer qu’un mode d’affichage spécifique est actuellement activé sur l’appareil et qu’il doit initialiser l’affichage.

La fonction DxgkDdiSetPowerState doit être rendue paginable.

Exigences

Exigence Valeur
client minimum pris en charge Disponible à partir de Windows Vista.
plateforme cible Bureau
d’en-tête dispmprt.h
IRQL PASSIVE_LEVEL

Voir aussi

DxgkCbAcquirePostDisplayOwnership

DxgkDdiAddDevice

DxgkDdiQueryChildRelations