IOCTL_VOLUME_LOGICAL_TO_PHYSICAL(number of the physical disk)-что это?

Тема в разделе "WASM.NT.KERNEL", создана пользователем genesis, 21 ноя 2007.

  1. genesis

    genesis New Member

    Публикаций:
    0
    Регистрация:
    4 сен 2006
    Сообщения:
    43
    Всем доброго времени суток.

    IOCTL_VOLUME_LOGICAL_TO_PHYSICAL отображает смещение относительно логического диска в смещение относительно физического диска. и возвращает что-то вроде -

    for disk \\.\f (offset = 0)
    kd> dt -b _VOLUME_PHYSICAL_OFFSETS 0xff593000
    +0x000 NumberOfPhysicalOffsets : 1
    +0x008 PhysicalOffset :
    [00] _VOLUME_PHYSICAL_OFFSET
    +0x000 DiskNumber : 1
    +0x008 Offset : 49351680

    тоесть - номер диска. Вопрос - как по номеру диска получить _device_object ?
    По моим наблюдениям , это всегда для номера N = \\.\physicaldriveN. Так ли это?
     
  2. genesis

    genesis New Member

    Публикаций:
    0
    Регистрация:
    4 сен 2006
    Сообщения:
    43
    и кстати,
    IOCTL_VOLUME_LOGICAL_TO_PHYSICAL - есть только под хр. Может знает кто, чем можно воспользоваться под w2k для достижения того же эффекта?
     
  3. ntldr

    ntldr New Member

    Публикаций:
    0
    Регистрация:
    20 ноя 2007
    Сообщения:
    125
    IOCTL_STORAGE_GET_DEVICE_NUMBER + чтение MBR диска. Не будет работать только с динамическими и GPT дискамию