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
MetadataGlobal
e 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