CriticalRegions-Regel (wdm)
Die CriticalRegions-Regel gibt an, dass der Treiber KeEnterCriticalRegion aufrufen muss, bevor Er KeLeaveCriticalRegion aufruft , und dass der Treiber KeLeaveCriticalRegion vor allen nachfolgenden Aufrufen von KeEnterCriticalRegion aufruft. (Geschachtelte Aufrufe sind zulässig.)
Diese Regel gibt auch an, dass der Treiber KeLeaveCriticalRegion aufruft , um die Übermittlung normaler asynchroner Kernelprozeduraufrufe (APCs) wieder zu aktivieren, bevor sie zurückgegeben wird.
In der WDK-Dokumentation von KeEnterCriticalRegion und KeLeaveCriticalRegion wird erläutert, dass der Aufrufer dieser Funktionen unter IRQL<=APC_LEVEL ausgeführt werden kann. In dieser Situation erzwingt diese Regel eine Empfehlung für bewährte Methoden.
Treibermodell: WDM
Fehlerüberprüfungen mit dieser Regel gefunden: Fehlerüberprüfung 0xC4: DRIVER_VERIFIER_DETECTED_VIOLATION (0x00040003)
So führen Sie einen Test durch
Beim Kompilieren: |
---|
Führen Sie Static Driver Verifier aus , und geben Sie die CriticalRegions-Regel an. Gehen Sie folgendermaßen vor, um Ihren Code zu analysieren:
Weitere Informationen finden Sie unter Verwenden der statischen Treiberüberprüfung, um Fehler in Treibern zu finden. |
Zur Laufzeit |
---|
Führen Sie Driver Verifier aus, und wählen Sie die Option DDI-Konformitätsüberprüfung (zusätzlich) aus. |
Gilt für:
ExEnterCriticalRegionAndAcquiresourceExclusiveExReleaseResourceAndLeaveCriticalRegionKeEnterCriticalRegionKeLeaveCriticalRegion KeLeaveCriticalRegion