Windows C#で次のようなコードを書いた場合に、以下の点がわかりません。

System.IO.DriveInfo drive = new System.IO.DriveInfo("Z");
if (drive.IsReady)
{
string s;
s = string.Format("{0:f1} GB/{1:f1} GB", drive.TotalFreeSpace/1024 / 1024 / 1024, drive.TotalSize / 1024 / 1024 / 1024);
//  以下略
}

これを1秒おきに実行した際

  1. どのようにして情報が取得されるのか(ディスクに都度アクセスするのか)
  2. アクセスするとした場合、寿命に影響があるのか
  3. 実際にどのようにして値を取得しているかを調べる方法があるのか
  4. 1秒おきに取得する方法以外の手段はあるのか
  5. このコードの問題点があれば教えてください