Freigeben über


QueuedSpinLock-Regel (wdm)

Die QueuedSpinLock-Regel gibt an, dass der Treiber Vor dem Aufrufen von KeReleaseInStackQueuedSpinLockKeAcquireInStackQueuedSpinLock aufruft und dass der Treiber KeReleaseInStackQueuedSpinLock vor allen nachfolgenden Aufrufen von KeAcquireInStackQueuedSpinLock aufruft.

Geschachtelte Aufrufe sind zulässig, wenn sie unterschiedliche Ressourcen erwerben und freigeben. Geschachtelte Aufrufe zum Abrufen oder Freigeben derselben Ressourcen verstoßen gegen diese Regel.

Diese Regel gibt auch an, dass der Treiber KeReleaseInStackQueuedSpinLock aufgerufen hat, um alle Spinsperren in der Warteschlange freizugeben, bevor die Dispatchroutine oder die Abbruchroutine endet.

Treibermodell: WDM

Fehlerüberprüfungen mit dieser Regel gefunden: Fehlerüberprüfung 0xC4: DRIVER_VERIFIER_DETECTED_VIOLATION (0x00040006)

So führen Sie einen Test durch

Beim Kompilieren:

Führen Sie Static Driver Verifier aus , und geben Sie die QueuedSpinLock-Regel an.

Gehen Sie folgendermaßen vor, um Ihren Code zu analysieren:
  1. Bereiten Sie den Code vor (verwenden Sie Rollentypdeklarationen).
  2. Führen Sie Static Driver Verifier aus.
  3. Überprüfen und analysieren Sie die Ergebnisse.

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 aus .

Gilt für:

KeAcquireInStackQueuedSpinLockKeReleaseInStackQueuedSpinLock