Win32 API 日本語リファレンス
ホーム › Graphics.DirectDraw › PDD_MAPMEMORY

PDD_MAPMEMORY

コールバック

シグネチャ

DWORD PDD_MAPMEMORY(
    DD_MAPMEMORYDATA* param0
);

パラメーター

フィールド型説明
param0DD_MAPMEMORYDATA*メモリのマップまたはマップ解除の操作に関する詳細を格納した DD_MAPMEMORYDATA 構造体を指します。

公式ドキュメント

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

戻り値

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

解説(Remarks)

DdMapMemory は、最初の DdLock 呼び出しの前に、メモリのマップを実行するために呼び出されます。lpMapMemory が指す DD_MAPMEMORYDATA 構造体の fpProcess メンバーでドライバーが返したハンドルは、そのドライバーに対して行われるすべての DdLock 呼び出しに渡されます。

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

ドライバーのクラッシュを防ぐため、ドライバーはアプリケーションによって変更されてはならないフレームバッファーの部分をマップしてはなりません。

ディスプレイドライバーは、メモリのマップまたはマップ解除を実行するために ビデオミニポートドライバー を呼び出す必要があります。メモリをマップするための同期要求をビデオミニポートドライバーに送信するには、ディスプレイドライバーは GDI 関数 EngDeviceIoControl を IOCTL_VIDEO_SHARE_VIDEO_MEMORY または IOCTL_VIDEO_MAP_VIDEO_MEMORY とともに呼び出します。メモリのマップを解除するには、ディスプレイドライバーは IOCTL_VIDEO_UNSHARE_VIDEO_MEMORY または IOCTL_VIDEO_UNMAP_VIDEO_MEMORY をビデオミニポートドライバーに送信します。詳細については、Communicating IOCTLs to the Video Miniport Driver を参照してください。

DdMapMemory を無効化された PDEV に対して呼び出せるのは、メモリのマップを解除する場合のみです。PDEV の無効化と有効化は、ディスプレイドライバーの DrvAssertMode 関数を呼び出すことで行われます。詳細については、Managing PDEVs を参照してください。

出典・ライセンス: 上記「公式ドキュメント」の内容は Microsoft の Win32 API ドキュメント(MicrosoftDocs/sdk-api)を日本語に翻訳・改変したものです。© Microsoft Corporation. CC BY 4.0 で提供。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)