Funzione KeGetCurrentProcessorNumber (ntddk.h)
La routine KeGetCurrentProcessorNumber restituisce il numero assegnato dal sistema del processore corrente in cui è in esecuzione il chiamante.
Sintassi
ULONG KeGetCurrentProcessorNumber();
Valore restituito
KeGetCurrentProcessorNumber restituisce un valore ULONG che rappresenta il processore in cui è attualmente in esecuzione il chiamante.
Commenti
KeGetCurrentProcessorNumber può essere chiamato per eseguire il debug dell'utilizzo del blocco spin nei computer SMP durante lo sviluppo del driver. Un driver potrebbe anche chiamare KeGetCurrentProcessorNumber se ha mantenuto alcuni dati per processore e ha tentato di ridurre la contesa della riga di cache.
Il numero di processori in un computer SMP è un valore in base zero.
Windows 7 e versioni successive di Windows supportano i gruppi di processori. I driver progettati per gestire le informazioni sui gruppi di processori devono usare la routine KeGetCurrentProcessorNumberEx , che specifica un gruppo di processori, anziché KeGetCurrentProcessorNumber, che non lo fa. Tuttavia, l'implementazione di KeGetCurrentProcessorNumber in Windows 7 e versioni successive di Windows offre la compatibilità per i driver scritti per le versioni precedenti di Windows. In questa implementazione KeGetCurrentProcessorNumber restituisce il numero di processore relativo al gruppo se il chiamante è in esecuzione in un processore nel gruppo 0, compatibile con il comportamento di questa routine nelle versioni precedenti di Windows che non supportano i gruppi di processori. Se il chiamante è in esecuzione in un processore in qualsiasi gruppo diverso dal gruppo 0, questa routine restituisce un numero minore del numero di processori nel gruppo 0. Questo comportamento garantisce che il valore restituito sia minore del valore restituito della routine KeQueryActiveProcessorCount .
Se la chiamata a KeGetCurrentProcessorNumber si verifica in IRQL <= APC_LEVEL, può verificarsi un commutatore del processore tra le istruzioni. Di conseguenza, i chiamanti di KeGetCurrentProcessorNumber vengono in genere eseguiti in IRQL >= DISPATCH_LEVEL.
Requisiti
Requisito | Valore |
---|---|
Client minimo supportato | Disponibile a partire da Windows 2000. |
Piattaforma di destinazione | Desktop |
Intestazione | ntddk.h (include Ntddk.h) |
IRQL | Vedere la sezione Osservazioni. |
Regole di conformità DDI | Irql_Miscellaneous_Function(ndis) |