共用方式為


DXGKDDI_SET_POWER_STATE回呼函式 (dispmprt.h)

DxgkDdiSetPowerState 函式會設定顯示配接器或顯示適配卡的子裝置電源狀態。

語法

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
)
{...}

參數

[in] MiniportDeviceContext

與顯示配接器相關聯的內容區塊句柄。 顯示迷你埠驅動程式的 DxgkDdiAddDevice 函式先前提供此句柄給 DirectX 圖形核心子系統。

[in] DeviceUid

正整數,識別要設定電源狀態的裝置。 如果 DeviceUid 等於 DISPLAY_ADAPTER_HW_ID (定義在 Video.h 中),裝置就是顯示適配卡本身。 否則,DeviceUid 是顯示適配卡子裝置的標識碼。 子裝置標識碼先前是由 DxgkDdiQueryChildRelations 函式指派。

[in] DevicePowerState

提供電源狀態 (PowerDeviceD0PowerDeviceD1PowerDeviceD2PowerDeviceD3) 的 DEVICE_POWER_STATE 列舉值。

[in] ActionType

POWER_ACTION 列舉值,提供電源狀態變更的原因 (PowerActionSleepPowerActionHibernatePowerActionShutdown)。

傳回值

DxgkDdiSetPowerState 如果成功,則會傳回 STATUS_SUCCESSDxgkDdiSetPowerState 不應該失敗;不過,它可以傳回在 Ntstatus.h 中定義的任何 NTSTATUS 型別值,並傳遞 NT_SUCCESS(Status) 巨集。

言論

如果要求的狀態等於 PowerDeviceD1PowerDeviceD2PowerDeviceD3DxgkDdiSetPowerState 儲存將裝置帶回 powerDeviceD0,然後將裝置置於要求狀態的任何內容。 如果要求的狀態為 PowerDeviceD0 (完全開啟),DxgkDdiSetPowerState 會還原裝置內容,並將裝置置於 powerDeviceD0

如果呼叫 DxgkDdiSetPowerState,並要求將已啟用 VGA 的顯示器適配卡放入休眠狀態,則不應該關閉顯示適配卡。 相反地,它應該儲存內容,並讓總線驅動程式關閉顯示配接器。 如此一來,電源管理員就可以在顯示迷你埠驅動程式收到電源狀態變更通知之後顯示休眠進度。

作系統可能會在已不再連接的顯示器適配卡子裝置上呼叫 DxgkDdiSetPowerState (例如,最近未連接的監視器)。 發生此異常的原因是作系統呼叫驅動程式 DxgkDdiSetPowerState 與作系統處理中斷連線的時間之間存在固有延遲。 驅動程式必須處理這類情況,而不會失敗。

如果 DevicePowerState 等於 PowerDeviceD0,請勿依賴 actionType 的值

從 Windows Display Driver Model (WDDM) 1.2 開始,如果 DevicePowerState 參數設定為 PowerDeviceD0,則顯示迷你埠驅動程式應該呼叫 DxgkCbAcquirePostDisplayOwnership 來查詢顯示模式的相關信息。 此顯示模式可能先前已由韌體和系統載入器設定。 如果 DxgkCbAcquirePostDisplayOwnership 傳回 STATUS_SUCCESS,驅動程式應該根據透過 displayInfo 參數傳回的顯示模式資訊,判斷它是否必須重新初始化顯示。 否則,驅動程式不應該假設裝置上目前已啟用任何特定的顯示模式,而且應該初始化顯示器。

DxgkDdiSetPowerState 函式應設為可分頁。

要求

要求 價值
最低支援的用戶端 從 Windows Vista 開始提供。
目標平臺 桌面
標頭 dispmprt.h
IRQL PASSIVE_LEVEL

另請參閱

DxgkCbAcquirePostDisplayOwnership

DxgkDdiAddDevice

DxgkDdiQueryChildRelations