Funzione KeSaveExtendedProcessorState (wdm.h)
La routine KeSaveExtendedProcessorState salva le informazioni sullo stato del processore esteso.
Sintassi
NTSTATUS KeSaveExtendedProcessorState(
[in] ULONG64 Mask,
[out] PXSTATE_SAVE XStateSave
);
Parametri
[in] Mask
Maschera di funzionalità a 64 bit. I bit in questa maschera identificano gli stati delle funzionalità del processore esteso da salvare. Se un bit mask è uno, la routine salva lo stato della funzionalità identificata da questo bit. Se un bit mask è zero, lo stato della funzionalità corrispondente non viene salvato. Questa maschera non deve identificare le funzionalità del processore estese non abilitate dal sistema operativo. Per ottenere una maschera delle funzionalità abilitate, chiamare la routine RtlGetEnabledExtendedFeatures.
Un chiamante può impostare questo parametro sull'OR bit per bit di uno o più dei bit seguenti XSTATE_MASK_XXX flag:
Valore | Significato |
---|---|
XSTATE_MASK_LEGACY_FLOATING_POINT | Estensione a virgola mobile (x87/MMX). |
XSTATE_MASK_LEGACY_SSE | Estensione SIMD di streaming (SSE). |
XSTATE_MASK_LEGACY | Entrambe le estensioni x87/MMX e SSE. |
XSTATE_MASK_GSSE | Estensione SSE intel Sandy Bridge (in precedenza Gesher). |
XSTATE_MASK_AVX512 | Estensione AVX-512 |
XSTATE_MASK_MPX | Estensione MPX |
XSTATE_MASK_AMX_TILE_CONFIG | Estensione AMX (configurazione) |
XSTATE_MASK_AMX_TILE_DATA | Estensione AMX (dati) |
[out] XStateSave
Puntatore a un buffer allocato dal chiamante in cui la routine scrive una struttura XSTATE_SAVE. Questa struttura contiene le informazioni sullo stato salvate per le funzionalità del processore estese indicate dal parametro Mask. Il buffer deve essere sufficientemente grande da contenere questa struttura.
Valore restituito
KeSaveExtendedProcessorState restituisce STATUS_SUCCESS se la chiamata ha esito positivo. I possibili valori restituiti dall'errore includono quanto segue:
Codice restituito | Descrizione |
---|---|
|
Operazione di allocazione della memoria non riuscita. |
Osservazioni
Nei processori basati su x86 che supportano le istruzioni XSAVE e XRSTOR, queste istruzioni forniscono un meccanismo flessibile per salvare e ripristinare le informazioni sullo stato del processore esteso. KeSaveExtendedProcessorState usa queste istruzioni, se disponibili.
Per ripristinare lo stato del processore esteso salvato da KeSaveExtendedProcessorState, chiamare la routine KeRestoreExtendedProcessorState di.
Il parametro mask specifica le funzionalità del processore esteso il cui stato deve essere salvato. Una chiamata KeRestoreExtendedProcessorState ripristina solo lo stato del processore esteso salvato dal KeSaveExtendedProcessorState chiamata che ha salvato lo stato.
Il codice in modalità kernel deve salvare lo stato di una funzionalità del processore estesa prima di usare tale funzionalità e deve ripristinare lo stato prima di uscire.
Le routine del servizio interrupt (ISR) vengono eseguite con vincoli di tempo gravi che in genere impediscono loro di usare funzionalità del processore estese. Tuttavia, un ISR può pianificare una chiamata di procedura posticipata (DPC) che usa una o più funzionalità del processore estese. La routine DPC deve salvare e ripristinare lo stato delle funzionalità estese per mantenere il contesto del programma interrotto nel cui spazio indirizzi del processo viene eseguita la routine.
Le routine KeSaveFloatingPointState e KeRestoreFloatingPointState salvano e ripristinano solo lo stato a virgola mobile (registri x87/MMX) e lo stato SSE.
Fabbisogno
Requisito | Valore |
---|---|
client minimo supportato | Disponibile in Windows 7 e versioni successive di Windows. |
piattaforma di destinazione | Universale |
intestazione | wdm.h (include Wdm.h, Ntddk.h, Ntifs.h) |
libreria | Ntoskrnl.lib |
dll | Ntoskrnl.exe |
IRQL | <= DISPATCH_LEVEL |