структура IDE_DEVICE_PARAMETERS (irb.h)
Структура IDE_DEVICE_PARAMETERS содержит сведения о конфигурации, которые драйвер порта предоставляет мини-драйверу для настройки устройства.
Синтаксис
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) |