PerfCreateInstance 함수(perflib.h)

지정된 카운터 집합의 instance 만듭니다. 공급자는 이 함수를 사용합니다.

구문

PPERF_COUNTERSET_INSTANCE PerfCreateInstance(
  [in] HANDLE  ProviderHandle,
  [in] LPCGUID CounterSetGuid,
  [in] PCWSTR  Name,
  [in] ULONG   Id
);

매개 변수

[in] ProviderHandle

공급자의 핸들입니다. CTRPP 도구가 생성한 핸들 변수를 사용합니다. 변수의 이름은 공급자 요소의 기호 특성을 참조하세요.

Windows Vista: PerfStartProvider 함수는 핸들을 반환합니다.

[in] CounterSetGuid

instance 만들 카운터 집합을 고유하게 식별하는 GUID입니다. counterSet 요소의 guid 특성에 지정된 것과 동일한 GUID입니다. CTRPP 도구가 생성한 GUID 변수를 사용합니다. 변수의 이름은 counterSet 요소의 기호 특성을 참조하세요.

Windows Vista: GUID 변수를 사용할 수 없습니다.

[in] Name

이 instance 고유한 이름을 포함하는 Null로 종료된 유니코드 문자열입니다.

[in] Id

카운터 집합의 이 instance 대한 고유 식별자입니다. 식별자는 각 새 instance 증분하는 일련 번호일 수 있습니다.

반환 값

카운터 집합의 instance 포함하는 PERF_COUNTERSET_INSTANCE 구조체이거나 PERFLIB가 instance 만들 수 없는 경우 NULL입니다. PerfQueryInstance를 호출하여 instance 대한 포인터를 검색하는 대신 이후 호출에서 사용할 이 포인터를 캐시합니다.

오류가 발생한 경우 이 함수는 NULL 을 반환합니다. 발생한 오류를 확인하려면 GetLastError를 호출합니다.

설명

공급자는 instance 만드는 시기를 결정합니다. 카운터 데이터가 더 정적인 경우 공급자는 초기화 시 instance 만들 수 있습니다. 예를 들어 컴퓨터의 프로세서 수는 정적으로 간주되므로 프로세서에 카운터 데이터를 제공하는 공급자는 초기화 시 컴퓨터의 각 프로세서에 대한 instance 만들 수 있습니다. 더욱 동적 디스크와 같은 하거나 카운터를 처리 하는 카운터에 대 한 공급자 추가 될 새로운 USB 디바이스 또는 생성 되는 새 프로세스에 대 한 응답에 새 인스턴스가 만들어집니다.

공급자가 이 함수를 호출하면 PERFLIB는 새 instance 대한 로컬 메모리를 할당하고 instance 블록을 빌드합니다. PERFLIB는 공급자가 PerfDeleteInstance 함수를 호출할 때 메모리를 삭제합니다.

instance 원시 카운터 데이터를 포함합니다. 공급자는 다음 세 가지 함수를 사용하여 원시 카운터 데이터를 업데이트합니다.

일반적으로 공급자는 항상 카운터 데이터를 최신 상태로 유지합니다. 대안으로 공급자는 ControlCallback 함수를 구현하고 PERF_COLLECT_START 요청 코드를 사용하여 업데이트를 트리거할 수 있습니다.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows Vista [데스크톱 앱만 해당]
지원되는 최소 서버 Windows Server 2008 [데스크톱 앱만 해당]
대상 플랫폼 Windows
헤더 perflib.h
라이브러리 Advapi32.lib
DLL Advapi32.dll

추가 정보

PerfDeleteInstance

PerfQueryInstance