IOCTL_VIDEO_SHARE_VIDEO_MEMORY IOCTL (ntddvdeo.h)

Этот IOCTL вызывается процессом, который будет совместно использовать видеопамяти пользовательского режима в качестве линейного буфера кадров. Драйверы минипорта обрабатывают этот IOCTL путем сопоставления буфера кадров с адресным пространством вызывающего объекта с помощью VideoPortMapBankedMemory. В противном случае IOCTL совпадает с IOCTL_VIDEO_MAP_VIDEO_MEMORY.

Этот запрос является модальным и немодальным: драйвер минипорта должен возвращать размер буфера кадров в видеопамяти, а размер и расположение буфера кадров могут изменяться в разных режимах (модальная характеристика), но последующая операция в режиме установки (в тот же режим) не должна приводить к изменению расположения видеопамяти (немодальная характеристика).

Этот IOCTL является только DCI.

Основной код

IRP_MJ_DEVICE_CONTROL

Входной буфер

VRP InputBuffer содержит структуру VIDEO_SHARE_MEMORY, указывающую дескриптор процесса, сопоставляющий буфер кадров, а также запрошенный размер представления и смещение в общей памяти. Размер представления и смещение не должны превышать размер памяти адаптера.

Выходной буфер

Драйвер мини-порта возвращает структуру VIDEO_SHARE_MEMORY_INFORMATION в VRP OutputBuffer. Эти выходные данные содержат виртуальный адрес, по которому сопоставляется видеопамять, размер представления в байтах сопоставленной памяти и смещение в представлении.

Блок состояния

Если драйвер минипорта успешно сопоставляет память, он устанавливает для элемента Informationструктуры STATUS_BLOCKзначение sizeof(VIDEO_SHARE_MEMORY_INFORMATION); в противном случае драйвер мини-порта устанавливает для этого элемента значение 0.

Требования

Требование Значение
Заголовок ntddvdeo.h

См. также раздел

IOCTL_VIDEO_MAP_VIDEO_MEMORY

STATUS_BLOCK

VIDEO_SHARE_MEMORY

VIDEO_SHARE_MEMORY_INFORMATION

VideoPortMapBankedMemory