PFND3DDDI_QUERYRESOURCERESIDENCY função de retorno de chamada (d3dumddi.h)

A função QueryResourceResidency determina a residência da lista de recursos fornecida.

Sintaxe

PFND3DDDI_QUERYRESOURCERESIDENCY Pfnd3dddiQueryresourceresidency;

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

Parâmetros

hDevice

Um identificador para o dispositivo de exibição (contexto gráfico).

unnamedParam2

pData [in]

Um ponteiro para uma estrutura de D3DDDIARG_QUERYRESOURCERESIDENCY que descreve uma lista de recursos em que a residência é verificada.

Retornar valor

QueryResourceResidency retorna um dos seguintes valores:

Código de retorno Descrição
S_OK Todos os recursos estão na memória acessível por GPU.
S_RESIDENT_IN_SHARED_MEMORY Nenhuma alocação que inclua os recursos está no disco. No entanto, pelo menos uma alocação não está na memória acessível por GPU.
S_NOT_RESIDENT Pelo menos uma alocação que compreende os recursos está no disco.
E_INVALIDARG Os parâmetros foram validados e determinados como incorretos.
E_OUTOFMEMORY QueryResourceResidency não pôde alocar memória necessária para que ela seja concluída.

Comentários

O runtime do Microsoft Direct3D chama a função QueryResourceResidency do driver de exibição no modo de usuário para que os aplicativos determinem se o sistema operacional incorrerá em uma parada significativa no momento do desenho se o sistema precisar tornar os recursos acessíveis à GPU. As informações retornadas de QueryResourceResidency são uma aproximação da residência de recursos porque os recursos podem ser rebaixados antes que os aplicativos usem os recursos.

A função QueryResourceResidency do driver de exibição no modo de usuário deve fazer chamadas para a função pfnQueryResidencyCb . A função pfnQueryResidencyCb retorna a status de residência de um recurso nos elementos da matriz especificados pelo membro pResidencyStatus da estrutura D3DDDICB_QUERYRESIDENCY. Se pfnQueryResidencyCb retornar D3DDDI_RESIDENCYSTATUS_NOTRESIDENT para qualquer consulta, QueryResourceResidency deverá retornar S_NOT_RESIDENT. Se pfnQueryResidencyCb retornar D3DDDI_RESIDENCYSTATUS_RESIDENTINSHAREDMEMORY para qualquer consulta e não retornar D3DDDI_RESIDENCYSTATUS_NOTRESIDENT para qualquer consulta, QueryResourceResidency deverá retornar S_RESIDENT_IN_SHARED_MEMORY. QueryResourceResidency só deverá retornar S_OK se todas as chamadas para pfnQueryResidencyCb para todas as consultas retornarem D3DDDI_RESIDENCYSTATUS_RESIDENTINGPUMEMORY.

Para cada recurso que o runtime consulta por meio de uma chamada para QueryResourceResidency, o driver de exibição do modo de usuário deve determinar quais alocações pertencem ao recurso a serem consultadas por meio de uma chamada para pfnQueryResidencyCb. Para um recurso que possui uma única alocação, a determinação é simples– o driver consultará essa alocação. No entanto, se um recurso possui várias alocações, a determinação é mais difícil. O driver deve determinar quais alocações um aplicativo provavelmente usará para renderização e o driver deve consultar apenas essas alocações. Por exemplo, se um recurso possui uma alocação usada para renderização e uma alocação de zero que manipula uma operação de bloqueio, o driver deve consultar apenas a residência da primeira alocação, pois um aplicativo provavelmente não usará a segunda alocação para renderização.

Nota Como o runtime não dá suporte à consulta de residência de recursos de memória do sistema, o runtime sempre falhará nas solicitações de aplicativos para o status de residência dos recursos de memória do sistema e nunca chamará a função QueryResourceResidency do driver de exibição do modo de usuário para esses recursos de memória do sistema.
 

Requisitos

Requisito Valor
Cliente mínimo com suporte Disponível no Windows Vista e versões posteriores dos sistemas operacionais Windows.
Plataforma de Destino Área de Trabalho
Cabeçalho d3dumddi.h (inclua D3dumddi.h)

Confira também

D3DDDIARG_QUERYRESOURCERESIDENCY

D3DDDICB_QUERYRESIDENCY

D3DDDI_DEVICEFUNCS

pfnQueryResidencyCb