Partilhar via


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 D3DDDIARG_QUERYRESOURCERESIDENCY que descreve uma lista de recursos nos quais a residência é verificada.

Valor de retorno

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.

Observações

O runtime do Microsoft Direct3D chama a função queryResourceResidency do driver de exibição do 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 é 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 do modo de usuário deve fazer chamadas para a função pfnQueryResidencyCb. A função pfnQueryResidencyCb retorna o status de residência de um recurso nos elementos da matriz especificada 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 deve retornar S_OK somente 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 no 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 que é 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 provavelmente um aplicativo não usará a segunda alocação para renderização.

Observação 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
de cliente com suporte mínimo Disponível no Windows Vista e versões posteriores dos sistemas operacionais Windows.
da Plataforma de Destino Área de trabalho
cabeçalho d3dumddi.h (inclua D3dumddi.h)

Consulte também

D3DDDIARG_QUERYRESOURCERESIDENCY

D3DDDICB_QUERYRESIDENCY

D3DDDI_DEVICEFUNCS

pfnQueryResidencyCb