次の方法で共有


IDE_DEVICE_PARAMETERS構造体 (irb.h)

IDE_DEVICE_PARAMETERS構造体には、デバイスを構成するミニポート ドライバーにポート ドライバーが提供する構成情報が含まれています。

ATA ポート ドライバーと ATA ミニポート ドライバー モデルは、将来変更されたり使用できなくなったりする可能性があります。 代わりに、Storport ドライバー を使用し、Storport ミニポート ドライバー モデル することをお勧めします。
 

構文

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

Device パラメーター構造のサイズを示します。 ミニポート ドライバーは、sizeof(IDE_DEVICE_PARAMETERS) が バージョン フィールド以下であることを確認する必要があります。

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 Packet コマンドを受信した後に 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構造体を渡します。

必要条件

要件 価値
ヘッダー irb.h (Irb.h を含む)

関連項目

ATA_ADDRESS_TRANSLATION

IDE_DEVICE_TYPE

IdeHwInitialize