Получение серийного номера тома NTFS - C#

Узнай цену своей работы

Формулировка задачи:

Приветствую! Есть необходимость читать серийный номер тома NTFS. В классе DriveInfo такого свойства или метода я не нашел. Стал городить велосипед через WinAPI и GetVolumeInformation, получился вот такой огород:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Runtime.InteropServices;
 
namespace WinAPI_GetVolumeInformation
{
    class Program
    {
        [DllImport("kernel32.dll")]
 
        public static extern int GetVolumeInformation(string strPathName,
            StringBuilder strVolumeNameBuffer,
            int lngVolumeNameSize,
            out int lngVolumeSerialNumber,
            out int lngMaximumComponentLength,
            out int lngFileSystemFlags,
            StringBuilder strFileSystemNameBuffer,
            int lngFileSystemNameSize);
 
        static void Main()
        {
            const int MAX_SIZE = 256;
            //метка диска
            StringBuilder volname = new StringBuilder(MAX_SIZE);
            //серийный номер диска
            int sn;
            int maxcomplen;//максимальное кол-во компонент
            int sysflags;//системные флаги
            StringBuilder sysname = new StringBuilder(MAX_SIZE);//файловая система
            GetVolumeInformation(@"D:\", volname, MAX_SIZE, out sn, out maxcomplen, out sysflags, sysname, MAX_SIZE);
            Console.WriteLine(volname.ToString());
            Console.WriteLine(sn.ToString());
            Console.WriteLine(sysname.ToString());
            Console.Read();
        }
    }
}
Результат:
Win7 
1280574058
NTFS
Перевожу в hex получаю: 4С54-026A Значение в PM: 644C-5433-4C54-026A Т.е. верно, но получена только половина значения, вопрос как все таки получить всю?!

Решение задачи: «Получение серийного номера тома NTFS»

textual
Листинг программы
Раздел NTFS в таблице разделов идентифицируется номером 7. Первый сектор раздела - загрузочный.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

14   голосов , оценка 4 из 5
Похожие ответы