次の方法で共有


ACCESS_RANGE構造体 (storport.h)

ACCESS_RANGEでは、HBA によって使用されるメモリまたは I/O ポート範囲について説明します。

構文

typedef struct _ACCESS_RANGE {
  STOR_PHYSICAL_ADDRESS RangeStart;
  ULONG                 RangeLength;
  BOOLEAN               RangeInMemory;
} ACCESS_RANGE, *PACCESS_RANGE;

メンバー

RangeStart

HBA で使用される範囲のバス相対ベース アドレスを指定する物理アドレスを格納します。 このメンバーの値は、PORT_CONFIGURATION_INFORMATION構造体の AccessRanges 要素のいずれかから取得できます。 これは 、StorPortGetDeviceBase に渡すことができるアドレスです。

RangeLength

範囲内のポートのサイズ 、バイト数、または数を指定します。 ミニポート ドライバーは、この値がアダプターによって実際にデコードされた範囲と一致することを確認する必要があります。 たとえば、HBA が 7 つのレジスタを使用し、8 に応答する場合、このメンバーは 8 に設定する必要があります。

RangeInMemory

I/O 領域ではなく、 TRUE の場合に範囲がメモリ内に配置されていることを示します。 FALSE の場合、範囲は I/O 領域にあります。

注釈

各ACCESS_RANGEは、ミニポート ドライバーの HwStorFindAdapter ルーチンに渡されるPORT_CONFIGURATION_INFORMATION構造体内の AccessRanges 配列要素です。

Storport は、アクセス範囲にメモリを割り当て、 AccessRanges メンバーを初期化します。 ミニポート ドライバーの HwStorFindAdapter ルーチンは、指定されたアドレスのみを使用する必要があり、独自の工夫のアドレスを使用して、同じバス上の他の HBA を見つけようと しないでください 。 ポート ドライバーが範囲情報 (特に x86 実モードで初期化されている x86 専用システム) で他のバス相対ポートまたはメモリ範囲にアクセスしようとすると、バス上の他のデバイスが初期化に失敗したり、システムがブート プロセスを失敗させたりする可能性があります。

要件

要件
Header storport.h (Srb.h、Storport.h、Strmini.h を含む)

こちらもご覧ください

HwStorFindAdapter

PORT_CONFIGURATION_INFORMATION

StorPortGetDeviceBase