KeRestoreFloatingPointState, fonction (wdm.h)
La routine KeRestoreFloatingPointState restaure le contexte à virgule flottante nonvolile enregistré par l’appel précédent à KeSaveFloatingPointState.
NTSTATUS KeRestoreFloatingPointState(
[in] PKFLOATING_SAVE FloatSave
);
[in] FloatSave
Pointeur vers la structure KFLOATING_SAVE qui a été passée dans l’appel précédent à KeSaveFloatingPointState.
KeRestoreFloatingPointState retourne STATUS_SUCCESS.
KeRestoreFloatingPointState est la réciproque de KeSaveFloatingPointState.
Toute routine qui appelle KeSaveFloatingPointState doit appeler KeRestoreFloatingPointState avant que cette routine retourne le contrôle, et elle doit s’exécuter au même IRQL que celui à partir duquel l’appel précédent à KeSaveFloatingPointState s’est produit. Le fait de ne pas répondre à l’une de ces conditions entraîne une vérification des bogues système.
Le code du pilote en mode noyau doit s’assurer que les appels à KeSaveFloatingPointState et KeRestoreFloatingPointState sont correctement imbriqués. Cela est nécessaire pour que, à chaque niveau d’imbrication, l’état qui a été restauré par l’appel KeRestoreFloatingPointState soit le même état enregistré par l’appel KeSaveFloatingPointState correspondant. Pour garantir l’imbrication appropriée, le code du pilote en mode noyau doit respecter les règles suivantes :
- Un appel KeRestoreFloatingPointState qui restaure un état enregistré doit s’exécuter au même irQL que le KeSaveFloatingPointState appel qui a enregistré l’état.
- Si une paire d’appels KeSaveFloatingPointState et KeRestoreFloatingPointState est imbriquée dans une paire d’appels KeSaveFloatingPointState et KeRestoreFloatingPointState, le runtime d’intégration pour les appels imbriqués ne doit pas être inférieur à l’IRQL pour les appels environnants.
- En règle générale, la structure KFLOATING_SAVE allouée par l’appelant qui contient l’état enregistré par KeSaveFloatingPointState réside sur la pile. La pile conserve naturellement l’imbrication des informations d’état enregistrées. Si le code du pilote stocke l’état dans un emplacement autre que la pile, l’enregistreur de pilotes doit prendre soin de conserver l’imbrication des appels KeSaveFloatingPointState et KeRestoreFloatingPointState.
- L’appel KeRestoreFloatingPointState qui restaure un état enregistré doit s’exécuter dans le même thread que l’appel KeSaveFloatingPointState qui a enregistré l’état.
Exigence | Valeur |
---|---|
client minimum pris en charge | Disponible à partir de Windows 2000. |
plateforme cible | Universel |
d’en-tête | wdm.h (include Wdm.h, Ntddk.h, Ntifs.h) |
bibliothèque | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | <= DISPATCH_LEVEL (voir la section Remarques) |