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]
指定されたデバイスの識別データのワード 49 のビット 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 は、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 を含む) |