Windows 8 (および 8.1) で実行される C++ で開発されたサービスがあります。システムがコネクト スタンバイ状態になったことを知るにはどうすればよいですか?
これはサービスなのでウィンドウがありません。 PowerRegisterSuspendResumeNotificationを使用する必要がありますが、機能していないようです。このような通知を受け取る方法を知っている人はいますか?
Windows 8 (および 8.1) で実行される C++ で開発されたサービスがあります。システムがコネクト スタンバイ状態になったことを知るにはどうすればよいですか?
これはサービスなのでウィンドウがありません。 PowerRegisterSuspendResumeNotificationを使用する必要がありますが、機能していないようです。このような通知を受け取る方法を知っている人はいますか?
Microsoft のテクニカル サポートに問い合わせました。これが彼らの答えです:
ConnectedStandby の開始/終了に関する直接的な通知はありませんが、ConnectedStandby は AOAC 対応システムでの画面オフと同義であるため、モニターのオン/オフ通知を使用できます (ただし、レガシー システムではなく、AOAC 機能を取得することで取得できます)。 CallNtPowerInformation を使用し、SYSTEM_POWER_CAPABILITIES 構造体の AoAc 値を調べる SystemPowerCapabilities)。
モニターのオン/オフ通知を取得するには、RegisterPowerSettingNotification を使用し、GUID_MONITOR_POWER_ON 電源設定 GUID を使用できます。
画面のオン/オフイベントをリッスンすることで、これを回避するしかないようです。
これはコメントできないのが耐え難いです!!
CallNtPowerInformation(SystemPowerCapabilities, ...)
戻りSYSTEM_POWER_CAPABILITIES
ます。メンバーがあります。BOOLEAN
メンバーAoAc
が である場合FALSE
、システムはコネクト スタンバイをサポートしていません。
Intelカスタムハードウェア(市場のマシンと同じ)で私にとってはうまくいきました。AoAc
= Always On Always Connected、Intel の設定。
コメントすることはできませんでしたが、サプライズで回答を提供することが許可されています。これは明確な答えではありませんが、議論です。
の通知を受け取らずPBT_APMSUSPEND
、コールバックPBT_APMRESUMESUSPEND
しPBT_APMRESUMEAUTOMATIC
ますか?
http://social.msdn.microsoft.com/Forums/windowsdesktop/en-US/26629db2-6d33-427c-a767-8c857d775079/windows-8-connected-standby-and-aoac?forum=wdkを通過した後
どうやら、アプリケーションは S3 モードと CS モード (別名 AOAC、常時オン、常時接続) を区別する必要はありません。ただし、CS でネットワーク アクティビティが許可されているかどうかは不明です。