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.
Osservazioni
è possibile chiamare KeGetCurrentProcessorNumber per eseguire il debug dell'utilizzo del blocco spin nei computer SMP durante lo sviluppo dei 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 del 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, tra le istruzioni può verificarsi un commutatore del processore. Di conseguenza, i chiamanti di KeGetCurrentProcessorNumber in genere vengono eseguiti in IRQL >= DISPATCH_LEVEL.