次の方法で共有


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

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

IdeDeviceType

デバイスの種類を示します。 許可されるデバイスの種類は、ATA デバイスの 場合は DeviceIsAta 、ATAPI デバイスの場合 は DeviceIsAtapi 、そのアドレスでデバイスが見つからなかった場合は DeviceNotExist です。 IdeDeviceTypeDeviceNotExist に設定されている場合、この構造体の他のフィールドは無効です。

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) の最大数を指定します。 このメンバーは、 AddressTranslationLbaMode または Lba48BitMode のいずれかに等しい場合 に定義されます

Chs

シリンダ数、シリンダあたりのヘッド数、およびトラックあたりのセクター数の値を使用して、ドライブ ジオメトリを指定します。このメンバーは、 AddressTranslationChsMode と等しい場合に定義されます。

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 を含む)

こちらもご覧ください

ATA_ADDRESS_TRANSLATION

IDE_DEVICE_TYPE

IdeHwInitialize