Функция KeRestoreExtendedProcessorState (wdm.h)
Подпрограмма KeRestoreExtendedProcessorState восстанавливает ранее сохраненные расширенные сведения о состоянии процессора.
Синтаксис
void KeRestoreExtendedProcessorState(
[in] PXSTATE_SAVE XStateSave
);
Параметры
[in] XStateSave
Указатель на структуру XSTATE_SAVE , содержащую сведения о расширенном состоянии процессора для восстановления. Содержимое этой структуры должно быть ранее сохранено подпрограммой KeSaveExtendedProcessorState .
Возвращаемое значение
None
Remarks
Код драйвера в режиме ядра должен гарантировать правильность вложенных вызовов KeSaveExtendedProcessorState и KeRestoreExtendedProcessorState . Это необходимо для того, чтобы на каждом уровне вложения состояние, восстановленное вызовом KeRestoreExtendedProcessorState , совпадало с состоянием, сохраненным соответствующим вызовом KeSaveExtendedProcessorState . Чтобы обеспечить правильное вложение, код драйвера в режиме ядра должен соответствовать следующим правилам:
- Вызов KeRestoreExtendedProcessorState , который восстанавливает сохраненное состояние, должен выполняться в том же irQL, что и вызов KeSaveExtendedProcessorState , который сохранил состояние.
- Если пара вызовов KeSaveExtendedProcessorState и KeRestoreExtendedProcessorState вложена в пару вызовов KeSaveExtendedProcessorState и KeRestoreExtendedProcessorState , значение IRQL для вложенных вызовов не должно быть ниже IRQL для окружающих вызовов.
- Как правило, выделенная вызывающим объектом XSTATE_SAVE структура, содержащая состояние, сохраненное KeSaveExtendedProcessorState , находится в стеке. Стек естественным образом сохраняет вложенную информацию о состоянии. Если код драйвера сохраняет состояние в расположении, отличном от стека, модуль записи драйверов должен проявлять особую осторожность для сохранения вложенности вызовов KeSaveExtendedProcessorState и KeRestoreExtendedProcessorState .
- Вызов KeRestoreExtendedProcessorState , который восстанавливает сохраненное состояние, должен выполняться в том же потоке, что и вызов KeSaveExtendedProcessorState , который сохранил состояние.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Доступно в Windows 7 и более поздних версиях Windows. |
Целевая платформа | Универсальное |
Верхняя часть | wdm.h (включая Wdm.h, Ntddk.h, Ntifs.h) |
Библиотека | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | <= DISPATCH_LEVEL (см. раздел "Примечания") |