2011-02-01 6 views
7

Windowsセッションの変更に関する通知を受け取るサービス/アプリケーションがあります。 Windows XPとWindows 7の動作に違いがあり、バグか文書化された動作の変更かどうかを確認しようとしています。Windows XPとWindows 7の間のログオフ通知イベントの相違

通知は、WTSSESSION_NOTIFICATIONとなります。

Windows XPはWindows GUIログオン時には、Windows GUIログオフ時にはWTS_SESSION_LOGOFFと報告しています。

guiログイン時にWindows 7 x64でWTS_SESSION_LOGONが生成されますが、ログオフ時にWTS_SESSION_LOGOFFイベントの代わりにWTS_CONSOLE_DISCONNECTイベントが発生します。

これはバグですか?またはバージョン間で一定の値が変更されていますか?私が開発したサービスにとって大変重要ではありませんが、なぜこの動作が異なるのかを知りたいのです。

+4

WTS_CONSOLE_DISCONNECTではなくWTS_CONSOLE_DISCONNECTイベント? –

+0

定数値は変更されませんでした.WTS_CONSOLE_DISCONNECTはXP用に定義されていました。 LOGOFFイベントは完全に欠落していますか?たぶん、Win7はログオフする前にセッションを切断するだけでしょうか? – Zarat

+0

'WTSRegisterSessionNotification'または' RegisterServiceCtrlHandlerEx'を使用していますか?セッションの分離のために、私はVistaやWindows 7のサービスで動作するとは思っていません。 –

答えて

1

Windows 7では、サービスのみがWTS_SESSION_LOGOFFイベントを受け取ることができます。サービスが通知を受け取るまでに、ログオフ手順は終了しています(つまり、実行していたすべてのアプリケーションは既に終了しています)。

+0

Re:(WTS_CONSOLE_DISCONNECTの代わりにWTS_CONSOLE_DISCONNECTイベント?)これは間違いであり、私は質問が正しく編集されたので編集しました。 –

+0

問題のコードは実際にはサービスです。これは、任意のログインセッションから独立して実行されるはずであり、ビルドとアクティビティログを作成するために誰がログインしたかを追跡することが実際に想定されています。これは私が書いた最初のネイティブサービスなので、ログインセッション中にしか起動しないと正しく動作していないと、その動作に関して何か間違っている可能性があります。 wierdが見つけたのは、セッションログオフの代わりにコンソール切断イベントを出すのはWindows 7だけだということです。 Windows VistaはXPのようなセッションログオフを提供します。 –

+0

このサービスが必要とするのは、誰かがログインしてログアウトしたことを追跡することだけです。期待されたものとは異なるイベントが発生しているという事実は、何よりも迷惑です。その動作が変更されているはずのことを示す文書が見つからないため、Windows 7のバグかどうかわかりません。これについてMicrosoftに連絡する前に、これが実際に私が愚かに見えるようにMicrosoftに連絡する前に、バグを報告したり、少なくとも文書化されていない動作の変更を行ったりしてはいけません。 –

関連する問題