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 for ATA 设备, DeviceIsAtapi for ATAPI 设备,以及 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 指示设备中断,因为 DRQ 是在收到 ATAPI 数据包命令后设置的
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

此成员指定第一个物理扇区中扇区 0 在以字节表示的 ATA 规范中定义的位置。

TransferModeSupported

包含指示支持的传输模式的位图。

TransferModeSelected

指示设备上的所选传输模式。 微型端口驱动程序必须设置此成员。

注解

端口驱动程序在调用 IdeHwInitialize 时将IDE_DEVICE_PARAMETERS结构传递给微型端口驱动程序。

要求

要求
Header irb.h (包括 Irb.h)

另请参阅

ATA_ADDRESS_TRANSLATION

IDE_DEVICE_TYPE

IdeHwInitialize