私のWindowsサービスは、呼び出し時に次のエラーを報告することがありますWTSEnumerateProcesses()
。
バインディングハンドルが無効です。
これは、ターミナルサービスサービスを自分のサービスの依存サービスとして登録しているにもかかわらず、ターミナルサービスサービスが利用できないことが原因であると思われます。
ターミナルサービスサービスは実行されていても、初期化が完了していない(またはシャットダウンしている)ため、要求を処理できず、エラーが発生していると思います。
次のリファレンスドキュメントで次のことに気づきましたWTSRegisterSessionNotification()
。
Global \ TermSrvReadyEventグローバルイベントが設定されると、すべての依存サービスが開始され、この関数を正常に呼び出すことができます。
これはのドキュメントには記載されていませんが、WTSEnumerateProcesses()
同様に適用されますか?OpenEvent()
オンにしようとするGlobal\\TermSrvReadyEvent
と、ターミナルサービスサービスが実際に利用可能であることを示しますか?
プラットフォーム:Windows XP、Windows Vista、およびWindows 7