PDD_MAPMEMORY回调函数 (ddrawint.h)
DdMapMemory 回调函数将帧缓冲区的应用程序可修改部分映射到指定进程的用户模式地址空间中,或取消映射内存。
语法
PDD_MAPMEMORY PddMapmemory;
DWORD PddMapmemory(
PDD_MAPMEMORYDATA unnamedParam1
)
{...}
参数
unnamedParam1
指向包含内存映射或取消映射操作详细信息 的DD_MAPMEMORYDATA 结构。
返回值
DdMapMemory 返回以下回调代码之一:
注解
调用 DdMapMemory 以在首次调用 DdLock 之前执行内存映射。 驱动程序在 lpMapMemory 的 DD_MAPMEMORYDATA 结构的 fpProcess 成员中返回的句柄将传递给对驱动程序进行的每个 DdLock 调用。
在进行最后一次 DdUnlock 调用后,还会调用 DdMapMemory 来取消映射内存。
为了防止驱动程序崩溃,驱动程序不得映射不得由应用程序修改的帧缓冲区的任何部分。
显示驱动程序必须在 视频微型端口驱动程序 上调用 以执行内存映射或取消映射。 若要向视频微型端口驱动程序发送同步请求以映射内存,显示驱动程序使用 IOCTL_VIDEO_SHARE_VIDEO_MEMORY 或 IOCTL_VIDEO_MAP_VIDEO_MEMORY 调用 EngDeviceIoControl GDI 函数。 显示驱动程序将 IOCTL_VIDEO_UNSHARE_VIDEO_MEMORY 或 IOCTL_VIDEO_UNMAP_VIDEO_MEMORY 发送到视频微型端口驱动程序以取消映射内存。 有关详细信息,请参阅 将 IOCTL 与视频微型端口驱动程序通信。
只能使用禁用的 PDEV 调用 DdMapMemory 来取消映射内存。 通过调用显示驱动程序的 DrvAssertMode 函数禁用或启用 PDEV。 有关详细信息 ,请参阅管理 PDEV 。
要求
要求 | 值 |
---|---|
目标平台 | 桌面 |
标头 | ddrawint.h (包括 Winddi.h) |
另请参阅
IOCTL_VIDEO_SHARE_VIDEO_MEMORY