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

Функция QueryResourceResidency определяет место расположения заданного списка ресурсов.

Синтаксис

PFND3DDDI_QUERYRESOURCERESIDENCY Pfnd3dddiQueryresourceresidency;

HRESULT Pfnd3dddiQueryresourceresidency(
  HANDLE hDevice,
  const D3DDDIARG_QUERYRESOURCERESIDENCY *unnamedParam2
)
{...}

Параметры

hDevice

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

unnamedParam2

pData [in]

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

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

QueryResourceResidency возвращает одно из следующих значений:

Код возврата Описание
S_OK Все ресурсы находятся в доступной для GPU памяти.
S_RESIDENT_IN_SHARED_MEMORY На диске нет выделений, составляющих ресурсы. Тем не менее, по крайней мере одно выделение не находится в доступной памяти GPU.
S_NOT_RESIDENT По крайней мере одно выделение ресурсов находится на диске.
E_INVALIDARG Параметры были проверены и определены как неверные.
E_OUTOFMEMORY QueryResourceResidency не удалось выделить память, необходимую для ее завершения.

Комментарии

Среда выполнения Microsoft Direct3D вызывает функцию QueryResourceResidency драйвера отображения пользовательского режима для приложений, чтобы определить, приведет ли операционная система к значительному застою во время рисования, если система должна сделать ресурсы доступными для GPU. Сведения, возвращаемые из QueryResourceResidency , являются аппроксимацией расположения ресурсов, так как ресурсы могут быть понижены до того, как приложения используют ресурсы.

Функция QueryResourceResidency драйвера отображения пользовательского режима должна выполнять вызовы функции pfnQueryResidencyCb . Функция pfnQueryResidencyCb возвращает состояние расположения ресурса в элементах массива, который задается членом pResidencyStatusструктуры D3DDDICB_QUERYRESIDENCY . Если pfnQueryResidencyCb возвращает D3DDDI_RESIDENCYSTATUS_NOTRESIDENT для любого запроса, QueryResourceResidency должен возвращать S_NOT_RESIDENT. Если pfnQueryResidencyCb возвращает D3DDDI_RESIDENCYSTATUS_RESIDENTINSHAREDMEMORY для любого запроса и не возвращает D3DDDI_RESIDENCYSTATUS_NOTRESIDENT для любого запроса, QueryResourceResidency должен возвращать S_RESIDENT_IN_SHARED_MEMORY. QueryResourceResidency должен возвращать S_OK только в том случае, если все вызовы pfnQueryResidencyCb для всех запросов возвращают D3DDDI_RESIDENCYSTATUS_RESIDENTINGPUMEMORY.

Для каждого ресурса, запрашиваемого средой выполнения посредством вызова QueryResourceResidency, драйвер отображения пользовательского режима должен определить, какие выделения, принадлежащие ресурсу, будут запрашиваться с помощью вызова pfnQueryResidencyCb. Для ресурса, которому принадлежит одно выделение, определение является простым — драйвер будет запрашивать это выделение. Однако если ресурс владеет несколькими выделениями, определение будет сложнее. Драйвер должен определить, какие выделения приложение, скорее всего, будет использовать для отрисовки, а драйвер должен запрашивать только эти выделения. Например, если ресурсу принадлежит выделение, используемое для отрисовки, и временное выделение, которое обрабатывает операцию блокировки, драйвер должен запрашивать только место расположения первого выделения, так как приложение, скорее всего, не будет использовать второе выделение для отрисовки.

Примечание Так как среда выполнения не поддерживает запросы к месту расположения ресурсов системной памяти, среда выполнения всегда будет завершать запросы от приложений о состоянии расположения ресурсов системной памяти и никогда не будет вызывать функцию QueryResourceResidency драйвера отображения пользовательского режима для этих ресурсов системной памяти.
 

Требования

Требование Значение
Минимальная версия клиента Доступно в Windows Vista и более поздних версиях операционных систем Windows.
Целевая платформа Персональный компьютер
Верхняя часть d3dumddi.h (включая D3dumddi.h)

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

D3DDDIARG_QUERYRESOURCERESIDENCY

D3DDDICB_QUERYRESIDENCY

D3DDDI_DEVICEFUNCS

pfnQueryResidencyCb