Поделиться через


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

Функция AgpCommitVirtual сопоставляет зарезервированную виртуальную память с соответствующим диапазоном физических адресов, декодируемых AGP.

Синтаксис

PAGP_COMMIT_VIRTUAL PagpCommitVirtual;

PVOID PagpCommitVirtual(
  [in] IN PVOID HwDeviceExtension,
  [in] IN PVOID VirtualReserveContext,
  [in] IN ULONG Pages,
  [in] IN ULONG Offset
)
{...}

Параметры

[in] HwDeviceExtension

Указатель на расширение устройства драйвера минипорта.

[in] VirtualReserveContext

Определяет зарезервированный диапазон виртуальных адресов. Дескриптор контекста был получен из AgpReserveVirtual.

[in] Pages

Указывает количество страниц виртуальной памяти для сопоставления.

[in] Offset

Указывает смещение страницы, по которому необходимо зафиксировать страницы. Смещение применяется к зарезервированным диапазону виртуальных адресов, который определяется VirtualReserveContext.

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

AgpCommitVirtual возвращает виртуальный адрес для базы зафиксированных страниц, если сопоставление выполнено успешно; в противном случае возвращает NULL.

Замечания

Перед вызовом AgpCommitVirtual для фиксации диапазона виртуальных страниц необходимо выполнить следующее:

  • Вызовите AgpReservePhysical, чтобы зарезервировать диапазон физических адресов для использования GPU.
  • Вызовите AgpCommitPhysical для сопоставления части зарезервированных физических адресов с заблокированными страницами в системной памяти.
  • Вызовите AgpReserveVirtual, чтобы зарезервировать диапазон виртуальных адресов, связанных с диапазоном физических адресов, зарезервированных AgpReservePhysical.
После завершения этих элементов можно вызвать AgpCommitVirtual для сопоставления части зарезервированных виртуальных страниц с страницами, которые уже сопоставлены и заблокированы AgpCommitPhysical. Не следует пытаться сопоставить страницу виртуальных адресов, если соответствующая страница физических адресов еще не сопоставлена.

Драйверы минипорта видео, выполняемые в Microsoft Windows 2000, всегда должны фиксировать виртуальный диапазон, размер которого составляет 64 килобайта. Если вы вызываете AgpCommitVirtual для фиксации виртуального диапазона, не равного 64 килобайтам, он может вернуть недопустимый виртуальный адрес.

В Windows XP и более поздних версиях AgpCommitVirtual автоматически расширяет диапазон фиксации, чтобы он был 64 килобайтами.

Когда драйвер мини-порта вызывает AgpCommitVirtual, часть диапазона виртуальных адресов, определяемого VirtualReserveContext, сопоставляется с физическими адресами. Сопоставленная часть начинается страниц смещения страниц в диапазон виртуальных адресов, который определяется VirtualReserveContext.

Требования

Требование Ценность
минимальные поддерживаемые клиентские Доступно в Windows 2000 и более поздних версиях операционных систем Windows.
целевая платформа Настольный
заголовка videoagp.h (include Video.h)
IRQL PASSIVE_LEVEL

См. также

AgpFreeVirtual

AgpReservePhysical

AgpReserveVirtual