Compartilhar via


Função PerfCreateInstance (perflib.h)

Cria uma instância do conjunto de contadores especificado. Os provedores usam essa função.

Sintaxe

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

Parâmetros

[in] ProviderHandle

O identificador do provedor. Use a variável de identificador que a ferramenta CTRPP gerou para você. Para o nome da variável, consulte o atributo symbol do elemento provider .

Windows Vista: A função PerfStartProvider retorna o identificador.

[in] CounterSetGuid

GUID que identifica exclusivamente o conjunto de contadores do qual você deseja criar uma instância. Esse é o mesmo GUID especificado no atributo guid do elemento counterSet . Use a variável GUID que a ferramenta CTRPP gerou para você. Para o nome da variável, consulte o atributo de símbolo do elemento counterSet .

Windows Vista: A variável GUID não está disponível.

[in] Name

Cadeia de caracteres Unicode terminada em nulo que contém um nome exclusivo para essa instância.

[in] Id

Identificador exclusivo para esta instância do conjunto de contadores. O identificador pode ser um número de série incrementado para cada nova instância.

Retornar valor

Uma estrutura PERF_COUNTERSET_INSTANCE que contém a instância do conjunto de contadores ou NULL se PERFLIB não puder criar a instância. Armazene esse ponteiro em cache para usar em chamadas posteriores em vez de chamar PerfQueryInstance para recuperar o ponteiro para a instância.

Essa função retornará NULL se ocorrer um erro. Para determinar o erro ocorrido, chame GetLastError.

Comentários

O provedor determina quando cria uma instância. Se os dados do contador forem mais estáticos, o provedor poderá criar uma instância no momento da inicialização. Por exemplo, o número de processadores em um computador seria considerado estático, portanto, um provedor que fornece dados de contador para processadores poderia criar uma instância para cada processador no computador no momento da inicialização. Para contadores mais dinâmicos, como disco ou contadores de processo, os provedores criariam as novas instâncias em resposta a um novo dispositivo USB que está sendo adicionado ou a um novo processo sendo criado.

Quando o provedor chama essa função, PERFLIB aloca memória local para a nova instância e cria o bloco de instância. PERFLIB exclui a memória quando o provedor chama a função PerfDeleteInstance .

A instância contém os dados brutos do contador. Os provedores usam as três funções a seguir para atualizar os dados brutos do contador:

Normalmente, o provedor mantém os dados do contador atualizados o tempo todo. Como alternativa, o provedor pode implementar a função ControlCallback e usar o código de solicitação PERF_COLLECT_START para disparar as atualizações.

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows Vista [somente aplicativos da área de trabalho]
Servidor mínimo com suporte Windows Server 2008 [somente aplicativos da área de trabalho]
Plataforma de Destino Windows
Cabeçalho perflib.h
Biblioteca Advapi32.lib
DLL Advapi32.dll

Confira também

PerfDeleteInstance

PerfQueryInstance