функция обратного вызова PDD_MAPMEMORY (ddrawint.h)

Функция обратного вызова DdMapMemory сопоставляет изменяемые приложением части буфера кадров в адресное пространство указанного процесса в пользовательском режиме или отменяет сопоставление памяти.

Синтаксис

PDD_MAPMEMORY PddMapmemory;

DWORD PddMapmemory(
  PDD_MAPMEMORYDATA unnamedParam1
)
{...}

Параметры

unnamedParam1

Указывает на DD_MAPMEMORYDATA структуру, содержащую сведения о сопоставлении памяти или операции распашивания.

Возвращаемое значение

DdMapMemory возвращает один из следующих кодов обратного вызова:

Комментарии

DdMapMemory вызывается для выполнения сопоставления памяти перед первым вызовом DdLock. Дескриптор, возвращаемый драйвером в элементе fpProcessструктуры DD_MAPMEMORYDATA в lpMapMemory , будет передаваться в каждый вызов 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 в видеодрайдер miniport, чтобы отменить сопоставление памяти. Дополнительные сведения см. в разделе Обмен данными ioCTL с драйвером Video Miniport.

DdMapMemory можно вызвать только с отключенным PDEV для отмены сопоставления памяти. PDEV отключается или включается путем вызова функции DrvAssertMode драйвера дисплея. Дополнительные сведения см. в разделе Управление PDEV .

Требования

Требование Значение
Целевая платформа Персональный компьютер
Верхняя часть 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