次の方法で共有


PDD_MAPMEMORY コールバック関数 (ddrawint.h)

DdMapMemory コールバック関数は、フレーム バッファーのアプリケーション変更可能な部分を、指定されたプロセスのユーザー モード アドレス空間にマップするか、メモリのマップを解除します。

構文

PDD_MAPMEMORY PddMapmemory;

DWORD PddMapmemory(
  PDD_MAPMEMORYDATA unnamedParam1
)
{...}

パラメーター

unnamedParam1

メモリ マッピングまたはマッピング解除操作の詳細を含む DD_MAPMEMORYDATA 構造体を指します。

戻り値

DdMapMemory は、次のいずれかのコールバック コードを返します。

注釈

DdMapMemory は、 DdLock の最初の呼び出しの前にメモリ マッピングを実行するために呼び出されます。 lpMapMemoryDD_MAPMEMORYDATA構造体の fpProcess メンバーでドライバーによって返されるハンドルは、ドライバーで行われるすべての DdLock 呼び出しに渡されます。

DdMapMemory は、最後の DdUnlock 呼び出しが行われた後にメモリのマップを解除するためにも呼び出されます。

ドライバーのクラッシュを防ぐために、ドライバーは、アプリケーションで変更してはならないフレーム バッファーの一部をマップすることはできません。

ディスプレイ ドライバーは、メモリ マッピングまたはマップ解除を実行する ビデオ ミニポート ドライバー を呼び出す必要があります。 メモリをマップするビデオ ミニポート ドライバーに同期要求を送信するには、ディスプレイ ドライバーは、IOCTL_VIDEO_SHARE_VIDEO_MEMORYまたはIOCTL_VIDEO_MAP_VIDEO_MEMORYを使用して EngDeviceIoControl GDI 関数を呼び出します。 ディスプレイ ドライバーは 、メモリの マップを解除するために、ビデオ ミニポート ドライバーに IOCTL_VIDEO_UNSHARE_VIDEO_MEMORYまたはIOCTL_VIDEO_UNMAP_VIDEO_MEMORY を送信します。 詳細については、「 ビデオ ミニポート ドライバーへの IOCTL の通信」を参照してください。

DdMapMemory は、無効な PDEV を使用してのみ呼び出してメモリのマップを解除できます。 PDEV は、ディスプレイ ドライバーの DrvAssertMode 関数を呼び出すことによって無効または有効になります。 詳細については、「 PDEV の管理」 を参照してください。

要件

要件
対象プラットフォーム デスクトップ
Header ddrawint.h (Winddi.h を含む)

こちらもご覧ください

DD_MAPMEMORYDATA

DdLock

DdUnlock

EngDeviceIoControl

IOCTL_VIDEO_MAP_VIDEO_MEMORY

IOCTL_VIDEO_SHARE_VIDEO_MEMORY

IOCTL_VIDEO_UNMAP_VIDEO_MEMORY

IOCTL_VIDEO_UNSHARE_VIDEO_MEMORY