StreamClassGetPhysicalAddress 関数 (strmini.h)

StreamClassGetPhysicalAddress ルーチンは、仮想メモリ アドレスを物理メモリ アドレスに変換し、DMA 操作に対応する物理メモリをロックします。

構文

STREAM_PHYSICAL_ADDRESS STREAMAPI StreamClassGetPhysicalAddress(
  [in]           PVOID                    HwDeviceExtension,
  [in, optional] PHW_STREAM_REQUEST_BLOCK HwSRB,
  [in]           PVOID                    VirtualAddress,
  [in]           STREAM_BUFFER_TYPE       Type,
  [out]          ULONG                    *Length
);

パラメーター

[in] HwDeviceExtension

ミニドライバーのデバイス拡張機能へのポインター。 ミニドライバーは、StreamClassRegisterMinidriver を介して自身を登録するときに渡す HW_INITIALIZATION_DATA 構造体内のこのバッファーのサイズ指定します。 その後、クラス ドライバーは、ミニドライバーに渡される HW_STREAM_REQUEST_BLOCK、HW_STREAM_OBJECT、HW_TIME_CONTEXT、および PORT_CONFIGURATION_INFORMATION 構造体の HwDeviceExtension メンバー内のバッファーへのポインターを渡します。

[in, optional] HwSRB

ストリーム要求ブロックを指定します。 このパラメーターは、Type パラメーターの値が SRBDataBuffer の場合にのみ使用 。それ以外の場合は、HwSRB を NULL する必要があります。 このパラメーターは省略可能です。

[in] VirtualAddress

変換する仮想アドレスを指定します。

[in] Type

VirtualAddress によって指バッファーの種類を指定します。 この値には、PerRequestExtension、DmaBuffer、または SRBDataBuffer を指定できます。

[out] Length

バッファーの長さをバイト単位で指定します。

戻り値

StreamClassGetPhysicalAddress は、変換された仮想アドレスを物理メモリ アドレスとして返します。

備考

使用するバッファーの種類は、Type パラメーターで指定します。 これらの値の意味を次の表に示します。

バッファーの種類 形容
PerRequestExtension SRB 拡張機能の物理アドレスを示します。
DmaBuffer DMA バッファーの物理アドレスを示します。
SRBDataBuffer データ バッファーの物理アドレスを示します。

必要条件

要件 価値
ターゲット プラットフォーム の デスクトップ
ヘッダー strmini.h (Strmini.h を含む)
ライブラリ Stream.lib