Condividi tramite


Funzione KeRestoreExtendedProcessorState (wdm.h)

La routine KeRestoreExtendedProcessorState ripristina le informazioni sullo stato del processore estese salvate in precedenza.

Sintassi

void KeRestoreExtendedProcessorState(
  [in] PXSTATE_SAVE XStateSave
);

Parametri

[in] XStateSave

Puntatore a una struttura XSTATE_SAVE che contiene le informazioni sullo stato del processore esteso da ripristinare. Il contenuto di questa struttura deve essere stato salvato in precedenza dalla routine KeSaveExtendedProcessorState .

Valore restituito

nessuno

Osservazioni

Il codice driver in modalità kernel deve assicurarsi che le chiamate a KeSaveExtendedProcessorState e KeRestoreExtendedProcessorState siano annidate correttamente. Ciò è necessario in modo che, a ogni livello di annidamento, lo stato ripristinato dalla chiamata KeRestoreExtendedProcessorState sia lo stesso stato salvato dalla chiamata KeSaveExtendedProcessorState corrispondente. Per garantire il corretto annidamento, il codice driver in modalità kernel deve seguire queste regole:

  • Una chiamata KeRestoreExtendedProcessorState che ripristina uno stato salvato deve essere eseguita nello stesso irQL della chiamata KeSaveExtendedProcessorState che ha salvato lo stato.
  • Se una coppia di chiamate KeSaveExtendedProcessorState e KeRestoreExtendedProcessorState viene nidificata all'interno di una coppia di chiamate KeSaveExtendedProcessorState e KeRestoreExtendedProcessorState , l'IRQL per le chiamate nidificate non deve essere inferiore a IRQL per le chiamate circostanti.
  • In genere, la struttura XSTATE_SAVE allocata dal chiamante che contiene lo stato salvato da KeSaveExtendedProcessorState si trova nello stack. Lo stack mantiene naturalmente l'annidamento delle informazioni sullo stato salvate. Se il codice driver archivia lo stato in una posizione diversa dallo stack, il writer del driver deve prestare particolare attenzione per mantenere l'annidamento delle chiamate KeSaveExtendedProcessorState e KeRestoreExtendedProcessorState .
  • La chiamata KeRestoreExtendedProcessorState che ripristina uno stato salvato deve essere eseguita nello stesso thread della chiamata KeSaveExtendedProcessorState che ha salvato lo stato.
Un set simile di regole si applica alle routine KeSaveFloatingPointState e KeRestoreFloatingPointState .

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 (vedere sezione Osservazioni)

Vedi anche

KeRestoreFloatingPointState

KeSaveExtendedProcessorState

KeSaveFloatingPointState

XSTATE_SAVE