PFND3DDDI_CHECKCOUNTER 콜백 함수(d3dumddi.h)

PFND3DDDI_CHECKCOUNTER Direct3D 런타임에서 카운터를 설명하는 정보를 검색하기 위해 호출됩니다. WDDM(Windows Display Driver Model) 1.3 이상 사용자 모드 디스플레이 드라이버에서 구현해야 합니다.

구문

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

매개 변수

hDevice

[in] 디스플레이 디바이스(그래픽 컨텍스트)에 대한 핸들입니다.

unnamedParam2

[in] 카운터 는 정보가 검색되는 카운터 식별자를 식별하는 D3DDDIQUERYTYPE 형식의 값입니다.

unnamedParam3

[out] pType 은 카운터가 출력하는 데이터 형식을 식별하는 D3DDDI_COUNTER_TYPE 열거형 값을 수신하는 변수에 대한 포인터입니다.

unnamedParam4

pActiveCounters [out] pActiveCountersCounter 매개 변수가 식별하는 카운터 식별자를 만들기 위해 할당된 동시 활성 카운터 수를 수신하는 변수에 대한 포인터입니다.

unnamedParam5

[out, optional] pszName 은 드라이버가 카운터 식별자의 이름을 포함하는 에 NULL로 종료된 문자열을 반환하는 선택적 포인터입니다.

NULL일 수 있습니다. 이 경우 앱에 이름이 필요하지 않습니다.

pNameLength

[in, out, optional] pszName 매개 변수가 지정하는 NULL 종결 문자열의 크기(바이트)를 수신하는 변수에 대한 선택적 포인터입니다.

다음은 pNameLengthpszName 매개 변수의 값에 대한 제한 사항입니다.

  • pNameLength 는 NULL일 수 있으며, 이 경우 앱에 이름이나 이름 길이가 필요하지 않습니다.
  • pszName이 NULL이고 pNameLength가 NULL이 아니면 pNameLength의 입력 값이 무시되고 문자열 길이(NULL 문자 종료 포함)는 pNameLength 매개 변수를 통해 반환되어야 합니다.
  • pszNamepNameLength가 모두 NULL이 아닌 경우 드라이버는 pNameLength의 입력 값을 검사 할당된 버퍼에 충분한 공간이 있는지 확인하고 pszName 문자열의 길이(NULL 문자 종료 포함)가 pNameLength 매개 변수를 통해 전달되도록 해야 합니다.

unnamedParam7

[out, optional] pszUnits 는 드라이버가 카운터 식별자가 측정하는 단위의 이름을 포함하는 에 NULL로 끝나는 문자열을 반환하는 선택적 포인터입니다.

NULL일 수 있습니다. 이 경우 앱에 단위 정보가 필요하지 않습니다. pUnitsLength 매개 변수에 대한 설명에서 자세한 내용을 참조하세요.

pUnitsLength

[in, out, optional] pUnitsLengthpszUnits 매개 변수가 지정하는 NULL로 끝나는 문자열의 크기(바이트)를 수신하는 변수에 대한 선택적 포인터입니다.

다음은 pUnitsLengthpszUnits 매개 변수의 값에 대한 제한 사항입니다.

  • pUnitsLength 는 NULL일 수 있으며, 이 경우 앱에 단위 이름 또는 단위 이름 길이가 필요하지 않습니다.
  • pszUnits가 NULL이고 pUnitsLength가 NULL이 아니면 pUnitsLength의 입력 값이 무시되고 문자열 길이(NULL 문자 종료 포함)는 pUnitsLength 매개 변수를 통해 반환되어야 합니다.
  • pszUnitspUnitsLength가 모두 NULL이 아닌 경우 드라이버는 pUnitsLength의 입력 값을 검사 할당된 버퍼에 충분한 공간이 있는지 확인하고 pszUnits 문자열의 길이(NULL 문자 종료 포함)는 pUnitsLength 매개 변수를 통해 전달되어야 합니다.

unnamedParam9

[out, optional] pszDescription 은 드라이버가 카운터 식별자가 측정하는 내용에 대한 설명을 포함하는 에 NULL로 종료된 문자열을 반환하는 선택적 포인터입니다.

