次の方法で共有


IOCTL_VIDEO_SHARE_VIDEO_MEMORY IOCTL (ntddvdeo.h)

この IOCTL は、ユーザー モードのビデオ メモリを線形 フレーム バッファーとして共有するプロセスによって呼び出されます。 ミニポート ドライバーは、 VideoPortMapBankedMemory を使用して呼び出し元のアドレス空間にフレーム バッファーをマッピングすることによって、この IOCTL を処理します。 それ以外の場合、この IOCTL は IOCTL_VIDEO_MAP_VIDEO_MEMORYと同じです。

この要求はモーダルと非モーダルの両方です。ミニポート ドライバーは、ビデオ メモリ内のフレーム バッファーの場所サイズを返す必要があります。フレーム バッファーのサイズと場所はモードによって異なる場合があります (モーダル特性)、後続のセット モード操作 (同じモード) では、ビデオ メモリの場所 (非変更特性) を変更することはできません。

この IOCTL は DCI のみです。

メジャー コード

IRP_MJ_DEVICE_CONTROL

[入力バッファー]

VRP InputBuffer には フレーム バッファーをマッピングするプロセスへのハンドルと、要求されたビュー サイズと共有メモリへのオフセットを指定するVIDEO_SHARE_MEMORY構造体が含まれています。 ビュー サイズとオフセットは、アダプターのメモリ サイズを超えてはなりません。

出力バッファー

ミニポート ドライバーは、VRP OutputBufferVIDEO_SHARE_MEMORY_INFORMATION構造体を返します。 この出力には、ビデオ メモリがマップされている仮想アドレス、マップされたメモリのビュー サイズ (バイト単位)、およびビューへのオフセットが含まれます。

ステータス ブロック

ミニポート ドライバーが正常にメモリをマップする場合は、STATUS_BLOCK構造体の Information メンバーを sizeof(VIDEO_SHARE_MEMORY_INFORMATION)に設定します。それ以外の場合、ミニポート ドライバーは、このメンバーを 0 に設定します。

要件

要件
Header ntddvdeo.h

こちらもご覧ください

IOCTL_VIDEO_MAP_VIDEO_MEMORY

STATUS_BLOCK

VIDEO_SHARE_MEMORY

VIDEO_SHARE_MEMORY_INFORMATION

VideoPortMapBankedMemory