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

指示设备 参数结构 的大小。 微型端口驱动程序应验证 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 等于LbaModeLba48BitMode时,将定义此成员。

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)

另请参阅

ATA_ADDRESS_TRANSLATION

IDE_DEVICE_TYPE

IdeHwInitialize