StorPortGetDeviceBase 関数 (storport.h)

StorPortGetDeviceBase ルーチンは、I/O アドレスをシステム アドレス空間にマップします。

構文

STORPORT_API PVOID StorPortGetDeviceBase(
  [in] PVOID                 HwDeviceExtension,
  [in] INTERFACE_TYPE        BusType,
  [in] ULONG                 SystemIoBusNumber,
  [in] STOR_PHYSICAL_ADDRESS IoAddress,
  [in] ULONG                 NumberOfBytes,
  [in] BOOLEAN               InIoSpace
);

パラメーター

[in] HwDeviceExtension

ハードウェア デバイス拡張機能へのポインター。 これは、ポート ドライバーがミニポート ドライバーの代わりに割り当てて初期化する HBA 記憶域ごとの です。 ミニポート ドライバーは通常、HBA の状態や HBA のマップされたアクセス範囲など、この拡張機能に HBA 固有の情報を格納します。 この領域は、ミニポート ドライバーが StorPortInitialize を呼び出した直後にミニポート ドライバーで使用できます。 ポート ドライバーは、デバイスを削除すると、このメモリを解放します。

[in] BusType

HBA が接続されている I/O バスのインターフェイスの種類を指定します。 ミニポート ドライバーの HwStorFindAdapter ルーチンは、入力PORT_CONFIGURATION_INFORMATIONAdapterInterfaceType メンバーからこのパラメーターの値を取得します。

[in] SystemIoBusNumber

HBA が接続されている I/O バスのシステム割り当て番号を指定します。 HwStorFindAdapter ルーチンは、入力PORT_CONFIGURATION_INFORMATIONSystemIoBusNumber メンバーからこのパラメーターの値を取得します。

[in] IoAddress

HBA で使用される範囲のバス相対ベース アドレスを指定します。 HwStorFindAdapter ルーチンは、ポート ドライバーが範囲構成情報を提供する場合、PORT_CONFIGURATION_INFORMATIONAccessRanges 要素の 1 つからこのパラメーターの値を取得します。 それ以外の場合、このアドレスには 、StorPortGetBusData によって返される値またはミニポート ドライバーが提供する既定値を指定できます。 成功した戻り値の状態がエラー状態 (NULL) と競合する可能性があるため、ベース アドレス 0 を使用しないでください。

[in] NumberOfBytes

マッピングでカバーする範囲のサイズをバイト単位で指定します。 HwStorFindAdapter ルーチンは、ポート ドライバーが範囲構成情報を提供する場合、IoAddress と同じ AccessRanges 要素からこのパラメーターの値を取得します。 それ以外の場合は、 StorPortGetBusData またはミニポート ドライバーが提供する既定値でこの値を返すことができます。 いずれの場合も、ドライバーは、返されたマップされた範囲外のハードウェアにアクセスすることはできません。

[in] InIoSpace

TRUE は、マップされる範囲が I/O 空間であることを示し、ミニポート ドライバーは、HBA と通信するために Storport ポート の読み取り/書き込みルーチンにこの範囲のマップされたアドレスを渡します。 HwStorFindAdapter ルーチンは、IoAddress と同じ AccessRanges 要素からこのパラメーターの値を取得します。 ミニポート ドライバーは、InIoSpace 引数として StorPortGetDeviceBase に渡される前に、ACCESS_RANGE型要素の InMemorySpace メンバーの値を反転する必要があることに注意してくださいFALSE は 、マップする範囲がメモリ空間にあることを示します。

戻り値

IoAddress パラメーターで指定されたバス相対アドレスに対応するマップされた論理ベース アドレス。

注釈

すべてのミニポート ドライバーは、マップされた論理アクセス範囲アドレスを Storport ポート の読み取り/書き込みルーチンに渡す必要があります。また、HBA と通信するときに Storport レジスタ の読み取り/書き込みルーチンも渡す必要があります。

このルーチンでは、システム プラグ アンド プレイ (PnP) マネージャーによってドライバーに割り当てられたアドレスのみがサポートされます。

要件

要件
対象プラットフォーム ユニバーサル
Header storport.h (Storport.h を含む)
Library Storport.lib

こちらもご覧ください

StorPortFreeDeviceBase