残念ながら、WM_QUERYENDSESSIONをリッスンするときに、ユーザーが再起動またはシャットダウンを要求した場合、情報は取得されません。これは本当に悪い設計ですが、Windowsのやり方なので、システムに再起動またはシャットダウンを実行するように指示するパラメーターを取得するNTShutdownSystemへの呼び出しをフックすることを考えていました。
問題は、これをC#で実際にどのように達成できるかということです。NTShutdownSystemに渡されるパラメーターを判別するために使用できるある種のフックを取得し、その情報を保存したいと思います。その後、ユーザーが意図したとおりに「実際の」NTShutdownSystemと呼びたいと思います。
これを説明するサンプルコードはありますか?