irb.h) (IDE_TRANSFER_MODE_PARAMETERS 结构

IDE_TRANSFER_MODE_PARAMETERS 结构与微型端口驱动程序的 AtaControllerTransferModeSelect 例程结合使用,以设置通道上的传输模式参数。

注意 ATA 端口驱动程序和 ATA 微型端口驱动程序模型将来可能会更改或不可用。 建议改用 Storport 驱动程序Storport 微型端口 驱动程序模型。
 

语法

typedef struct _IDE_TRANSFER_MODE_PARAMETERS {
  UCHAR           ChannelNumber;
  IDE_DEVICE_TYPE DeviceType[MAX_IDE_DEVICE];
  BOOLEAN         IoReadySupported[MAX_IDE_DEVICE];
  ULONG           DeviceTransferModeSupported[MAX_IDE_DEVICE];
  ULONG           DeviceTransferModeCurrent[MAX_IDE_DEVICE];
  ULONG           DeviceTransferModeSelected[MAX_IDE_DEVICE];
} IDE_TRANSFER_MODE_PARAMETERS, *PIDE_TRANSFER_MODE_PARAMETERS;

成员

ChannelNumber

指示要设置其模式参数的通道编号。

DeviceType[MAX_IDE_DEVICE]

包含类型 为 IDE_DEVICE_TYPE 的枚举值,该值指示设备的类型。 如果设备类型为 DeviceNotExist,微型端口驱动程序不应选择传输模式。

IoReadySupported[MAX_IDE_DEVICE]

指示何时将 指示设备的标识数据的单词 49 的第 11 位设置为 TRUE。 函数值为 IRB_FUNCTION_ATA_IDENTIFY 的 IDE 请求将检索设备的标识数据。 有关 ATA 标识数据的详细信息,请参阅 ATA/ATAPI 规范 6.0 版中的标识设备信息数据包部分。

DeviceTransferModeSupported[MAX_IDE_DEVICE]

包含一个位图,该位图指示通道上每个设备支持的传输模式。 端口驱动程序设置此成员。 微型端口驱动程序不得选择端口驱动程序不支持的传输模式。 有关此成员的详细信息,请参阅 备注 部分。

DeviceTransferModeCurrent[MAX_IDE_DEVICE]

包含一个位图,指示通道上每个设备的当前传输模式设置。 端口驱动程序从设备的标识设备数据中检索设备的当前传输模式。 有关此成员的详细信息,请参阅 备注 部分。

DeviceTransferModeSelected[MAX_IDE_DEVICE]

包含一个位图,该位图指示通道上每个设备的所选传输模式设置。 微型端口驱动程序应使用此成员向端口驱动程序指示它选择的传输模式。 有关此成员的详细信息,请参阅 备注 部分。

注解

成员数组 DeviceTransferModeSupportedDeviceTransferModeCurrentDeviceTransferModeSelected 是指示 PIO 和 DMA 传输模式组合的 ULONG 位图数组。 位图定义如下:

PIO 模式

#define PIO_MODE0           (1 << 0)
#define PIO_MODE1           (1 << 1)
#define PIO_MODE2           (1 << 2)
#define PIO_MODE3           (1 << 3)
#define PIO_MODE4           (1 << 4)

// Single-word DMA Modes

#define SWDMA_MODE0         (1 << 5)
#define SWDMA_MODE1         (1 << 6)
#define SWDMA_MODE2         (1 << 7)

// Multi-word DMA Modes

#define MWDMA_MODE0         (1 << 8)
#define MWDMA_MODE1         (1 << 9)
#define MWDMA_MODE2         (1 << 10)

// Ultra DMA Modes

#define UDMA_MODE0          (1 << 11)
#define UDMA_MODE1          (1 << 12)
#define UDMA_MODE2          (1 << 13)
#define UDMA_MODE3          (1 << 14)
#define UDMA_MODE4          (1 << 15)
#define UDMA_MODE5          (1 << 16)

要求

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

另请参阅

AtaControllerTransferModeSelect

IDE_DEVICE_TYPE