Funzione GetLogicalProcessorInformationEx (sysinfoapi.h)
Recupera informazioni sulle relazioni tra processori logici e hardware correlato.
Sintassi
BOOL GetLogicalProcessorInformationEx(
[in] LOGICAL_PROCESSOR_RELATIONSHIP RelationshipType,
[out, optional] PSYSTEM_LOGICAL_PROCESSOR_INFORMATION_EX Buffer,
[in, out] PDWORD ReturnedLength
);
Parametri
[in] RelationshipType
Tipo di relazione da recuperare. Questo parametro può essere uno dei valori di LOGICAL_PROCESSOR_RELATIONSHIP seguenti.
[out, optional] Buffer
Puntatore a un buffer che riceve una sequenza di strutture di SYSTEM_LOGICAL_PROCESSOR_INFORMATION_EX di dimensioni variabili. Se la funzione ha esito negativo, il contenuto di questo buffer non è definito.
[in, out] ReturnedLength
In input, specifica la lunghezza del buffer a cui punta Buffer, in byte. Se il buffer è sufficientemente grande da contenere tutti i dati, questa funzione ha esito positivo e ReturnedLength viene impostato sul numero di byte restituiti. Se il buffer non è sufficientemente grande da contenere tutti i dati, la funzione ha esito negativo, GetLastError restituisce ERROR_INSUFFICIENT_BUFFER e ReturnedLength viene impostata sulla lunghezza del buffer necessaria per contenere tutti i dati. Se la funzione ha esito negativo con un errore diverso da ERROR_INSUFFICIENT_BUFFER, il valore di ReturnedLength non è definito.
Valore restituito
Se la funzione ha esito positivo, il valore restituito è TRUE e almeno una struttura SYSTEM_LOGICAL_PROCESSOR_INFORMATION_EX viene scritta nel buffer di output.
Se la funzione ha esito negativo, il valore restituito è FALSE. Per informazioni dettagliate sull'errore, chiamare GetLastError.
Commenti
Se un processo a 32 bit in esecuzione in WOW64 chiama questa funzione in un sistema con più di 64 processori, alcune delle maschere di affinità del processore restituite dalla funzione potrebbero non essere corrette. Ciò è dovuto al fatto che il DWORD di ordine elevato della struttura KAFFINITY a 64 bit che rappresenta tutti i 64 processori viene "piegato" in una struttura KAFFINITY a 32 bit nel buffer del chiamante. Di conseguenza, le maschere di affinità per i processori da 32 a 63 vengono rappresentate erroneamente come duplicati delle maschere per processori da 0 a 31. Inoltre, le maschere di affinità per i processori da 32 a 63 vengono erroneamente rappresentate come duplicati delle maschere per processori da 0 a 31. Inoltre, la somma di tutti i valori ActiveProcessorCount e MaximumProcessorCount per gruppo segnalati nelle strutture PROCESSOR_GROUP_INFO può escludere alcuni processori logici attivi.
Quando questa funzione viene chiamata con un tipo di relazione RelationProcessorCore, restituisce una struttura PROCESSOR_RELATIONSHIP per ogni core del processore attivo in ogni gruppo di processori del sistema. Si tratta di una procedura predefinita, perché un thread a 32 bit non a cui è possibile eseguire un thread a 32 bit in qualsiasi processore logico in un determinato gruppo, inclusi i processori da 32 a 63. Un chiamante a 32 bit può usare il numero totale di strutture PROCESSOR_RELATIONSHIP per determinare il numero effettivo di core del processore attivi nel sistema. Tuttavia, l'affinità di un thread a 32 bit non può essere impostata in modo esplicito sul processore logico da 32 a 63 di qualsiasi gruppo di processori.
Per compilare un'applicazione che usa questa funzione, impostare _WIN32_WINNT = 0x0601 >. Per altre informazioni, vedere Uso delle intestazioni di Windows.
Comportamento a partire da Windows Server 2022 (21H2, build 20348)
Il comportamento di questa e di altre funzioni NUMA è stato modificato per supportare meglio i sistemi con nodi contenenti più di 64 processori. Per altre informazioni su questa modifica, incluse le informazioni sull'abilitazione del comportamento precedente di questa API, vedere Supporto NUMA.
Le richieste per RelationNumaNode restituiranno NUMA_NODE_RELATIONSHIP strutture che contengono solo l'affinità del nodo all'interno del gruppo primario. Il valore GroupCount sarà 1 e la dimensione della struttura è fissa.
Le richieste per RelationNumaNodeEx o RelationAll restituiranno NUMA_NODE_RELATIONSHIP strutture che contengono una matrice di affinità per il nodo su tutti i gruppi. GroupCount indica il numero di affinità e la dimensione della struttura è variabile.
Requisiti
Requisito | Valore |
---|---|
Client minimo supportato | Windows 7 [app desktop | App UWP] |
Server minimo supportato | Windows Server 2008 R2 [app desktop | App UWP] |
Piattaforma di destinazione | Windows |
Intestazione | sysinfoapi.h (include Windows.h) |
Libreria | Kernel32.lib |
DLL | Kernel32.dll |