Funzione PerfCreateInstance (perflib.h)

Crea un'istanza del set di contatori specificato. I provider usano questa funzione.

Sintassi

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

Parametri

[in] ProviderHandle

Handle del provider. Usare la variabile handle generata automaticamente dallo strumento CTRPP . Per il nome della variabile, vedere l'attributo symbol dell'elemento provider .

Windows Vista: La funzione PerfStartProvider restituisce l'handle.

[in] CounterSetGuid

GUID che identifica in modo univoco il set di contatori di cui si vuole creare un'istanza. Si tratta dello stesso GUID specificato nell'attributo guid dell'elemento counterSet . Usare la variabile GUID generata automaticamente dallo strumento CTRPP . Per il nome della variabile, vedere l'attributo symbol dell'elemento counterSet .

Windows Vista: La variabile GUID non è disponibile.

[in] Name

Stringa Unicode con terminazione Null contenente un nome univoco per questa istanza.

[in] Id

Identificatore univoco per questa istanza del set di contatori. L'identificatore può essere un numero di serie incrementato per ogni nuova istanza.

Valore restituito

Struttura PERF_COUNTERSET_INSTANCE che contiene l'istanza del set di contatori o NULL se PERFLIB non è riuscito a creare l'istanza. Memorizzare nella cache questo puntatore da usare nelle chiamate successive anziché chiamare PerfQueryInstance per recuperare il puntatore all'istanza.

Questa funzione restituisce NULL se si è verificato un errore. Per determinare l'errore che si è verificato, chiamare GetLastError.

Commenti

Il provider determina quando crea un'istanza. Se i dati del contatore sono più statici, il provider può creare un'istanza in fase di inizializzazione. Ad esempio, il numero di processori in un computer verrebbe considerato statico, quindi un provider che fornisce dati contatori per i responsabili del trattamento potrebbe creare un'istanza per ogni processore nel computer in fase di inizializzazione. Per i contatori più dinamici, ad esempio i contatori del disco o del processo, i provider creerebbero le nuove istanze in risposta all'aggiunta di un nuovo dispositivo USB o alla creazione di un nuovo processo.

Quando il provider chiama questa funzione, PERFLIB alloca la memoria locale per la nuova istanza e compila il blocco di istanze. PERFLIB elimina la memoria quando il provider chiama la funzione PerfDeleteInstance .

L'istanza contiene i dati dei contatori non elaborati. I provider usano le tre funzioni seguenti per aggiornare i dati dei contatori non elaborati:

In genere, il provider mantiene sempre aggiornati i dati del contatore. In alternativa, il provider può implementare la funzione ControlCallback e usare il codice di richiesta PERF_COLLECT_START per attivare gli aggiornamenti.

Requisiti

Requisito Valore
Client minimo supportato Windows Vista [solo app desktop]
Server minimo supportato Windows Server 2008 [solo app desktop]
Piattaforma di destinazione Windows
Intestazione perflib.h
Libreria Advapi32.lib
DLL Advapi32.dll

Vedi anche

PerfDeleteInstance

PerfQueryInstance