NULL일 수 있습니다. 이 경우 앱에 설명 정보가 필요하지 않습니다. pDescriptionLength 매개 변수에 대한 설명에서 자세한 내용을 참조하세요.

pDescriptionLength

[in, out, optional] pDescriptionLengthpszDescription 매개 변수가 지정하는 NULL로 끝나는 문자열의 크기(바이트)를 수신하는 변수에 대한 선택적 포인터입니다.

다음은 pDescriptionLengthpszDescription 매개 변수의 값에 대한 제한 사항입니다.

  • pDescriptionLength 는 NULL일 수 있으며, 이 경우 앱에 단위 이름 또는 단위 이름 길이가 필요하지 않습니다.
  • pszDescription이 NULL이고 pDescriptionLength가 NULL이 아니면 pDescriptionLength의 입력 값이 무시되고 문자열 길이(NULL 문자 종료 포함)는 pDescriptionLength 매개 변수를 통해 반환되어야 합니다.
  • pszDescriptionpDescriptionLength가 모두 NULL이 아닌 경우 드라이버는 pDescriptionLength의 입력 값을 검사 할당된 버퍼에 충분한 공간이 있는지 확인하고 pszDescription 문자열의 길이(NULL 문자 종료 포함)가 pDescriptionLength 매개 변수를 통해 전달되어야 합니다.

반환 값

이 루틴이 성공하면 S_OK 반환합니다. 그렇지 않으면 다음을 포함하여 HRESULT 오류 코드를 반환합니다.

반환 코드 설명
E_INVALIDARG 범위를 벗어난 디바이스 종속 카운터가 요청되거나 문자열 길이가 버퍼에 전체 문자열을 포함할 만큼 충분히 크지 않습니다. 이 함수에 사용되는 모든 문자열은 유니코드를 기반으로 하지만 항상 영어 로캘에 있으며 다른 로캘로 지역화되지 않습니다.

설명

이 함수는 Microsoft Direct3D 10 이상을 지원하는 CheckCounter 함수와 유사하게 동작해야 합니다.

카운터는 일반적으로 프레임을 캡처하고 여러 번 재생하는 도구에서 사용됩니다. 정확한 타이밍 정보를 기록하는 패스는 다른 패스와는 별개입니다. 이후 단계에서는 매번 다른 카운터 집합이 사용됩니다. 우선 순위는 호출을 그리기 위해 카운터 결과의 정확한 상관 관계를 얻는 것이며 재생 중에 발생하는 오버헤드를 희생할 수 있습니다. 드라이버는 정확한 상관 관계를 보장하기 위해 플러시 호출 또는 대기-유휴 호출을 삽입해야 합니다.

일반적으로 앱은 가능한 적은 수의 네이티브 카운터만 동시에 모니터링할 수 있으며, 이 카운터는 수백 개일 수 있습니다. 또한 드라이버는 D3DDDIQUERYTYPE 열거형(잘 알려진 카운터 ID 및 디바이스별 카운터 ID)에서 지원되는 각 카운터 ID를 모니터링하는 데 사용되는 활성 카운터 수를 나타내야 합니다. 예를 들어 드라이버는 FillRateUtilized 변수를 모니터링하려면 최대 4개의 동시 활성 카운터 중 3개( pActiveCounters 매개 변수로 표시됨)가 필요함을 나타낼 수 있습니다. 따라서 해당 카운터 ID에 하나 이하의 활성 카운터가 필요한 한 앱은 다른 카운터 ID를 모니터링할 수도 있습니다.

카운터 ID를 항상 모니터링할 수 있고 다른 카운터 ID를 모니터링하는 데 방해가 되지 않는 경우 카운터 ID에 필요한 동시 활성 카운터 수는 0일 수 있습니다.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows 8.1
지원되는 최소 서버 Windows Server 2012 R2
대상 플랫폼 데스크톱
머리글 d3dumddi.h(D3d10umddi.h 포함)

추가 정보

CheckCounter

D3DDDIQUERYTYPE