システムの起動が、通常起動なのか、再起動なのかの識別する方法を考えています。

今のところ、ログオフからログオンまでの時間の違いにより識別する方法しか発想できませんです。
しかしこの方法は、100%確実でないので、他の方法があればヒントをお願いします。