VIDEO_SHARE_MEMORY構造体 (ntddvdeo.h)
VIDEO_SHARE_MEMORY構造体は、指定したプロセスと共有するユーザー モード メモリのブロックのビデオ ミニポート ドライバーへの要求で使用されます。
構文
typedef struct _VIDEO_SHARE_MEMORY {
HANDLE ProcessHandle;
ULONG ViewOffset;
ULONG ViewSize;
PVOID RequestedVirtualAddress;
} VIDEO_SHARE_MEMORY, *PVIDEO_SHARE_MEMORY;
メンバー
ProcessHandle
現在のプロセスへのハンドルです。 通常、このメンバーは Ntddk.h で定義されたマクロである NtCurrentProcess に設定されます。
ViewOffset
フレーム バッファーの先頭からのバイト オフセットを示します。 通常、このメンバーは 0 に設定されます。
ViewSize
フレーム バッファーのサイズをバイト単位で示します。
RequestedVirtualAddress
プロセスのメモリ内の要求されたフレーム バッファーの場所を示します。 通常、このメンバーは NULL に設定されます。これは、ディスプレイ ドライバー ライターが要求されたメモリの正確な場所を気にしないことを意味します。 このメンバーが NULL 以外の値に設定されている場合、ディスプレイ ドライバー ライターは、フレーム バッファーがそのアドレスに配置されることを意図します。 この場合、ディスプレイ ドライバーライターは、指定された場所がまだ別の目的で使用されていないことを確認する必要があります。
注釈
VIDEO_SHARE_MEMORYは、Direct Draw などのアプリケーションでビデオ メモリを表示できるように用意されています。 ディスプレイ ドライバーは、このようなビデオ メモリへのアクセスを直接提供することはできませんが、この目的のためにビデオ ミニポート ドライバーを呼び出すことができます。 ディスプレイ ドライバーは、ミニポート ドライバー にIOCTL_VIDEO_SHARE_VIDEO_MEMORY 要求を送信することによってこれを行います。 ミニポート ドライバーは、この要求を満たすと、VIDEO_SHARE_MEMORY構造体内の情報を使用し、場所が指定されていない場合は、要求されたメモリの実際の場所を VIDEO_SHARE_MEMORY_INFORMATION 構造体に入力します。 アプリケーションで共有メモリが不要になった場合、ディスプレイ ドライバーは、入力バッファーとしてVIDEO_SHARE_MEMORY構造も使用する IOCTL_VIDEO_UNSHARE_VIDEO_MEMORY 要求を行うことで、このメモリを解放できます。
カーネル モードのビデオ メモリへのマッピングで使用される構造体については、「 VIDEO_MEMORY と VIDEO_MEMORY_INFORMATION」を参照してください。
要件
要件 | 値 |
---|---|
Header | ntddvdeo.h (Ntddvdeo.h を含む) |
こちらもご覧ください
IOCTL_VIDEO_SHARE_VIDEO_MEMORY