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 | データ バッファーの物理アドレスを示します。 |
要件
要件 | 値 |
---|---|
対象プラットフォーム | デスクトップ |
Header | strmini.h (Strmini.h を含む) |
Library | Stream.lib |