Поделиться через


структура IDE_DEVICE_PARAMETERS (irb.h)

Структура IDE_DEVICE_PARAMETERS содержит сведения о конфигурации, которые драйвер порта предоставляет мини-драйверу для настройки устройства.

Примечание В будущем модели драйверов портов ATA и мини-порта ATA могут быть изменены или недоступны. Вместо этого мы рекомендуем использовать драйвера Storport и минипорта Storport модели драйверов.
 

Синтаксис

typedef struct _IDE_DEVICE_PARAMETERS {
  USHORT                  Version;
  IDE_DEVICE_TYPE         IdeDeviceType;
  UCHAR                   TargetId;
  UCHAR                   MaximumLun;
  UCHAR                   NumberOfOverlappedRequests;
  UCHAR                   MaxBlockXfer;
  USHORT                  DeviceCharacteristics;
  ATA_ADDRESS_TRANSLATION AddressTranslation;
  union {
    LARGE_INTEGER MaxLba;
    struct {
      USHORT NumCylinders;
      USHORT NumHeads;
      USHORT NumSectorsPerTrack;
      USHORT Reserved;
    } Chs;
  };
  ULONG                   BytesPerLogicalSector;
  ULONG                   BytesPerPhysicalSector;
  ULONG                   BytesOffsetForSectorAlignment;
  ULONG                   TransferModeSupported;
  ULONG                   TransferModeSelected;
} IDE_DEVICE_PARAMETERS, *PIDE_DEVICE_PARAMETERS;

Члены

Version

Указывает размер структуры параметров устройства. Драйвер минипорта должен убедиться, что размер (IDE_DEVICE_PARAMETERS) меньше или равен полю версии.

IdeDeviceType

Указывает тип устройства. Допустимые типы устройств DeviceIsAta для устройств ATA, DeviceIsAtapi для устройств ATAPI и DeviceNotExist, если устройство не найдено на этом адресе. Другие поля в этой структуре недопустимы, если IdeDeviceType имеет значение DeviceNotExist.

TargetId

Указывает целевой идентификатор устройства.

MaximumLun

Драйвер минипорта должен обновить это поле, чтобы указать максимальное число логического блока, поддерживаемого этим устройством. По умолчанию для элемента задано значение 0, указывающее наличие только одного LUN.

NumberOfOverlappedRequests

Минипорт-драйвер должен обновить это поле, чтобы указать количество перекрывающихся запросов, которые он может обрабатывать для этого устройства. По умолчанию член имеет значение 1.

MaxBlockXfer

Указывает количество секторов в блоке передаваемых данных. Это значение применяется к блокам данных, используемым в командах передачи блоков ATA, таких как чтение нескольких (0xC4), запись нескольких (0xC5). Дополнительные сведения о командах ReadMultiple и WriteMultiple см. в спецификации ATA.

DeviceCharacteristics

Указывает характеристики устройства. В таблице ниже перечислены характеристики, которые можно задать в этом элементе. Высокий байт этого элемента непрозрачн и не изменяется минипортом ATA.

Характеристика устройства Описание
DFLAGS_REMOVABLE_MEDIA Указывает, что диск имеет съемный носитель
DFLAGS_ REMOVABLE_DEVICE Указывает, что устройство можно безопасно отключить
DFLAGS_FUA_SUPPORT Указывает, что устройство поддерживает FUA (force Unit Access)
DFLAGS_INT_DRQ Указывает, что устройство прерывает работу drQ после получения команды пакета ATAPI.
DFLAGS_MSN_SUPPORT Указывает, что устройство поддерживает уведомление о состоянии мультимедиа.

AddressTranslation

Содержит значение перечисления типа ATA_ADDRESS_TRANSLATION, указывающее тип преобразования адресов, используемый во время передачи данных.

MaxLba

Указывает максимальный адрес логического блока с адресом для пользователей (LBA). Этот элемент определяется, если AddressTranslation равно LbaMode или Lba48BitMode.

Chs

Задает геометрию диска со значениями числа цилиндров, головок на цилиндр и секторов на дорожку. Этот элемент определяется, если AddressTranslation равно ChsMode.

Chs.NumCylinders

Chs.NumHeads

Chs.NumSectorsPerTrack

Chs.Reserved

BytesPerLogicalSector

Этот элемент указывает количество байтов для логического сектора (LBA) для данного устройства.

BytesPerPhysicalSector

Этот элемент задает количество байтов для каждого физического сектора (т. е. наименьшее количество данных, которые устройство может физически записывать внутри) для данного устройства.

BytesOffsetForSectorAlignment

Этот элемент указывает расположение сектора 0 в первом физическом секторе, как определено в спецификации ATA, представленной в байтах.

TransferModeSupported

Содержит растровое изображение, указывающее поддерживаемые режимы передачи.

TransferModeSelected

Указывает выбранные режимы передачи на устройстве. Драйвер минипорта должен задать этот элемент.

Замечания

Драйвер порта передает структуру IDE_DEVICE_PARAMETERS драйверу мини-порта при вызове IdeHwInitialize.

Требования

Требование Ценность
заголовка irb.h (include Irb.h)

См. также

ATA_ADDRESS_TRANSLATION

IDE_DEVICE_TYPE

IdeHwInitialize