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
指示设备 参数结构 的大小。 微型端口驱动程序应验证 sizeof(IDE_DEVICE_PARAMETERS)是否小于或等于 版本 字段。
IdeDeviceType
指示设备的类型。 允许的设备类型 ATA 设备的 DeviceIsAta、ATAPI 设备的 DeviceIsAtapi,如果在该地址中找不到设备,DeviceNotExist。 如果 IdeDeviceType 设置为 DeviceNotExist,则此结构中的其他字段无效。
TargetId
指定设备的目标 ID。
MaximumLun
微型端口驱动程序必须更新此字段,以指示此设备支持的最大逻辑单元数。 默认情况下,成员设置为 0,指示只存在一个 LUN。
NumberOfOverlappedRequests
微型端口驱动程序必须更新此字段,以指定它可以为此设备处理的重叠请求数。 默认情况下,成员设置为 1。
MaxBlockXfer
指定要传输的数据块中的扇区数。 此值适用于 ATA 块传输命令中使用的数据块,例如读取多个命令(0xC4)、写入多个(0xC5)。 有关 ReadMultiple 和 WriteMultiple 命令的详细信息,请参阅 ATA 规范。
DeviceCharacteristics
指定设备特征。 下表列出了可在此成员中设置的特征。 此成员的高字节不透明,不应由 ATA 微型端口更改。
| 设备特征 | 描述 |
|---|---|
| DFLAGS_REMOVABLE_MEDIA | 指示驱动器具有可移动媒体 |
| DFLAGS_ REMOVABLE_DEVICE | 指示设备可以安全地解开 |
| DFLAGS_FUA_SUPPORT | 指示设备支持 FUA (强制单位访问) |
| DFLAGS_INT_DRQ | 指示在收到 ATAPI 数据包命令后设置 DRQ 时设备中断 |
| 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
此成员指定第一个物理扇区中扇区的位置,如 ATA 规范中定义的以字节为单位。
TransferModeSupported
包含指示支持的传输模式的位图。
TransferModeSelected
指示设备上的所选传输模式。 微型端口驱动程序必须设置此成员。
言论
当端口驱动程序 调用 ideHwInitialize时,端口驱动程序会将IDE_DEVICE_PARAMETERS结构传递给微型端口驱动程序。
要求
| 要求 | 价值 |
|---|---|
| 标头 | irb.h (包括 Irb.h) |