PFND3DDDI_CHECKCOUNTER função de retorno de chamada (d3dumddi.h)
PFND3DDDI_CHECKCOUNTER é chamado pelo runtime do Direct3D para recuperar informações que descrevem um contador. Deve ser implementado por drivers de exibição do WDDM (Modelo de Driver de Vídeo do Windows) 1.3 e posteriores.
Sintaxe
PFND3DDDI_CHECKCOUNTER Pfnd3dddiCheckcounter;
HRESULT Pfnd3dddiCheckcounter(
HANDLE hDevice,
D3DDDIQUERYTYPE unnamedParam2,
D3DDDI_COUNTER_TYPE *unnamedParam3,
UINT *unnamedParam4,
LPSTR unnamedParam5,
UINT *pNameLength,
LPSTR unnamedParam7,
UINT *pUnitsLength,
LPSTR unnamedParam9,
UINT *pDescriptionLength
)
{...}
Parâmetros
hDevice
[in] Um identificador para o dispositivo de exibição (contexto gráfico).
unnamedParam2
[in] Counter é um valor do tipo D3DDDIQUERYTYPE que identifica o identificador do contador para o qual as informações são recuperadas.
unnamedParam3
[out] pType é um ponteiro para uma variável que recebe um valor de enumeração D3DDDI_COUNTER_TYPE que identifica o tipo de dados que o contador gera.
unnamedParam4
pActiveCounters [out] pActiveCounters é um ponteiro para uma variável que recebe o número de contadores ativos simultaneamente alocados para a criação do identificador de contador identificado pelo parâmetro Counter .
unnamedParam5
[out, opcional] pszName é um ponteiro opcional para o qual o driver retorna uma cadeia de caracteres terminada em NULL que contém o nome do identificador do contador.
Pode ser NULL, caso em que o aplicativo não precisa do nome.
pNameLength
[in, out, opcional] Um ponteiro opcional para uma variável que recebe o tamanho, em bytes, da cadeia de caracteres terminada em NULL especificada pelo parâmetro pszName .
Aqui estão as limitações nos valores dos parâmetros pNameLength e pszName :
- pNameLength pode ser NULL; nesse caso, o aplicativo não precisa do nome ou do tamanho do nome.
- Se pszName for NULL e pNameLength não for NULL, o valor de entrada de pNameLength será ignorado e o comprimento da cadeia de caracteres (incluindo o caractere NULL de terminação) deverá ser retornado por meio do parâmetro pNameLength .
- Se pszName e pNameLength não forem NULL, o driver deverá marcar o valor de entrada de pNameLength para garantir que haja espaço suficiente no buffer alocado e, em seguida, o comprimento da cadeia de caracteres pszName (incluindo o caractere NULL de terminação) será passado por meio do parâmetro pNameLength.
unnamedParam7
[out, opcional] pszUnits é um ponteiro opcional para o qual o driver retorna uma cadeia de caracteres terminada em NULL que contém o nome das unidades que o identificador de contador mede.
Pode ser NULL, caso em que o aplicativo não precisa das informações de unidades. Veja mais informações na explicação do parâmetro pUnitsLength .
pUnitsLength
[in, out, opcional] pUnitsLength é um ponteiro opcional para uma variável que recebe o tamanho, em bytes, da cadeia de caracteres terminada em NULL especificada pelo parâmetro pszUnits .
Aqui estão as limitações nos valores dos parâmetros pUnitsLength e pszUnits :
- pUnitsLength pode ser NULL; nesse caso, o aplicativo não precisa do nome da unidade ou do comprimento do nome da unidade.
- Se pszUnits for NULL e pUnitsLength não for NULL, o valor de entrada de pUnitsLength será ignorado e o comprimento da cadeia de caracteres (incluindo o caractere NULL de terminação) deverá ser retornado por meio do parâmetro pUnitsLength .
- Se pszUnits e pUnitsLength não forem NULL, o driver deverá marcar o valor de entrada de pUnitsLength para garantir que haja espaço suficiente no buffer alocado e, em seguida, o comprimento da cadeia de caracteres pszUnits (incluindo o caractere NULL de terminação) será passado por meio do parâmetro pUnitsLength.
unnamedParam9
[out, opcional] pszDescription é um ponteiro opcional para o qual o driver retorna uma cadeia de caracteres terminada em NULL que contém a descrição do que o identificador de contador mede.
Pode ser NULL, caso em que o aplicativo não precisa das informações de descrição. Veja mais informações na explicação do parâmetro pDescriptionLength .
pDescriptionLength
[in, out, opcional] pDescriptionLength é um ponteiro opcional para uma variável que recebe o tamanho, em bytes, da cadeia de caracteres terminada em NULL especificada pelo parâmetro pszDescription .
Aqui estão as limitações nos valores dos parâmetros pDescriptionLength e pszDescription :
- pDescriptionLength pode ser NULL; nesse caso, o aplicativo não precisa do nome da unidade ou do comprimento do nome da unidade.
- Se pszDescription for NULL e pDescriptionLength não for NULL, o valor de entrada de pDescriptionLength será ignorado e o comprimento da cadeia de caracteres (incluindo o caractere NULL de terminação) deverá ser retornado por meio do parâmetro pDescriptionLength .
- Se pszDescription e pDescriptionLength não forem NULL, o driver deverá marcar o valor de entrada de pDescriptionLength para garantir que haja espaço suficiente no buffer alocado e, em seguida, o comprimento da cadeia de caracteres pszDescription (incluindo o caractere NULL de terminação) será passado por meio do parâmetro pDescriptionLength.
Retornar valor
Se essa rotina for bem-sucedida, ela retornará S_OK. Caso contrário, ele retornará um código de erro HRESULT, incluindo o seguinte:
Código de retorno | Descrição |
---|---|
E_INVALIDARG | Um contador dependente de dispositivo fora do intervalo é solicitado ou um comprimento de cadeia de caracteres não é grande o suficiente para um buffer conter toda a cadeia de caracteres. Embora todas as cadeias de caracteres usadas nessa função sejam baseadas em Unicode, elas estão sempre na localidade em inglês e não são localizadas em outras localidades. |
Comentários
Essa função deve se comportar de forma semelhante à função CheckCounter que dá suporte ao Microsoft Direct3D 10 e posterior.
Os contadores normalmente são usados por ferramentas que capturam um quadro e reproduzem-no várias vezes. A passagem que registra informações precisas de tempo é separada de outras passagens. Em passagens posteriores, um conjunto diferente de contadores é usado a cada vez. A prioridade deve ser obter uma correlação precisa dos resultados do contador para desenhar chamadas e a sobrecarga incorrida durante a reprodução pode ser sacrificada. O driver deve inserir chamadas de liberação ou chamadas de espera por ociosidade para garantir uma correlação precisa.
Normalmente, um aplicativo pode monitorar simultaneamente apenas um pequeno número de contadores nativos possíveis, que podem ser numerados em centenas. Além disso, o driver deve indicar o número de contadores ativos usados monitorando cada ID de contador com suporte da enumeração D3DDDIQUERYTYPE (IDs de contador conhecidas e IDs de contador específicas do dispositivo). Por exemplo, o driver pode indicar que o monitoramento de uma variável FillRateUtilized requer 3 dos 4 contadores ativos simultâneos máximos (indicados pelo parâmetro pActiveCounters ). Portanto, o aplicativo também pode monitorar outra ID de contador, desde que essa ID do contador exija um ou menos contadores ativos.
Se uma ID de contador sempre puder ser monitorada (e não interferir no monitoramento de outras IDs de contador), o número de contadores ativos simultâneos exigidos pela ID do contador poderá ser zero.
Requisitos
Requisito | Valor |
---|---|
Cliente mínimo com suporte | Windows 8.1 |
Servidor mínimo com suporte | Windows Server 2012 R2 |
Plataforma de Destino | Área de Trabalho |
Cabeçalho | d3dumddi.h (inclua D3d10umddi.h) |