Condividi tramite


Creazione di altre voci del Registro di sistema

Come descritto in Creazione della chiave di prestazioni dell'applicazione, un componente che fornisce i dati del contatore delle prestazioni deve avere una chiave prestazioni nella chiave Servizi e la chiave prestazioni deve contenere i valori Libreria, Apri, Raccolta e Chiudi . In alcuni casi, il componente potrebbe dover configurare valori aggiuntivi del Registro di sistema.

Metadati

MetadataGlobale MetadataCostly sono query di sola metadati generate da Windows 10 20H1 e versioni successive. Consentono a un utente di ottenere metadati (informazioni sugli oggetti e informazioni sui contatori) senza eseguire una raccolta di dati potenzialmente costosa. Si prevede che la query di sola metadati restituisca gli stessi risultati della query o corrispondente Global , Costly ad eccezione del fatto che NumInstances deve essere impostata su PERF_METADATA_MULTIPLE_INSTANCES (per un oggetto a istanza multipla) o PERF_METADATA_NO_INSTANCES (per un oggetto a istanza singola) e il risultato deve omettere tutti i PERF_INSTANCE_DEFINITION blocchi.

Se la DLL delle prestazioni supporta MetadataGlobal i tipi di query e MetadataCostly , deve indicare questo valore aggiungendo un REG_DWORD valore Collect Supports Metadata alla relativa Performance chiave e impostando il valore su 1. Se Collect Supports Metadata è assente o impostato su 0, una query di sola metadati eseguirà il fallback a una Global query o Costly .

HKEY_LOCAL_MACHINE
   \SYSTEM
      \CurrentControlSet
         \Services
            \application-name
               \Performance
                  Collect Supports Metadata = 1

Collegamento

La funzione OpenPerformanceData della DLL delle prestazioni accetta come input un argomento stringa. Per fornire una stringa di input alla funzione aperta, includere una chiave di collegamento nella chiave Services . La chiave di collegamento contiene un valore export . Impostare i dati del valore per Export sulla stringa di input che si vuole passare alla funzione aperta. Il tipo di dati Export è REG_MULTI_SZ.

Se l'esportazione non è definita (l'esportazione è facoltativa), il sistema passa NULL alla funzione OpenPerformanceData .

In genere, se più applicazioni condividono la stessa DLL delle prestazioni, ogni applicazione include una chiave di collegamento ed esporta valore per fornire il contesto a cui l'applicazione chiama la DLL.

Di seguito sono illustrate le voci del Registro di sistema:

HKEY_LOCAL_MACHINE
   \SYSTEM
      \CurrentControlSet
         \Services
            \application-name-1
               \Linkage
                  Export = app-1 context strings
               \Performance
                  Library = perfctrs.dll
            \application-name-2
               \Linkage
                  Export = app-2 context strings
               \Performance
                  Library = perfctrs.dll

Timeout

Per impostazione predefinita, le funzioni OpenPerformanceData e CollectPerformanceData della DLL delle prestazioni devono restituire entro 10.000 millisecondi. In caso contrario, il sistema non usa i dati restituiti dalla DLL. L'applicazione può aumentare o diminuire il valore di timeout specificando un valore open timeout o Collect Timeout del Registro di sistema sotto la chiave Prestazioni , come illustrato nell'esempio seguente.

HKEY_LOCAL_MACHINE
   \SYSTEM
      \CurrentControlSet
         \Services
            \application-name
               \Performance
                  Open Timeout = Timeout value for your open function, in milliseconds
                  Collect Timeout = Timeout value for your collect function, in milliseconds

Dispositivi DOS

Per ottenere i dati sulle prestazioni per alcune applicazioni (quelli che restituiscono contatori usando la funzione DeviceIoControl ), è necessario usare la funzione CreateFile per aprire il dispositivo associato all'applicazione. In questo caso, il nome specificato in CreateFile deve essere installato anche nel nodo Dispositivi DOS del Registro di sistema, come illustrato di seguito:

HKEY_LOCAL_MACHINE
   \SYSTEM
      \CurrentControlSet
         \Control
            \Session Manager
               \DOS Devices