IDE_TRANSFER_MODE_PARAMETERS結構 (irb.h)
IDE_TRANSFER_MODE_PARAMETERS 結構會與迷你埠驅動程式的 AtaControllerTransferModeSelect 例程搭配使用,以在通道上設定傳輸模式參數。
語法
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]
指出當 TRUE 指定裝置識別數據的 49 個位 11 位設為 1。 具有函式值的 IDE 要求IRB_FUNCTION_ATA_IDENTIFY會擷取裝置的識別數據。 如需 ATA 識別資料的詳細資訊,請參閱 ATA/ATAPI 規格6.0 版中的識別裝置資訊封包一節。
DeviceTransferModeSupported[MAX_IDE_DEVICE]
包含位圖,指出通道上每個裝置支援的傳輸模式。 埠驅動程式會設定此成員。 迷你埠驅動程式不得選取埠驅動程式不支援的傳輸模式。 如需此成員的詳細資訊,請參閱<
DeviceTransferModeCurrent[MAX_IDE_DEVICE]
包含位圖,指出通道上每個裝置的目前傳輸模式設定。 埠驅動程式會從其識別裝置數據擷取裝置的目前傳輸模式。 如需此成員的詳細資訊,請參閱<
DeviceTransferModeSelected[MAX_IDE_DEVICE]
包含位圖,指出通道上每個裝置的選取傳輸模式設定。 迷你埠驅動程序應該使用此成員來向埠驅動程式指出它選取的傳輸模式。 如需此成員的詳細資訊,請參閱<
言論
Member arrays DeviceTransferModeSupported、DeviceTransferModeCurrent和 DeviceTransferModeSelected 是指出 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)
要求
要求 | 價值 |
---|---|
標頭 | irb.h (包括 Irb.h) |