Compartir a través de


PFND3DDDI_QUERYRESOURCERESIDENCY función de devolución de llamada (d3dumddi.h)

La función QueryResourceResidency determina la residencia de la lista de recursos especificada.

Sintaxis

PFND3DDDI_QUERYRESOURCERESIDENCY Pfnd3dddiQueryresourceresidency;

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

Parámetros

hDevice

Identificador del dispositivo de visualización (contexto de gráficos).

unnamedParam2

pData [in]

Puntero a una estructura de D3DDDIARG_QUERYRESOURCERESIDENCY que describe una lista de recursos en los que se comprueba la residencia.

Valor devuelto

QueryResourceResidency devuelve uno de los siguientes valores:

Código devuelto Descripción
S_OK Todos los recursos están en memoria accesible para GPU.
S_RESIDENT_IN_SHARED_MEMORY No hay asignaciones que componen los recursos en el disco. Sin embargo, al menos una asignación no está en memoria accesible para GPU.
S_NOT_RESIDENT Al menos una asignación que comprende los recursos está en el disco.
E_INVALIDARG Los parámetros se validaron y determinaron que son incorrectos.
E_OUTOFMEMORY QueryResourceResidency no pudo asignar memoria necesaria para que se complete.

Comentarios

El tiempo de ejecución de Microsoft Direct3D llama a la función QueryResourceResidency del controlador de pantalla en modo de usuario para que las aplicaciones determinen si el sistema operativo incurrirá en un retraso significativo en el tiempo de dibujo si el sistema debe hacer que los recursos sean accesibles para GPU. La información que se devuelve de QueryResourceResidency es una aproximación de la residencia de recursos porque los recursos se pueden degradar antes de que las aplicaciones usen los recursos.

La función QueryResourceResidency del controlador de pantalla en modo de usuario debe realizar llamadas a la función pfnQueryResidencyCb . La función pfnQueryResidencyCb devuelve el estado de residencia de un recurso en los elementos de la matriz que especifica el miembro pResidencyStatus de la estructura D3DDDICB_QUERYRESIDENCY . Si pfnQueryResidencyCb devuelve D3DDDI_RESIDENCYSTATUS_NOTRESIDENT para cualquier consulta, QueryResourceResidency debe devolver S_NOT_RESIDENT. Si pfnQueryResidencyCb devuelve D3DDDI_RESIDENCYSTATUS_RESIDENTINSHAREDMEMORY para cualquier consulta y no devuelve D3DDDI_RESIDENCYSTATUS_NOTRESIDENT para ninguna consulta, QueryResourceResidency debe devolver S_RESIDENT_IN_SHARED_MEMORY. QueryResourceResidency debe devolver S_OK solo si todas las llamadas a pfnQueryResidencyCb para todas las consultas devuelven D3DDDI_RESIDENCYSTATUS_RESIDENTINGPUMEMORY.

Para cada recurso que el tiempo de ejecución consulta a través de una llamada a QueryResourceResidency, el controlador de visualización en modo de usuario debe determinar qué asignaciones pertenecen al recurso que se van a consultar a través de una llamada a pfnQueryResidencyCb. Para un recurso que posee una única asignación, la determinación es simple: el controlador consultará esa asignación. Sin embargo, si un recurso posee varias asignaciones, la determinación es más difícil. El controlador debe determinar qué asignaciones probablemente usará una aplicación para la representación y el controlador solo debe consultar esas asignaciones. Por ejemplo, si un recurso posee una asignación que se usa para la representación y una asignación temporal que controla una operación de bloqueo, el controlador solo debe consultar la residencia de la primera asignación, ya que probablemente una aplicación no usará la segunda asignación para la representación.

Nota Dado que el tiempo de ejecución no admite la consulta de residencia de recursos de memoria del sistema, el tiempo de ejecución siempre producirá un error en las solicitudes de las aplicaciones para el estado de residencia de los recursos de memoria del sistema y nunca llamará a la función QueryResourceResidency del controlador de visualización en modo de usuario para estos recursos de memoria del sistema.
 

Requisitos

Requisito Value
Cliente mínimo compatible Disponible en Windows Vista y versiones posteriores de los sistemas operativos Windows.
Plataforma de destino Escritorio
Encabezado d3dumddi.h (incluya D3dumddi.h)

Consulte también

D3DDDIARG_QUERYRESOURCERESIDENCY

D3DDDICB_QUERYRESIDENCY

D3DDDI_DEVICEFUNCS

pfnQueryResidencyCb