ユーザー モード モジュールと連携して実行されるサービス アプリケーションがあります。このソフトウェアを使用すると、ユーザー モード コードが最初に Windows ユーザーをログオフし、その直後にサービス アプリケーションがシステムをスリープ モードにする特殊な電源操作を実行できます。
このシナリオは、一部のシステムでは正常に機能しますが、他のシステムではスリープ操作が失敗します。スリープが成功することもありますが、システムを起動して再度実行しようとすると、スリープ API (SetSuspendState) がハングアップし、システムが動作している間は戻りません。
テストを行っている間、ほとんどのシステムで問題を解決しているように見える (Sleep(5000) API を使用して) ハードコーディングされた遅延を設定しましたが、他のシステムでも同じ結果が得られます。この場合、問題を実際に解決しないか、そもそもなぜそれが起こったのかという質問に答えないため、より長い遅延を導入するのは嫌いです. さらに、10 秒でも十分ではない「遅い」システムがあると確信しています...
では、スリープ API でこれらの障害を修正する方法を知っている人はいますか?
PS。最新バージョンの Windows 7 でテストを実行します。