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 |