ScsiPortFreeDeviceBase 関数 (srb.h)
ScsiPortFreeDeviceBase ルーチンは、以前に ScsiPortGetDeviceBase を使用してシステム アドレス空間にマップされたデバイス I/O またはメモリ領域アドレスの範囲を解放します。
構文
SCSIPORT_API VOID ScsiPortFreeDeviceBase(
[in] PVOID HwDeviceExtension,
[in] PVOID MappedAddress
);
パラメーター
[in] HwDeviceExtension
ハードウェア デバイス拡張機能へのポインター。 これは、ポート ドライバーが割り当て、ミニポート ドライバーの代わりに初期化する HBA ごとの記憶域です。 ミニポート ドライバーは通常、HBA の状態や HBA のマップされたアクセス範囲など、この拡張機能に HBA 固有の情報を格納します。 この領域は、ミニポート ドライバーが ScsiPortInitialize を呼び出した直後に、HBA のデバイス オブジェクトの DeviceExtension-HwDeviceExtension> メンバーのミニポート ドライバーで使用できます。 ポート ドライバーは、デバイスを削除すると、このメモリを解放します。
[in] MappedAddress
解放する範囲のベース アドレスへのポインター。 このアドレスは、 ScsiPortGetDeviceBase によって返されるアドレスと同じである必要があります。
戻り値
なし
解説
ミニポート ドライバーの HwScsiFindAdapter ルーチンは、ドライバーがアダプターの特定のマップされたベース アドレスを必要としないと判断した場合は、このルーチンを呼び出してマッピングを解放する必要があります。 たとえば、ミニポート ドライバーが特定の I/O バスでサポートされている HBA がないと判断した場合、このルーチンへの呼び出しが行われた場合、 ScsiPortGetDeviceBase によって返されるマップされた各アドレスで ScsiPortFreeDeviceBase を呼び出す必要があります。
ScsiPortFreeDeviceBase は、ミニポート ドライバーの HwScsiFindAdapter ルーチンからのみ呼び出すことができます。 他のミニポート ドライバー ルーチンからの呼び出しでは、呼び出し元のシステムエラーまたは正しくない操作が発生します。
要件
要件 | 値 |
---|---|
対象プラットフォーム | デスクトップ |
Header | srb.h (Miniport.h、Scsi.h を含む) |
Library | Scsiport.lib |