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

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

pfnDeallocate2Cb является заменой pfnDeallocateCb с дополнительным элементом Flags . Если для флагов заданы все нули, поведение эквивалентно pfnDeallocateCb.

Синтаксис

PFND3DDDI_DEALLOCATE2CB Pfnd3dddiDeallocate2cb;

HRESULT Pfnd3dddiDeallocate2cb(
  HANDLE hDevice,
  const D3DDDICB_DEALLOCATE2 *unnamedParam2
)
{...}

Параметры

hDevice

Дескриптор устройства отображения (графический контекст).

unnamedParam2

pData [in]

Указатель на структуру D3DDDICB_DEALLOCATE2 , описывающую освобождаемые ресурсы.

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

Код возврата Описание
S_OK Память была успешно освобождена.
E_INVALIDARG Параметры были проверены и определены как неверные.

Эта функция также может возвращать другие значения HRESULT.

Комментарии

При получении запроса на уничтожение выделения VidMm предполагает, что по умолчанию команды, помещенные в очередь до запроса на уничтожение, могут получить доступ к уничтожению выделения и откладывает операцию уничтожения до завершения команд в очереди. Если драйвер пользовательского режима (UMD) знает, что ожидающие команды не имеют доступа к уничтожению выделения, он может указать VidMm не ждать завершения ожидающих команд, установив для флага AssumeNotInUse значение TRUE при вызове pfnDeallocate2Cb.

Если приложение или UMD хотели бы убедиться, что выделенная память была освобождена до возврата из вызова pfnDeallocate2Cb (например, чтобы свести к минимуму пиковое использование памяти при повторном создании поверхности), необходимо установить флаг SynchronousDeмешать .

Требования

Требование Значение
Минимальная версия клиента Windows 10
Минимальная версия сервера Windows Server 2016
Целевая платформа Персональный компьютер
Верхняя часть d3dumddi.h (включая D3dumddi.h)

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

D3DDDICB_DEALLOCATE2

pfnDeallocateCb