Funzione KeQueryHardwareCounterConfiguration (ntddk.h)
La routine KeQueryHardwareCounterConfiguration esegue una query sul sistema operativo per l'elenco dei contatori hardware da usare per la profilatura dei thread.
Sintassi
NTSTATUS KeQueryHardwareCounterConfiguration(
[out] PHARDWARE_COUNTER CounterArray,
[in] ULONG MaximumCount,
[out] PULONG Count
);
Parametri
[out] CounterArray
Puntatore a un buffer allocato dal chiamante in cui la routine scrive una matrice di elementi di tipo HARDWARE_COUNTER. Ogni elemento matrice è una struttura che contiene informazioni su un contatore hardware. La matrice contiene un elemento per ogni contatore hardware assegnato alla profilatura dei thread. Se la routine non riesce, non scrive nulla in questo buffer.
[in] MaximumCount
Specifica il numero massimo di elementi che la routine può scrivere nel buffer a cui punta il parametro CounterArray . Le dimensioni del buffer allocato dal chiamante devono essere almeno byte MaximumCount * sizeof(HARDWARE_COUNTER).
[out] Count
Puntatore a una posizione in cui la routine scrive il numero di elementi della matrice scritti nel buffer a cui punta il parametro CounterArray . Se la lunghezza del buffer specificata da MaximumCount non è sufficiente per contenere l'intera matrice, la routine scrive la lunghezza richiesta in *Count e restituisce STATUS_BUFFER_TOO_SMALL.
Valore restituito
KeQueryHardwareCounterConfiguration restituisce STATUS_SUCCESS se la chiamata ha esito positivo. I valori restituiti di errore possibili includono quanto segue:
Codice restituito | Descrizione |
---|---|
STATUS_BUFFER_TOO_SMALL | Il parametro MaximumCount specifica una lunghezza del buffer insufficiente per contenere le informazioni di configurazione del contatore. |
STATUS_NOT_IMPLEMENTED | Questa routine non viene implementata per l'architettura del processore in cui è in esecuzione il chiamante. |
Commenti
In Windows 7 questa routine viene implementata solo per le architetture basate su x86, basate su x64 e basate su Itanium. Se il chiamante è in esecuzione in un'architettura del processore non supportata, la routine restituisce STATUS_NOT_IMPLEMENTED.
Per impostare la configurazione del contatore hardware da usare per la profilatura dei thread, chiamare la routine KeSetHardwareCounterConfiguration .
Requisiti
Requisito | Valore |
---|---|
Client minimo supportato | Disponibile in Windows 7 e versioni successive di Windows. |
Piattaforma di destinazione | Universale |
Intestazione | ntddk.h (include Ntddk.h) |
Libreria | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | <= APC_LEVEL |