IDE_DEVICE_PARAMETERS 構造体 (irb.h)
IDE_DEVICE_PARAMETERS構造体には、ポート ドライバーがデバイスを構成するためにミニポート ドライバーに提供する構成情報が含まれています。
構文
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
デバイス パラメーター構造体のサイズを示します。 ミニポート ドライバーは、sizeof(IDE_DEVICE_PARAMETERS) が Version フィールド以下であることを確認する必要があります。
IdeDeviceType
デバイスの種類を示します。 許可されるデバイスの種類は、ATA デバイスの 場合は DeviceIsAta 、ATAPI デバイスの場合 は DeviceIsAtapi 、そのアドレスでデバイスが見つからなかった場合は DeviceNotExist です。 IdeDeviceType が DeviceNotExist に設定されている場合、この構造体の他のフィールドは無効です。
TargetId
デバイスのターゲット ID を指定します。
MaximumLun
ミニポート ドライバーは、このデバイスでサポートされている最大論理ユニット番号を示すために、このフィールドを更新する必要があります。 既定では、メンバーは 1 つの LUN の存在を示す 0 に設定されます。
NumberOfOverlappedRequests
ミニポート ドライバーは、このデバイスに対して処理できる重複する要求の数を指定するには、このフィールドを更新する必要があります。 既定では、メンバーは 1 に設定されています。
MaxBlockXfer
転送するデータ ブロック内のセクター数を指定します。 この値は、複数の読み取り (0xC4)、複数書き込み (0xC5) などの ATA ブロック転送コマンドで使用されるデータ ブロックに適用されます。 ReadMultiple コマンドと WriteMultiple コマンドの詳細については、 ATA 仕様に関するページを参照してください。
DeviceCharacteristics
デバイスの特性を指定します。 次の表に、このメンバーで設定できる特性を示します。 このメンバーの高バイトは不透明であり、ATA ミニポートによって変更されません。
デバイスの特性 | 説明 |
---|---|
DFLAGS_REMOVABLE_MEDIA | ドライブにリムーバブル メディアがあることを示します |
DFLAGS_ REMOVABLE_DEVICE | デバイスを安全に取り外すことができることを示します |
DFLAGS_FUA_SUPPORT | デバイスが FUA をサポートしていることを示します (ユニット アクセスの強制) |
DFLAGS_INT_DRQ | ATAPI パケット コマンドの受信後に DRQ が設定されるとデバイスが割り込まれることを示します |
DFLAGS_MSN_SUPPORT | デバイスがメディアステータス通知をサポートしていることを示します。 |
AddressTranslation
データ転送中に使用されるアドレス変換の並べ替えを指定する ATA_ADDRESS_TRANSLATION 型の列挙値を格納します。
MaxLba
ユーザーがアドレス指定できる論理ブロック アドレス (LBA) の最大数を指定します。 このメンバーは、 AddressTranslation が LbaMode または Lba48BitMode のいずれかに等しい場合 に定義されます。
Chs
シリンダ数、シリンダあたりのヘッド数、およびトラックあたりのセクター数の値を使用して、ドライブ ジオメトリを指定します。このメンバーは、 AddressTranslation が ChsMode と等しい場合に定義されます。
Chs.NumCylinders
Chs.NumHeads
Chs.NumSectorsPerTrack
Chs.Reserved
BytesPerLogicalSector
このメンバーは、指定されたデバイスの論理セクター (LBA) あたりのバイト数を指定します。
BytesPerPhysicalSector
このメンバーは、特定のデバイスの物理セクターあたりのバイト数 (つまり、デバイスが内部的に物理的に書き込むことができるデータの最小量) を指定します。
BytesOffsetForSectorAlignment
このメンバーは、バイト単位で表される ATA 仕様で定義されているように、最初の物理セクター内のセクター 0 の位置を指定します。
TransferModeSupported
サポートされている転送モードを示すビットマップが含まれます。
TransferModeSelected
デバイスで選択した転送モードを示します。 ミニポート ドライバーは、このメンバーを設定する必要があります。
注釈
ポート ドライバーは、 IdeHwInitialize を呼び出すときに、ミニポート ドライバーにIDE_DEVICE_PARAMETERS構造体を渡します。
要件
要件 | 値 |
---|---|
Header | irb.h (Irb.h を含む) |