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]
指出當指定的裝置識別數據的第 11 個字 11 位設為 1 時,則為 TRUE 。 函式值為 IRB_FUNCTION_ATA_IDENTIFY 的 IDE 要求會擷取裝置的識別數據。 如需 ATA 識別數據的詳細資訊,請參閱 ATA/ATAPI 規格 6.0 版中識別裝置資訊封包的各節。
DeviceTransferModeSupported[MAX_IDE_DEVICE]
包含位圖,指出通道上每個裝置支援的傳輸模式。 埠驅動程式會設定此成員。 迷你埠驅動程式不得選取埠驅動程式不支援的傳輸模式。 如需此成員的詳細資訊,請參閱一節。
DeviceTransferModeCurrent[MAX_IDE_DEVICE]
包含位圖,指出通道上每個裝置目前的傳輸模式設定。 埠驅動程式會從裝置識別數據擷取裝置目前的傳輸模式。 如需此成員的詳細資訊,請參閱一節。
DeviceTransferModeSelected[MAX_IDE_DEVICE]
包含位圖,指出通道上每個裝置的選取傳輸模式設定。 迷你埠驅動程序應該使用此成員向埠驅動程式指出它選取的傳輸模式。 如需此成員的詳細資訊,請參閱一節。
備註
成員陣列 DeviceTransferModeSupported、 DeviceTransferModeCurrent 和 DeviceTransferModeSelected 是 ULONG 位圖的數位,指出 PIO 和 DMA 傳輸模式的組合。 點陣圖的定義如下:
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) |