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.
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) |