static string GetClusterName(SafeHCluster hCluster)
 {
     if (clusterName == null)
     {
         uint cch = 255u;
         StringBuilder sb = new StringBuilder((int)cch);
         int ret = SafeNativeMethods.GetClusterInformation(
             hCluster,
             sb,
             ref cch,
             IntPtr.Zero);
         if (ret != SafeNativeMethods.ERROR_SUCCESS || ret == SafeNativeMethods.ERROR_MORE_DATA)
         {
             if (ret == SafeNativeMethods.ERROR_MORE_DATA)
             {
                 sb = new StringBuilder((int)cch);
                 ret = SafeNativeMethods.GetClusterInformation(
                                                 hCluster,
                                                 sb,
                                                 ref cch,
                                                 IntPtr.Zero);
                 if (ret != SafeNativeMethods.ERROR_SUCCESS)
                 {
                     return null;
                 }
             }
         }
         clusterName = sb.ToString();
     }
     return clusterName;
 }