StorPortGetPfns 関数 (storport.h)

StorPortGetPfns ルーチンは、ミニポートが SRB の MDL に関連付けられている PFN を取得する必要がある場合に呼び出すことができます。

構文

ULONG StorPortGetPfns(
  [in]  PVOID               HwDeviceExtension,
  [in]  PSCSI_REQUEST_BLOCK Srb,
  [in]  PVOID               Mdl,
  [out] PVOID               *Pfns,
  [out] ULONG               *PfnCount,
  [out] ULONG               *StartingOffset
);

パラメーター

[in] HwDeviceExtension

ハードウェア デバイス拡張機能へのポインター。 これは、ポート ドライバーがミニポート ドライバーの代わりに割り当ておよび初期化する HBA 記憶域ごとの です。

[in] Srb

ソース SCSI 要求ブロック (SRB) へのポインター。

[in] Mdl

Pfns が要求される MDL へのポインター。 StorPortGetOriginalMdl または StorPortGetDataInBufferMdl を使用して取得された MDL のみがサポートされます。

[out] Pfns

MDL に関連付けられている物理ページ番号の配列の先頭へのポインター。 呼び出し元は、リストを変更または更新または解放することはできません。

[out] PfnCount

配列内の PFN の数を指定します。

[out] StartingOffset

指定された MDL によって記述されたバッファーの初期ページ内のバイト オフセットを指定します。

戻り値

StorPortGetPfns は 、次のいずれかの状態コードを返します。

リターン コード 説明
STOR_STATUS_NOT_IMPLEMENTED この関数は、アクティブなオペレーティング システムには実装されていません。
STOR_STATUS_SUCCESS リスト アイテムが正常に削除されたか、リストが既に空です。
STOR_STATUS_INVALID_PARAMETER パラメーターの 1 つへのポインターが NULL です

注釈

ミニポート ドライバーは通常、HBA の状態や HBA のマップされたアクセス範囲など、この拡張機能に HBA 固有の情報を格納します。 この領域は、ミニポート ドライバーが StorPortInitialize を呼び出した直後に、HBA のデバイス オブジェクトの DeviceExtension-HwDeviceExtension> メンバーのミニポート ドライバーで使用できます。 ポート ドライバーは、デバイスを削除すると、このメモリを解放します。

Windows 8以降、Srb パラメーターは SCSI_REQUEST_BLOCK または STORAGE_REQUEST_BLOCK を指す場合があります。

要件

要件
対象プラットフォーム ユニバーサル
Header storport.h

こちらもご覧ください

StorPortGetDataInBufferMdl

StorPortGetOriginalMdl

StorPortInitialize