Установленные жесткие диски в системе

Тема в разделе "WASM.WIN32", создана пользователем ivashak, 17 апр 2009.

  1. ivashak

    ivashak New Member

    Публикаций:
    0
    Регистрация:
    15 апр 2009
    Сообщения:
    2
    Пытаюсь получить со всех физически установленных жестких дисков в системе собрать определенные данные (S.M.A.R.T статистику).

    Но у меня большое не понимание одной вещи. Читаю чужие исходники и в них вижу - первоначально получают хэндл:
    Код (Text):
    1. hSMARTIOCTL:= CreateFile('\\.\PhysicalDrive0', GENERIC_READ or
    2.       GENERIC_WRITE, FILE_SHARE_READ or FILE_SHARE_WRITE, nil,
    3.       OPEN_EXISTING, 0, 0);
    а затем уже с полученным хэндлом в цикле выполняют команды. А в цикле идет перебор всех возможных дисков от 0 до MAX_IDE_DRIVES-1:
    Код (Text):
    1.   for i:= 0 to (MAX_IDE_DRIVES - 1) do
    2.   begin
    3.      .....
    4.      .....
    5.      bDriveHeadReg    := $A0 or ((bDriveNum and 1) shl 4);
    Так вот я не пойму - что такое PhysicalDrive0? Я думал, что PhysicalDriveX - это идентификатор физически установленного жесткого диска в системе, а оказалось что это не так. В то же время в некоторых исходниках сначала перебирают в цикле PhysicalDriveX, а потом уже внутри снова перебирают в цикле по MAX_IDE_DRIVES.

    Объясните пожалуйста что вообще происходит. Совсем не могу вникнуть.
     
  2. Clerk

    Clerk Забанен

    Публикаций:
    0
    Регистрация:
    4 янв 2008
    Сообщения:
    6.689
    Адрес:
    РБ, Могилёв
    Это символическая ссылка. Наверно этот некропостенг вам поможет http://x64.blog.ru/