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 per la 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 di flag XSTATE_MASK_XXX seguenti:

Valore Significato
XSTATE_MASK_LEGACY_FLOATING_POINT Estensione a virgola mobile (x87/MMX).
XSTATE_MASK_LEGACY_SSE Estensione SIMD (SSE) di streaming.
XSTATE_MASK_LEGACY Entrambe le estensioni x87/MMX e SSE.
XSTATE_MASK_GSSE Estensione 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 valori restituiti di errore possibili includono quanto segue:

Codice restituito Descrizione
STATUS_INSUFFICIENT_RESOURCES
Operazione di allocazione della memoria non riuscita.

Commenti

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 .

Il parametro Mask consente di specificare le funzionalità del processore esteso il cui stato deve essere salvato. Una chiamata KeRestoreExtendedProcessorState ripristina solo lo stato del processore esteso salvato dalla chiamata KeSaveExtendedProcessorState 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 vengono eseguite con vincoli di tempo gravi che in genere impediscono l'uso di 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.

Requisiti

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

Vedi anche

KeRestoreExtendedProcessorState

KeRestoreFloatingPointState

KeSaveFloatingPointState

RtlGetEnabledExtendedFeatures

XSTATE_SAVE