次の方法で共有


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_MEMORYVIDEO_MEMORY_INFORMATION」を参照してください。

要件

要件
Header ntddvdeo.h (Ntddvdeo.h を含む)

こちらもご覧ください

IOCTL_VIDEO_SHARE_VIDEO_MEMORY

IOCTL_VIDEO_UNSHARE_VIDEO_MEMORY

VIDEO_SHARE_MEMORY_INFORMATION