Delen via


C28111

waarschuwing C28111: De IRQL waar de status van het drijvende komma is opgeslagen, komt niet overeen met de huidige IRQL (voor deze herstelbewerking).

Aanvullende informatie

De zwevende functies Opslaan/Herstellen vereisen dat de IRQL hetzelfde is op het moment van opslaan en de bijbehorende herstelbewerking.

De IRQL waarop het stuurprogramma wordt uitgevoerd bij het herstellen van een drijvende-kommastatus is anders dan de IRQL waarop het werd uitgevoerd toen het de status van het drijvende komma opslaat.

Omdat de IRQL waarop het stuurprogramma wordt uitgevoerd, bepaalt hoe de status van de drijvende komma wordt opgeslagen, moet het stuurprogramma op dezelfde IRQL worden uitgevoerd wanneer de functies worden aanroepen om de status van drijvende komma op te slaan en te herstellen.

voorbeeld

In het volgende codevoorbeeld wordt deze waarschuwing weergegeven.

void driver_utility()
{
    // running at APC level
    KFLOATING_SAVE FloatBuf;
    if (KeSaveFloatingPointState(&FloatBuf))
    {
        KeLowerIrql(PASSIVE_LEVEL);
        ...
        KeRestoreFloatingPointState(&FloatBuf);
    }
}

In het volgende codevoorbeeld wordt deze waarschuwing voorkomen.

void driver_utility()
{
    // running at APC level
    KFLOATING_SAVE FloatBuf;
    if (KeSaveFloatingPointState(&FloatBuf))
    {
        KeLowerIrql(PASSIVE_LEVEL);
        ...
        KeRaiseIrql(APC_LEVEL, &old);
        KeRestoreFloatingPointState(&FloatBuf);
    }
}