Funzione KeGetCurrentProcessorNumberEx (ntddk.h)
La routine KeGetCurrentProcessorNumberEx ottiene il numero di processore del processore logico in esecuzione dal chiamante.
Sintassi
ULONG KeGetCurrentProcessorNumberEx(
[out, optional] PPROCESSOR_NUMBER ProcNumber
);
Parametri
[out, optional] ProcNumber
Puntatore a un buffer allocato dal chiamante in cui la routine scrive una struttura PROCESSOR_NUMBER che identifica il processore logico corrente. Questa struttura contiene il numero di gruppo e il numero di processore relativo al gruppo. È possibile impostare questo parametro su NULL se non sono necessarie queste informazioni.
Valore restituito
KeGetCurrentProcessorNumberEx restituisce l'indice del processore a livello di sistema del processore logico in esecuzione dal chiamante.
Commenti
Se ProcNumber non è NULL, il buffer a cui punta ProcNumber deve essere sufficiente per contenere una struttura PROCESSOR_NUMBER. Al contrario di questa struttura, che contiene un numero di gruppo e un numero di processore relativo al gruppo, il valore restituito è un indice del processore che identifica il processore nell'intero sistema multiprocessore.
Ad esempio, se un sistema multiprocessore contiene due gruppi e ogni gruppo contiene 64 processori logici, i numeri di processore in ogni gruppo sono compresi tra 0 e 63, ma gli indici del processore a livello di sistema sono compresi tra 0 e 127.
Una routine correlata , KeGetCurrentProcessorNumber, restituisce il numero di processore corrente, ma questa routine, a differenza di KeGetCurrentProcessorNumberEx, non fornisce un numero di gruppo per il processore. In Windows 7 e versioni successive del sistema operativo Windows , 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. Tuttavia, se il chiamante è in esecuzione su 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 . Driver esistenti che chiamano KeGetCurrentProcessorNumber e che non usano funzionalità orientate al gruppo vengono eseguite correttamente nei sistemi multiprocessore con due o più gruppi. Tuttavia, i driver che usano funzionalità orientate al gruppo in Windows 7 e versioni successive del sistema operativo Windows devono chiamare KeGetCurrentProcessorNumberEx anziché KeGetCurrentProcessorNumber.
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, Wdm.h, Ntddk.h) |
Libreria | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | Qualsiasi livello |